标记包含特定项目的订单中的所有行
Flagging all rows in an order that contain a particular item
我有几个订单中所有项目的详细清单。每个订单都有一个唯一标识符,出现在每个相关行中。我需要一个公式,如果订单中的任何行包含项目 X,或者如果该订单中的 none 行包含项目 X,则可以拉出 C 列。我该怎么做?我很乐意直接在 Excel 或 PowerPivot 中执行此操作。
谢谢!
DAX:
MyNiftyColumn=
IF(
COUNTROWS(
FILTER(
ALLEXCEPT('MyTable', 'MyTable'[OrderUniqueIdentifier])
,'MyTable'[Item] = "item X"
)
) > 0
,'MyTable'[column C]
,'MyTable'[column D]
)
我在下面按位置引用函数参数,第一个参数用 (1) 表示,第二个参数用 (2) 表示,依此类推。
FILTER() 逐行执行 (1) 中的 table 并计算 (2) 中的布尔表达式,returning (1) 的子集 ( 2) return是真的。
ALLEXCEPT() returns (1) 中的 table 删除了所有上下文,除了 (2)-(n) 中命名的字段。因此我们 return 整个 table 其中 [OrderUniqueIdentifier] 与当前行相同。
FILTER() 的 (2) 仅检查 [Item] 是否为 "Item X"。因此,对于每一行,我们得到一个 table,其中包含共享 [OrderUniqueIdentifier] 并具有 [Item] = "item X".
的所有行
COUNTROWS() 计算上面确定的 table 中的行数。
我们与 0 进行比较。如果 > 0,则该订单有一些 "item X"、return [C 列]。
如果为 0,则该订单不包含 "item X"、return [D 列]。
我有几个订单中所有项目的详细清单。每个订单都有一个唯一标识符,出现在每个相关行中。我需要一个公式,如果订单中的任何行包含项目 X,或者如果该订单中的 none 行包含项目 X,则可以拉出 C 列。我该怎么做?我很乐意直接在 Excel 或 PowerPivot 中执行此操作。
谢谢!
DAX:
MyNiftyColumn=
IF(
COUNTROWS(
FILTER(
ALLEXCEPT('MyTable', 'MyTable'[OrderUniqueIdentifier])
,'MyTable'[Item] = "item X"
)
) > 0
,'MyTable'[column C]
,'MyTable'[column D]
)
我在下面按位置引用函数参数,第一个参数用 (1) 表示,第二个参数用 (2) 表示,依此类推。
FILTER() 逐行执行 (1) 中的 table 并计算 (2) 中的布尔表达式,returning (1) 的子集 ( 2) return是真的。
ALLEXCEPT() returns (1) 中的 table 删除了所有上下文,除了 (2)-(n) 中命名的字段。因此我们 return 整个 table 其中 [OrderUniqueIdentifier] 与当前行相同。
FILTER() 的 (2) 仅检查 [Item] 是否为 "Item X"。因此,对于每一行,我们得到一个 table,其中包含共享 [OrderUniqueIdentifier] 并具有 [Item] = "item X".
的所有行COUNTROWS() 计算上面确定的 table 中的行数。
我们与 0 进行比较。如果 > 0,则该订单有一些 "item X"、return [C 列]。
如果为 0,则该订单不包含 "item X"、return [D 列]。