如何在DAX度量值中按条件使用CONCATENATEX拼接值?求指导
DAX条件拼接Increment值解决方案
要实现当Delete flag为'Yes'时移除对应Increment文本,否则保留拼接的需求,只需在现有度量中加入对Delete flag的筛选逻辑即可,以下是两种可行的修改方案:
方案1:先过滤数据集再拼接(保留重复值)
条件拼接Increment = VAR __filteredData = CALCULATETABLE( DATA, ALLEXCEPT(DATA, DATA[ID], DATA[ITERATION]), DATA[Delete flag] <> "Yes" // 过滤标记为删除的记录 ) RETURN CONCATENATEX( __filteredData, DATA[Increment], ", " )
方案2:在CONCATENATEX中直接过滤(写法更简洁)
条件拼接Increment = CONCATENATEX( FILTER( CALCULATETABLE( DATA, ALLEXCEPT(DATA, DATA[ID], DATA[ITERATION]) ), DATA[Delete flag] <> "Yes" ), DATA[Increment], ", " )
可选调整:去重拼接
如果需要对保留的Increment值去重后再拼接,只需在方案1中添加VALUES函数处理:
条件拼接Increment(去重) = VAR __filteredData = CALCULATETABLE( DATA, ALLEXCEPT(DATA, DATA[ID], DATA[ITERATION]), DATA[Delete flag] <> "Yes" ) VAR __uniqueTags = VALUES(__filteredData[Increment]) RETURN CONCATENATEX( __uniqueTags, [Increment], ", " )
核心修改说明
- 原代码未对Delete flag做判断,新增的
DATA[Delete flag] <> "Yes"条件确保只处理未被标记删除的行 - 若业务允许重复值保留,直接使用过滤后的原表拼接;若需去重,用
VALUES提取唯一值后再拼接
内容的提问来源于stack exchange,提问作者Prem Chand
相关产品推荐
相关产品推荐

