如果group包含值,请将列中的所有项更改为value

时间:2014-02-03 21:52:54

标签: sql excel grouping calculated-columns dax

如果客户端在任何时候都有“新”,那么任何人都知道如何添加一个将所有类型条目更改为“新”的列?

示例:

Trans  Date   Client Type
0001  1/2/13   1234  New
0002  1/4/13   1234  Returning
0003  1/3/13   1234  Returning
0004  1/3/13   1234  Returning
0005  1/5/13   1234  Returning

我想在DAX中执行此操作,但Excel或SQL也可以。谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个。

UPDATE Table 
SET Type = 'New'
WHERE Client IN (SELECT DISTINCT Client FROM Table WHERE Type = 'New')

我不知道为什么我被投票,但这里有一个SQLFIDDLE,表明查询确实有效。

答案 1 :(得分:0)

我有两列解决方案。查看E列和F列中的公式。引用假设您的数据位于从第2行开始的A-D列中,并根据需要进行更改。如果你真的想要一列解决方案

,你也可以做一个这样的数组公式
      A     B       C      D         
1   Trans  Date   Client Type        
2   0001  1/2/13   1234  New         
3   0002  1/4/13   1234  Returning
4   0003  1/3/13   1234  Returning
5   0004  1/3/13   1234  Returning
6   0005  1/5/13   1234  Returning

在E栏 - Concatonate您的客户编号并输入:

"=C2&D2".

这将产生诸如1234New,1234Returning等的结果。

在F栏 - 测试中,以查看E列中的任何内容是否具有行客户端编号+“新建”。如果在E列中有任何具有该客户编号和新编号的内容,则返回“新建”作为状态,否则返回现有状态:

"=IF(COUNTIF($E$2:$E$6,C2&"New")>=1,"New",D2)"