使用另一个表(DAX)中的值在CALCULATETABLE期间进行过滤

时间:2018-07-24 15:10:18

标签: powerbi dax powerbi-desktop

我在Power BI工作区中有两个表:

Table 1来自一个查询,该查询提取了一个订单及其中的产品列表。

CustomerID    OrderID    ProductID    Country    Date
0010234       9235064    V24-GY       UK         04/07/2018
0010234       9235064    AB5-84       UK         04/07/2018
0010234       9235064    RIM-3S       UK         04/07/2018
0010234       4812623    V79-GY       UK         27/09/2018
0049371       7924823    V24-GY       UK         09/10/2018
0049371       7924823    59H-PW       UK         09/10/2018

Table 2包含一个唯一的OrderID值列表,其中包括某个产品X(例如V24-GY)。这是使用SUMMARIZECOLUMNS并应用FILTER在表1中搜索产品X来创建的

OrderID
9235064
7924823

我想将OrderID中的Table 2值用作Table 1的过滤器,以便创建一个新表Table 3

CustomerID    OrderID    ProductID    Country    Date
0010234       9235064    V24-GY       UK         04/07/2018
0010234       9235064    AB5-84       UK         04/07/2018
0010234       9235064    RIM-3S       UK         04/07/2018
0049371       7924823    V24-GY       UK         09/10/2018
0049371       7924823    59H-PW       UK         09/10/2018

我尝试将CALCULATETABLEFILTER一起使用,但是Table 2无法识别为有效的名称/实体,因此无法使用。

如何前往Table 3

1 个答案:

答案 0 :(得分:2)

您可以在仅将Table2作为变量而不是数据模型中显示的计算表的情况下进行计算。

Table3的计算公式如下:

 Table3 = 
     VAR Table2 = SUMMARIZECOLUMNS(Table1[OrderID],
                      FILTER(Table1, Table1[ProductID] = "V24-GY"))
     RETURN FILTER(Table1, Table1[OrderID] IN Table2)

这里有一个类似的方法,它跳过了总结。

Table3 = FILTER(Table1,
             Table1[OrderID] IN
                 SELECTCOLUMNS(
                     FILTER(Table1, Table1[ProductID] = "V24-GY"),
                     "OrderID", Table1[OrderID]))