我有几个订单中所有项目的详细列表。每个订单都有一个唯一的标识符出现在每个相关行中。我需要一个公式,如果订单中的任何行包含项目X或列D,如果该订单中没有任何行包含项目X,则需要一个可以拉列C的公式。我该怎么做?我很乐意直接在Excel或PowerPivot中执行此操作。标记包含特定项目的订单中的所有行
谢谢!
我有几个订单中所有项目的详细列表。每个订单都有一个唯一的标识符出现在每个相关行中。我需要一个公式,如果订单中的任何行包含项目X或列D,如果该订单中没有任何行包含项目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),依此类推表示的第一个参数。 (1)中的表逐行逐行执行,并评估(2)中的布尔表达式,返回(2)返回true的(1)的子集。
ALLEXCEPT()返回在表(1)与来自它去除,除了在(2)命名字段的所有上下文 - (N)。因此,我们返回[OrderUniqueIdentifier]与当前行相同的整个表。
FILTER()的(2)只检查[项目]为 “商品X”。因此,对于每一行,我们得到一个表,其中包含共享[OrderUniqueIdentifier]和[Item] =“item X”的所有行。
COUNTROWS()对上面确定的表中的行进行计数。
我们比较为0。如果> 0,则该订单有一些“项目X”,返回[C列。
如果为0,那么该订单不包含“项目X”,则返回[D列]。
非常感谢!这应该做到这一点! – aearce2000
过滤器>复制/粘贴?尝试录制宏并编辑结果。 –