前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >销售需求丨查找问题

销售需求丨查找问题

原创
作者头像
PowerBI丨白茶
修改2021-09-03 10:50:10
3800
修改2021-09-03 10:50:10
举报
文章被收录于专栏:PowerBI

BOSS:茶,那个,什么茶来着?(递过一杯茶...) BOSS:?!!不是这个,我是说那个白茶啊! 白茶:......(懵)咋滴了,BOSS? BOSS:哎,今年行情不行啊,能不能搞一个表,就是我选择一个颜色,就能知道这个颜色售卖的所有商品? 白茶:......(咳,咳)BOSS,这个有点难啊! ——(支付宝到账####元!)—— 白茶:好嘞,马上办!

上面的都是白茶和大家开的小玩笑,但是实际上这种需求,是很普遍的一种情况。起初这个问题来源于群里小伙伴的提问,就是当我选择A、B的时候,能不能出现同时包含A、B、AB的项目?白茶一寻思,可以做到。

最后要达到上图的这种效果,该如何实现呢?

开始本期的问题—《销售需求之查找问题》。

案例文件:

这是白茶随机模拟的一份数据,一个维度表,一个销售表。


那么当我们选择维度中的数据,显示出销售表中对应颜色的销售,这个问题属于什么问题?很明显,这个属于查找问题,查找维度表中的颜色在事实表中的对应项目。

白茶翻阅了一下DAX中关于查找功能的函数,有两个函数。

FIND函数与SEARCH函数

二者在语法上是一样的:

代码语言:javascript
复制
DAX=
FIND 或 SEARCH(查找内容,被查找,[开始位置],[找不到返回值])

二者的语法结构是一致的,但是有所区别:

FIND函数区分大小写,不支持通配符;

SEARCH函数不区分大小写,支持通配符。


编写如下代码:

代码语言:javascript
复制
销售颜色: =
VAR SLL =
    VALUES ( '维度'[维度] )
VAR SQL =
    MAX ( '事实表'[颜色] )
RETURN
    IF ( SEARCH ( SLL, SQL,, 0 ) > 0, SQL, BLANK () )

从结果中我们不难看出,当切片器无选择时,以及多选时,其结果呈现的很明显是有问题的。

做到这里的时候,白茶思考了很久,没明白当选项为多选时,如何通过比较多个值进行结果的呈现。

感谢@冬哥。

冬哥提点了我一句,无法将多个值与查找范围进行比较,那么可以把思路反过来啊,通过反计数的方式呈现。

编写如下代码:

代码语言:javascript
复制
销售颜色 =
VAR SLL =
    VALUES ( '维度'[维度] )
VAR SQL =
    MAX ( '事实表'[颜色] )
RETURN
    IF (
        COUNTROWS ( FILTER ( SLL, SEARCH ( [维度], SQL,, 0 ) > 0 ) ) > 0,
        SQL,
        BLANK ()
    )

当然,也可以使用FIND写法:

代码语言:javascript
复制
FIND写法 =
VAR SLL =
    VALUES ( '维度'[维度] )
VAR SQL =
    MAX ( '事实表'[颜色] )
RETURN
    IF (
        COUNTROWS ( FILTER ( SLL, FIND ( [维度], SQL,, 0 ) > 0 ) ) > 0,
        SQL,
        BLANK ()
    )

其结果如下:

可以看得出来这次的结果没有任何问题,这种情况下SEARCH和FIND的用途是一致的。

代码含义: 通过VALUES函数,去除重复值,来提取多个值,形成一个虚拟表; SQL这里的作用单纯的是为了将[颜色列]进行聚合,否则无法在查询函数中使用; 通过IF语句进行判断,符合条件显示,否则显示为空,内部利用FILTER函数进行上下文传递,将原本没有联系的维度和事实表中的颜色查询链接在一起。


至于其他的项目,可以通过IF进行判断决定是否显示,这里就不赘述了,最终形成下面的动图:

样例链接:http://t.cn/A62FPa3i

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档