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

Power BI中无需逆透视,用DAX/度量值统计列内特定值出现次数

在Power BI中统计含多值列的特定值出现次数(无需逆透视)

完全可以通过DAX度量值实现需求,无需执行逆透视操作,以下是具体方案:

核心逻辑

借助DAX文本函数拆分每行的多值内容,生成临时的拆分后值集合,再筛选统计目标值的出现次数,全程保留原表结构。

基础DAX度量值示例

假设你的表名为SampleTable,待统计列是Tags,要统计的特定值为"A",可使用如下度量值:

CountSpecificValue = 
VAR TargetValue = "A"
VAR SplitValues = ADDCOLUMNS(
    SampleTable,
    "@Split", PATHITEMIZE(SUBSTITUTE(SampleTable[Tags], ",", "|"), 0)
)
VAR ExpandedValues = SELECTCOLUMNS(
    SplitValues,
    "@Value", [@Split]
)
RETURN
COUNTROWS(FILTER(ExpandedValues, [@Value] = TargetValue))

表达式细节说明

  • SUBSTITUTE(SampleTable[Tags], ",", "|"):将列中的多值分隔符(示例为逗号,可根据实际场景替换)替换为PATH系列函数支持的|符号
  • PATHITEMIZE(..., 0):将每行的多值内容拆分为单独的行级值集合
  • ADDCOLUMNS+SELECTCOLUMNS:构建临时表存储拆分后的所有值
  • COUNTROWS(FILTER(...)):筛选出匹配目标值的行并统计数量

适配不同分隔符场景

如果你的多值分隔符不是逗号,仅需修改SUBSTITUTE函数内的分隔符即可,比如分隔符是分号时:

SUBSTITUTE(SampleTable[Tags], ";", "|")

动态切换统计目标值

若需通过切片器动态选择要统计的值,可先创建一个包含所有可选值的辅助表(比如ValueList),再修改度量值:

CountDynamicValue = 
VAR TargetValue = SELECTEDVALUE(ValueList[Value])
VAR SplitValues = ADDCOLUMNS(
    SampleTable,
    "@Split", PATHITEMIZE(SUBSTITUTE(SampleTable[Tags], ",", "|"), 0)
)
VAR ExpandedValues = SELECTCOLUMNS(
    SplitValues,
    "@Value", [@Split]
)
RETURN
IF(NOT ISBLANK(TargetValue), COUNTROWS(FILTER(ExpandedValues, [@Value] = TargetValue)), 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:22:36