PBI、Dax - 根据另一列中的数据计算多列中的特定值

问题描述 投票:0回答:1

我有 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),所以我认为关系有些问题(???)你可以吗请帮我找到这个问题的解决方案吗?

powerbi dax
1个回答
0
投票

使用 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
© www.soinside.com 2019 - 2024. All rights reserved.