【问题标题】:If group contains a value, change all items in column to value如果组包含一个值,则将列中的所有项目更改为值
【发布时间】:2014-02-03 21:52:54
【问题描述】:
如果客户在任何时候都有“新”,任何人都知道如何添加一个将所有类型条目更改为“新”的列?
示例:
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 也可以。谢谢!
【问题讨论】:
标签:
sql
excel
grouping
calculated-columns
dax
【解决方案1】:
试试这个。
UPDATE Table
SET Type = 'New'
WHERE Client IN (SELECT DISTINCT Client FROM Table WHERE Type = 'New')
我不知道为什么我被否决了,但这里有一个 SQLFIDDLE 表明查询确实有效。
【解决方案2】:
我有一个两列的解决方案给你。查看 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 列 - 连接您的客户编号并输入:
"=C2&D2".
这将产生诸如 1234New、1234Returning 等结果。
在 F 列中 - 测试以查看 E 列中的任何内容是否具有行客户编号 +“新”。如果 E 列中有任何具有该客户编号和新的东西,则返回“新”作为状态,否则返回现有状态:
"=IF(COUNTIF($E$2:$E$6,C2&"New")>=1,"New",D2)"