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

How to filter comparing two different columns DAX

我在 Table1[client] 和 Table2[client_source] 领域有以下两个 tables 相关:

Table 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

Table 2 :

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

我的 objective 是将具有 duration_wait > 的行计数到其关联的阈值。

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

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

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

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

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

如有任何建议,我们将不胜感激。谢谢!

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

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

生成输出