如何过滤比较两个不同的列DAX

问题描述

我在字段Table1 [client]和Table2 [client_source]中有以下两个表:

表1:

Date        Client      wait_duration
03/08/2020  client1     42
03/08/2020  client2     8
03/08/2020  client1_x   10
03/08/2020  client2     10
03/08/2020  client1_x   10
03/08/2020  client3     32
03/08/2020  client3     21
03/08/2020  client3     18
03/08/2020  client1_y   128

表2:

client  source_client   Treshhold
AAA     client1         60
AAA     client1_x       60
AAA     client1_y       60
BBB     client2         30
CCC     client3         20

我的目标是将使用duration_wait>的行计入其关联的阈值。

所以我在Power Pivot中尝试了以下DAX公式:

=COUNTROWS(CALculaTETABLE(Table1;Table1[wait_duration] <= Table2[Treshold]))

但是它给了我以下错误: “该表达式包含多列,但在用作表过滤器表达式的True / False表达式中只能使用一列。”

我试图在表达式中使用RELATED(Table2 [Treshold]),但似乎引擎无法链接列并将相关的阈值注入公式中。

如果我们不能在表达式中使用这两列,该如何比较? 我需要该表,因为它允许我将唯一的客户名称下的不同实体分组,并为每个客户应用不同的阈值。

任何建议将不胜感激。谢谢!

解决方法

假设Table 2包含source_client的唯一值,最好使用FILTER而不是CALCULATEDTABLE

Client Duration =
COUNTROWS (
    FILTER ( Table1,Table1[wait_duration] > RELATED ( Table2[Treshhold] ) )
)

生成输出

enter image description here