2015-10-13 84 views
0

我有几个订单中所有项目的详细列表。每个订单都有一个唯一的标识符出现在每个相关行中。我需要一个公式,如果订单中的任何行包含项目X或列D,如果该订单中没有任何行包含项目X,则需要一个可以拉列C的公式。我该怎么做?我很乐意直接在Excel或PowerPivot中执行此操作。标记包含特定项目的订单中的所有行

谢谢!

+0

过滤器>复制/粘贴?尝试录制宏并编辑结果。 –

回答

0

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列]。

+0

非常感谢!这应该做到这一点! – aearce2000

相关问题