网友提问:
图片放大:
回答网友问题:
(资料图片仅供参考)
新年快乐!祝您新的一年工作顺利,学习愉快!
这个问题好比十字螺丝,建议使用十字螺丝刀,比如,您看我用PowerQuery点两下鼠标,再用一句话搞定
一、PowerQuery解决方法
1、导入数据,首列用鼠标点击改成文本类型
2、用鼠标筛选159和1
3、添加步骤一句话搞定
最后你用鼠标双击修改一下首列字段名就可以了。
每个列得到的逻辑:
第1列是通过对筛选后的表分组行到的,第2列分组后对值那列求和,第3列分组后每张表的行数计算,第四列分组后的账单号对筛选原表得到数据后对值那个字段求和。
二、DAX方法
你的DAX方法,可能是想多了,问题很简单,但是您想的很复杂。我讲一下我的想法
1、做一个矩阵和一个切片器,行标题放【值】字段,切片器筛选 1和159
2、三个度量值如下
原理:var x=SELECTEDVALUE('表'[值]) 代表行标题上的那个值
在原表中筛选行标题的那个值所产生的表,对这个表的【值】字段求和。
原理:同上,只是把sumx改成了countx 从求和变成计数
原理:var x=SELECTEDVALUE('表'[值])代表行标题上的那个值
var tb = SELECTCOLUMNS(FILTER('表',[值]=x),"账单号",[账单号]) 筛选行标题上的那个值得到的表,取【账单号】那个列
calculate(SUM('表'[值]),'表'[账单号] in tb,ALL('表'[值]))这一步我们分别筛选【账单号】字段3、4和1、2在原表中的所有行,然后求和【值】字段。由于我们不能只筛选159和1的值,所以要ALL('表'[值])
最终结果:
我个人感觉,这个需求属于数据清洗,而不是数据分析,我个人不建议您使用DAX,但是方法我都提供了,您可以自行选择。因为DAX你要考虑很多问题,现在数据和需求简单,后期可能会出现各种各样的bug。
总之不同的需求有不同的工具,您看我就是个普通人,我能用合适的工具满足我的需求,我开车水平很一般,比不了赛车手,但是上下班、自驾游都没问题。做饭我不如厨师,但是我大哥满意。电脑我比不了哈罗雷球白夕尚*,但是我工作中已经够用,高兴了还能和他们PK一下技术。。。。
虽然我掌握的技能多而不精,但是我感觉我活的挺精彩。
PowerBI学习顺序:
【1】Access基础篇,学习s01开头的集数,理解表格数据规范和表关系
https://www.bilibili.com/video/BV1tf4y117Sh
【2】PowerBI火力全开,学习函数语法,与应用场景
https://www.bilibili.com/video/BV1qa4y1H7wp
【3】DAX神功,学习DAX函数原理
https://www.bilibili.com/read/readlist/rl442274
【4】PowerBI可视化图表
https://www.bilibili.com/video/BV1W54y1i7dE
https://www.bilibili.com/video/BV1r54y1i75n