如何使用两个产品的订单的订单代码创建表(或列表)

时间:2018-07-05 15:16:39

标签: powerbi dax

我有一个具有以下结构的Transactions表:

ID  | Product | OrderCode | Value
1   |   8     | ABC       | 100
2   |   5     | ABC       | 150
3   |   4     | ABC       |  80
4   |   5     | XPT       | 100
5   |   6     | XPT       | 100
6   |   8     | XPT       | 100
7   |   5     | XYZ       | 100
8   |   8     | UYI       |  90

如何使用产品5和8的订单的订单代码创建表(或列表)?

在上面的示例中,应该是订单ABCXPT

2 个答案:

答案 0 :(得分:4)

可能有很多方法可以做到这一点,但这是我想出的一个相当通用的解决方案:

FilteredList =
    VAR ProductList = {5, 8}
    VAR SummaryTable = SUMMARIZE(Transactions,
                           Transactions[OrderCode],
                           "Test",
                           COUNTROWS(INTERSECT(ProductList, VALUES(Transactions[Product])))
                               = COUNTROWS(ProductList))
    RETURN SELECTCOLUMNS(FILTER(SummaryTable, [Test]), "OrderCode", Transactions[OrderCode])

此处的关键是,如果特定订单代码的产品集同时包含58,那么VALUES(Transations[Product])与集{5,8}的交集就完全相同设置且计数为2。如果两者都不存在,则计数将为10,并且测试失败。

答案 1 :(得分:0)

请详细说明您的问题,从上面的帖子中我了解到您想过滤列表,为此,您可以使用下面的代码

List<Transactions> listTransactions = listTransactions.FindAll(x=>x.Product == 5 || x.Product == 8)