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

如何使用DAX逆透视表格指定列?DAX生成表处理求助

解决DAX生成表补全缺失预测值及占比计算方案

因为DAX生成的计算表无法导入Power Query处理,直接用DAX完成补全、计数和占比计算:

步骤1:生成包含所有类别+所有预测值的基础表

先构建每个类别都对应True/False的笛卡尔积表,确保没有缺失行:

完整类别预测基础表 = 
CROSSJOIN(
    -- 提取原表中所有唯一类别
    VALUES('原分类准确率表'[类别]),
    -- 生成固定的True/False列表
    DATATABLE(
        "Predicted Values", BOOLEAN,
        { { TRUE }, { FALSE } }
    )
)

步骤2:补全计数并生成最终表

将原表的计数匹配到基础表中,缺失的False计数填充为0:

补全后的准确率表 = 
VAR 原计数表 = '原分类准确率表'
RETURN
ADDCOLUMNS(
    '完整类别预测基础表',
    "计数",
    -- 查找对应类别和预测值的计数,找不到则返回0
    COALESCE(
        LOOKUPVALUE(
            原计数表[计数],
            原计数表[类别], [类别],
            原计数表[Predicted Values], [Predicted Values]
        ),
        0
    )
)

步骤3:计算预测占比(推荐用度量值)

用度量值实现动态占比,适配切片器交互:

预测占比 = 
VAR 当前分组计数 = SUM('补全后的准确率表'[计数])
VAR 类别总计数 = 
CALCULATE(
    SUM('补全后的准确率表'[计数]),
    -- 仅保留当前类别筛选,忽略预测值筛选
    ALLEXCEPT('补全后的准确率表', '补全后的准确率表'[类别])
)
RETURN
-- 避免除以0,返回0替代错误
DIVIDE(当前分组计数, 类别总计数, 0)

可视化设置

  • 切片器:使用补全后的准确率表中的类别字段
  • 柱状图:
    • 轴:类别 + Predicted Values(可将Predicted Values拖入图例或轴)
    • 值:选择预测占比(显示百分比)或计数(显示数量)

可选:合并为单表DAX

如果不想拆分多个表,可直接生成最终表:

最终准确率表 = 
VAR 原表 = '原分类准确率表'
VAR 所有类别 = VALUES(原表[类别])
VAR 所有预测值 = DATATABLE("Predicted Values", BOOLEAN, { { TRUE }, { FALSE } })
VAR 完整基础 = CROSSJOIN(所有类别, 所有预测值)
RETURN
ADDCOLUMNS(
    完整基础,
    "计数", COALESCE(LOOKUPVALUE(原表[计数], 原表[类别], [类别], 原表[Predicted Values], [Predicted Values]), 0),
    "占比", 
    DIVIDE(
        COALESCE(LOOKUPVALUE(原表[计数], 原表[类别], [类别], 原表[Predicted Values], [Predicted Values]), 0),
        CALCULATE(SUM(原表[计数]), ALLEXCEPT(原表, 原表[类别])),
        0
    )
)

注意:如果原DAX表的类别来自数据模型中的独立类别表,建议将VALUES('原分类准确率表'[类别])替换为'类别表'[类别],提升稳定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:55:14