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

DAX实现类似TSQL string_split功能匹配逗号分隔ValueKey方案咨询

DAX实现逗号分隔值匹配筛选方案

DAX 没有内置的STRING_SPLIT函数,可通过PATH系列函数搭配表生成函数实现同等效果,具体实现如下:

实现逻辑

  1. 先拆分Table1中逗号分隔的ValueKey文本,转换为整数类型的单行单值列表
  2. 用生成的Key列表匹配筛选Table2,提取需要的ID、Value字段生成临时表

单步完成的DAX代码

结果临时表 = 
// 拆分Table1的ValueKey得到所有目标筛选值
VAR TargetKeyList =
    SELECTCOLUMNS(
        GENERATE(
            Table1,
            // 将逗号分隔符替换为PATH函数识别的|分隔符
            VAR KeyPath = SUBSTITUTE(Table1[ValueKey], ",", "|")
            // 计算拆分后的Key总数量
            VAR KeyTotal = PATHLENGTH(KeyPath)
            // 生成序列遍历每个Key的位置
            RETURN GENERATESERIES(1, KeyTotal, 1)
        ),
        // 提取对应位置的Key并转为INT类型,和Table2的ValueKey类型匹配
        "TargetKey", INT(PATHITEM(SUBSTITUTE(Table1[ValueKey], ",", "|"), [Value]))
    )
// 筛选Table2并提取需要的字段
RETURN
SELECTCOLUMNS(
    FILTER(Table2, Table2[ValueKey] IN TargetKeyList),
    "ID", Table2[ID],
    "Value", Table2[Value]
)

结果验证

根据你提供的示例数据,最终生成的结果临时表会返回2行符合要求的数据:

IDValue
ID187,8
ID413,4

注意事项

  • 代码兼容所有支持DAX的环境(SSAS、Power BI、Excel Power Pivot)
  • 若Table1存在多行ValueKey记录,代码会自动拆分所有行的分隔值,无需额外调整

内容的提问来源于stack exchange,提问作者Juraj C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:15:03