【问题标题】:How to create a table (or list) with the order codes of orders with both products如何使用两种产品的订单的订单代码创建表格(或列表)
【发布时间】:2018-12-14 03:29:23
【问题描述】:

我有一个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的订单。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

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

    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} 的交集正是该集并且计数为@ 987654326@。如果两者都没有,则计数将为10,并且测试失败。

    【讨论】:

    • 太棒了!我花了一段时间才到达那里,但我明白了,谢谢!
    【解决方案2】:

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

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

    【讨论】:

    • 我需要知道哪些订单同时包含产品 5 和 8。使用 Power BI Desktop 筛选器并仅选择包含这些产品但不一定包含这两种产品的订单。
    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 2021-03-23
    • 2022-06-16
    • 2014-03-07
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多