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

PowerBI列中统计特定文本子串出现次数的技术咨询

PowerBI统计子串出现次数的解决方案

针对你列中用分号、逗号分隔的多组数据,推荐用DAX计算列或度量值实现动态统计,替代僵化的新表方案,具体操作如下:

一、单行列内子串次数统计(计算列)

如果需要给每行数据添加字段,统计该行内目标子串的出现次数,以统计"FaN"为例,用以下DAX公式:

FaN出现次数 = 
VAR 拆分分组 = TEXTSPLIT([你的原始列名], ";") // 按分号拆成各组
RETURN
SUMX(
    拆分分组,
    VAR 拆分单项 = TEXTSPLIT([Value], ", ") // 每组内按逗号+空格拆成单个值
    RETURN
    COUNTX(
        FILTER(拆分单项, [Value] <> "" && CONTAINSSTRING([Value], "FaN")),
        [Value]
    )
)
  • 若使用旧版PowerBI(无TEXTSPLIT函数),可替换为兼容写法:
    FaN出现次数(旧版本兼容) = 
    VAR 替换分隔符 = SUBSTITUTE(SUBSTITUTE([你的原始列名], ";", "|"), ", ", "|")
    VAR 总项数 = PATHLENGTH(替换分隔符)
    RETURN
    SUMX(
        GENERATESERIES(1, 总项数),
        VAR 当前项 = PATHITEM(替换分隔符, [Value])
        RETURN
        IF(CONTAINSSTRING(当前项, "FaN") && 当前项 <> "", 1, 0)
    )
    

二、全列子串总次数统计(度量值)

如果需要动态统计整个列中目标子串的总出现次数,用度量值:

总FaN次数 = 
SUMX(
    ALL('你的表名'),
    VAR 拆分分组 = TEXTSPLIT('你的表名'[原始列名], ";")
    RETURN
    SUMX(
        拆分分组,
        VAR 拆分单项 = TEXTSPLIT([Value], ", ")
        RETURN
        COUNTX(
            FILTER(拆分单项, [Value] <> "" && CONTAINSSTRING([Value], "FaN")),
            [Value]
        )
    )
)

问题原因说明

  • 之前用Filter+ContainsString报错:大概率是直接对整个单元格内容做判断,未拆分到单个子项,导致逻辑无法匹配分散在分组里的子串。
  • 新表方案僵化:静态表格无法随原始字段的数据更新自动同步,而计算列/度量值会和原字段绑定,实时响应数据变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:12:18