新足迹

 找回密码
 注册

精华好帖回顾

· 新衣服们,108楼加网址,116真人23日加新。。 (2008-10-20) wellye · 周二拍了辆政府车,具体流程给有需要的人参考(悉尼) (2013-2-21) melody410222
· 我的移民故事之一 ---- 准备移民的日子。 (2009-1-21) chinara · 关起门来教中文 (2019-1-10) lingjoy
Advertisement
Advertisement
查看: 2156|回复: 14

[IT] 请教power bi dax [复制链接]

发表于 2022-3-30 20:42 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 zhuye1123 于 2022-4-11 21:20 编辑

https://docs.microsoft.com/en-us ... -context-transition
这是微软给的例子,例子说把查询语言改了之后,饼图就能显示出不同的segment,可是我试了半天也没有变化,不知道什儿么原因,。
请问一下下有懂的吗,谢谢。

https://docs.microsoft.com/en-us ... dify-filter-context
数据连接在这里,微软官方的, 在Apply Boolean expression filters 下面的一段。
也可以在这里找到数据
Adventure Works DW 2020 M06.pbix



Advertisement
Advertisement

发表于 2022-3-30 22:57 |显示全部楼层
此文章由 lanvader2008 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lanvader2008 所有!转贴必须注明作者、出处和本声明,并保持内容完整
把Sales[Sales Amount]拖进value栏然后创建的measure-Customer Segment拖入category栏试试

发表于 2022-3-30 23:24 |显示全部楼层
此文章由 dou199341 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dou199341 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这一步的calculated column做对了吗。可以拖到一个表格里先看看是不是对的

Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
        IF(CustomerRevenue < 2500, "Low", "High")

发表于 2022-4-2 23:20 来自手机 |显示全部楼层
此文章由 mick703 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 mick703 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你需要查你的数据,如果你本身的数据没有大于2500的customer revenue,又怎么能分出Low 和 High2个 category呢

发表于 2022-4-4 20:45 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lanvader2008 发表于 2022-3-30 21:57
把Sales[Sales Amount]拖进value栏然后创建的measure-Customer Segment拖入category栏试试 ...

创建了饼图后,默认sales amount 在values栏, customer segment 在tooltips栏,其他的栏目都拖不进去。

发表于 2022-4-4 20:47 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 zhuye1123 于 2022-4-4 19:48 编辑
dou199341 发表于 2022-3-30 22:24
这一步的calculated column做对了吗。可以拖到一个表格里先看看是不是对的

Customer Segment =


这个代码就是资料给的啊,我就用材料里面的代码,放在表格里显示只有customer segment 这列只显示一行high 和 sales amount两列,没有low这一行,只有把cusotmer id 加上后才能看到,customer segment 这列能够显示low and high.
Advertisement
Advertisement

发表于 2022-4-4 20:53 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
mick703 发表于 2022-4-2 22:20
你需要查你的数据,如果你本身的数据没有大于2500的customer revenue,又怎么能分出Low 和 High2个 categor ...

如果只有customer segment 和 sales amount 这数列的时候,只显示 一行数据: high & total sales amount, 不显示low的sales amount.
在加上customer id 列后,customer segment 数列能显示出 low & high.
同样地, 饼图和表一样,只显示high and total sales amount, 并没有像资料说的那样,用了这个代码后,饼图就显示出 low & high customer segment.
所以我不知道哪里出了问题。资料说用了calculate()之后就能显示出 low and high 但是我试了并没有。

发表于 2022-4-7 22:26 |显示全部楼层
此文章由 刮胡刀 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 刮胡刀 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 刮胡刀 于 2022-4-7 21:28 编辑

CALCULATE() 把revenue anchor到sub level了,没有这个就是sum总revenue,当然就只有一个high的segment

发表于 2022-4-8 20:48 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
刮胡刀 发表于 2022-4-7 21:26
CALCULATE() 把revenue anchor到sub level了,没有这个就是sum总revenue,当然就只有一个high的segment ...

但是我用了  CALCULATE(SUM(Sales[Sales Amount])) 之后,matrix 还是只显示一排两列 high 和 sales revenue,饼图没有变化. 只有在加入 customer id 列之后, matrix才能看到 low

发表于 2022-4-9 18:12 |显示全部楼层
此文章由 ozfreeman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ozfreeman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
建议楼主把原始table的链接发上来,或者直接把pbix文件发出来,这样比较容易判断是哪里的问题。

没有原始数据表,很难分析

发表于 2022-4-9 18:16 |显示全部楼层
此文章由 ozfreeman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ozfreeman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
另外,楼主想学习DAX的话有很多的资源,比如这个Dax Guide (https://dax.guide/)

里面有一个Try It的功能,直接打开一个在线数据环境让你测试
Advertisement
Advertisement

发表于 2022-4-11 22:19 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ozfreeman 发表于 2022-4-9 17:12
建议楼主把原始table的链接发上来,或者直接把pbix文件发出来,这样比较容易判断是哪里的问题。

没有原始 ...

我已经在原帖添加了数据的连接,是微软官方的数据,
或者到这个网页,在Apply Boolean expression filters 下面一段  Adventure Works DW 2020 M06.pbix 大概6M。
https://docs.microsoft.com/en-us ... dify-filter-context

发表于 2022-4-12 20:48 来自手机 |显示全部楼层
此文章由 AlanTse 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 AlanTse 所有!转贴必须注明作者、出处和本声明,并保持内容完整
zhuye1123 发表于 2022-4-11 21:19
我已经在原帖添加了数据的连接,是微软官方的数据,
或者到这个网页,在Apply Boolean expression filter ...

刚刚试了下,可以按销售额filter出来
图一是Calculate 的公式
图二是之前的直接Sum的佛公式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

发表于 2022-4-12 21:03 |显示全部楼层
此文章由 zhuye1123 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhuye1123 所有!转贴必须注明作者、出处和本声明,并保持内容完整
AlanTse 发表于 2022-4-12 19:48
刚刚试了下,可以按销售额filter出来
图一是Calculate 的公式
图二是之前的直接Sum的佛公式

多谢
我一直用的是measure,后来用了 column做出来了。对二者的使用区别还是有点模糊,只是在实践中发现好多measure做不到的用column就可以了。
请问这次的情况为什么measure不行呢?

发表于 2022-4-12 21:38 来自手机 |显示全部楼层
此文章由 AlanTse 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 AlanTse 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 AlanTse 于 2022-4-12 20:44 编辑

这里的column是为了给每个customer加一个类似于标签flag,标准是根据sales的总额是否大于2500,每一条数据(customer)都需要一个确定的值(high or low),必须是column

measure有点像数据库的view,一般是计算表格平均值或总和等,但不能赋予每一条数据,类似于宏观上的计算

网上摘录一段,一起学习下:
Calculate Column用DAX做计算总是基于current row(当前行)。Measure用DAX做计算不是row by row(一行一行的),而是aggregate(聚合)。这个也进一步解释了,Calculate Column可以在建他的表中可见,但是Measure不可以在建他的表中可见。因为Measure是聚合值不是一行一行的计算

评分

参与人数 1积分 +1 收起 理由
zhuye1123 + 1 感谢分享

查看全部评分

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部