You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:20:16