[已解决] 同一列满足两个条件的计数应该怎么写DAX函数

  [复制链接]
查看110683 | 回复120 | 2020-9-16 06:33:59 | 显示全部楼层 |阅读模式
各位大佬们,请问在同一列满足两个条件的计数应该怎么写DAX函数。
举例:在订单列表中,有用户ID和购买产品名称两列。现想求同一用户即购买了产品A,又购买了产品B的计数值。
求大佬们教导一下~~
回复

使用道具 举报

longge00000 | 2020-9-16 06:42:59 | 显示全部楼层
DAX解决问题的方案有很多,这里提供一种简单明了的思路,你可以分别求购买了产品A和产品B的用户列表,然后求交集进行不重复计数。
回复

使用道具 举报

stonegy | 2020-9-16 06:45:00 | 显示全部楼层
这样可以吗?

9973012216361.rar (46.46 KB, 下载次数: 0)
回复

使用道具 举报

亚洲之鹰 | 2020-9-16 06:51:00 | 显示全部楼层
DAX解决问题的方案有很多,这里提供一种简单明了的思路,你可以分别求购买了产品A和产品B的用户列表,然后 ...


感谢大佬指导~分别求A和B的用户列表,可以用calculate实现。但是怎么对两个表进行求交集,我就不知道用什么能实现了
回复

使用道具 举报

wxfhz | 2020-9-16 06:56:00 | 显示全部楼层
这样可以吗?


感谢大佬指导~ 好像您没理解我想表达的意思哈,按您在表格举的例子来说,我最后想得到的值应该是2(同时购买了产品A和产品B的用户只有ID为1和2的两名用户)
回复

使用道具 举报

台风 | 2020-9-16 07:03:00 | 显示全部楼层
CALCULATE(COUNTROWS('销售记录'),OR('销售记录'[产品名称]="A",'销售记录'[产品名称]="B"))/2
回复

使用道具 举报

zologist | 2020-9-16 07:05:00 | 显示全部楼层
感谢大佬指导~分别求A和B的用户列表,可以用calculate实现。但是怎么对两个表进行求交集,我就不知道用什 ...


countrows(intersect (tableA,tableB))
回复

使用道具 举报

mgw-hello | 2020-9-16 07:11:00 | 显示全部楼层
CALCULATE(COUNTROWS('销售记录'),OR('销售记录'[产品名称]="A",'销售记录'[产品名称]="B"))/2


感谢,但是公式似乎实现不了我要的结果~
回复

使用道具 举报

trudeau | 2020-9-16 07:14:01 | 显示全部楼层
countrows(intersect (tableA,tableB))


谢谢大佬指点,已经实现了。
先用calculatetable筛选出产品A和产品B的用户ID
然后countrows(intersect (tableA,tableB))实现两者交集~
鞠躬~Orz
回复

使用道具 举报

zycw | 2020-9-16 07:19:01 | 显示全部楼层
又学了一招,谢谢各位大佬
回复

使用道具 举报

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

本版积分规则