在两个表中使用 OR 条件进行计算

CALCULATE with OR condition in two tables

为了求和属于鞋子类别的蓝色产品或产品的销售额,我使用以下 DAX 表达式:

CALCULATE(

SUM(Table[SalesAmount]),

FILTER(

Table,

Table[Color] = "Blue" ||

Table[Category] = "Shoes")

)

但是,这不适用于两个不同的表(颜色和类别),例如:

CALCULATE(

SUM(Table[SalesAmount]),

FILTER(

Table,

Colors[Color] = "Blue" ||

Categories[Category] = "Shoes")

)

有人可以帮忙吗?

谢谢!

这可能不是理想的答案,但一种方法是使用 inclusion-exclusion principle:

CALCULATE(SUM(Table[SalesAmount]), Colors[Color] = "Blue") + 
CALCULATE(SUM(Table[SalesAmount]), Categories[Category] = "Shoes") - 
CALCULATE(SUM(Table[SalesAmount]), Colors[Color] = "Blue", Categories[Category] = "Shoes") 

通过网络搜索,我找到了 this forum topic。借用 OwenAuger 的 post,我提出以下公式:

CALCULATE(SUM(Table[SalesAmount]),
          FILTER(SUMMARIZE(Table, Colors[Color], Categories[Category]),
                 Colors[Color] = "Blue" ||
                 Categories[Category] = "Shoes"))

我们通过使用 SUMMARIZE 创建一个包含我们需要的所有部分的 table 来绕过单个 table 限制。