我有 2 个表:数据表和 RC 表 数据表包含有3个代码的订单
订购 | RC1 | RC2 | RC3 |
---|---|---|---|
1000 | 100 | 164 | 100 |
1001 | 134 | 100 | 空 |
1002 | 164 | 空 | 134 |
包含代码说明的 RC 表:
RC | 描述 |
---|---|
100 | 苹果 |
134 | 香蕉 |
164 | 椰子 |
我想计算每个RC在数据表中出现的次数。在 Excel 中,使用 countif 函数会很容易,但在 DAX 中我陷入困境,因为它对我来说相当新。
预期输出:
RC | 描述 | 数 |
---|---|---|
100 | 苹果 | 3 |
134 | 香蕉 | 2 |
164 | 椰子 | 2 |
我尝试了 COUNTROWS & FILTER,但我只能计算两个表之间关系处于活动状态的列中的数据(RC - RC1 或 RC2 或 RC3),所以我认为关系有些问题(???)你可以吗请帮我找到这个问题的解决方案吗?
使用 Power BI/DAX 处理行比处理列要容易得多、简单得多。我建议将 Power Query 中的表修改为:
订购 | 项目 | RC ID |
---|---|---|
1000 | RC1 | 100 |
1000 | RC2 | 164 |
1000 | RC3 | 100 |
1001 | RC1 | 134 |
1001 | RC2 | 100 |
1002 | RC1 | 164 |
1002 | RC3 | 134 |
在 Power Query 中,选择
Order
列,然后执行 Unpivot Other Columns
即可实现此目的。从这里开始,您只需要一种关系。
或者,如果保留原来的表结构,则需要创建三个关系,一个是活动的,另外两个是非活动的。然后您可以使用
USERELATIONSHIP
函数依次激活每个关系。类似于:
RC Count =
var c1 = CALCULATE(COUNTROWS('DataTable'), USERELATIONSHIP('RC'[RC]', DataTable'[RC1]) )
var c2 = CALCULATE(COUNTROWS('DataTable'), USERELATIONSHIP('RC'[RC]', DataTable'[RC2]) )
var c3 = CALCULATE(COUNTROWS('DataTable'), USERELATIONSHIP('RC'[RC]', DataTable'[RC3]) )
return c1 + c2 + c3