如何在 Power BI 中使用 WIDE/Horizontal 格式数据的 DAX/M CODE 汇总和计算比例

问题描述 投票:0回答:1

我希望你们一切都好。我目前正在开发一个 Power BI 项目,我面临着以宽/水平格式转换和汇总数据的挑战,我的数据集结构如下:

严重_级别 id_trans 代理 输入_a 类型_b 类型_c
1 a1 标记 可能 0 0 1
1 a2 标记 可能 1 1 1
0.5 a3 标记 可能 1 0 0
1 a4 萨姆 可能 1 0 1
0 a5 萨姆 可能 1 1 0
1 a6 萨姆 可能 1 0 0

请记住,type_a、type_b 和 type_c 列是根据原始数据创建的计算列。

这就是它们的计算方式,我的原始源数据中有相同的三个列,但我有一个带有“存在”或“不存在”标记的分类值,而不是数字,所以我将它们转换为 0 和 1 (1如果存在)。

以下是我想要实现的步骤的细分:

1 根据大于零的“ritic_level”过滤数据集。

2 对每个组(代理和时段)的“type_a”、“type_b”和“type_c”列求和。

3 创建一个“小计”列作为每组每个观察值的计数。

4 计算“type_a”、“type_b”和“type_c”占“小计”的比例。

我的目标是将此数据集转换为按“代理”和“期间”分组的汇总表。这是所需的输出:

代理 输入_a 类型_b 类型_c 小计
标记 可能 0.67 0.33 0.67 3
萨姆 可能 1.00 0.00 0.50 2

最后,如果您能参考一篇文章或教我如何将此格式旋转/分解为长格式,以便我的原始表格如下所示,我将非常感激:

严重_级别 id_trans 代理 类型_列
1 a1 标记 可能 类型_c
1 a2 标记 可能 输入_a
1 a2 标记 可能 类型_b
0.5 a3 标记 可能 输入_a
1 a4 萨姆 可能 输入_a
1 a4 萨姆 可能 类型_c
1 a5 萨姆 可能 输入_a
1 a5 萨姆 可能 类型_b
1 a6 萨姆 可能 输入_a

注意我是如何过滤掉等于零的 Critical_level 的。

如果你们中有人能帮助我,我将非常感激。我是 power bi 的新人,但我正在取得进步,我可以快速掌握它,而且我也是这里的一个非常活跃的用户,所以我会非常细心并审阅这篇文章以选择答案并为您的评论投票太感谢了! 来自意大利的爱。

powerbi dax powerquery powerbi-desktop m
1个回答
0
投票

您最好在 Power Query 中进行这种类型的重塑。

开始:

滤除零:

按如下方式创建群组:

在最后一步的公式栏中,将其更改为以下内容:

= Table.Group(#"Filtered Rows", {"agent ", "period "}, {{"type_a", each List.Sum([#"type_a "])/Table.RowCount(_), type nullable number}, {"type_b", each List.Sum([#"type_b "])/Table.RowCount(_), type nullable number}, {"type_c", each List.Sum([type_c])/Table.RowCount(_), type nullable number}, {"subtotal", each Table.RowCount(_), Int64.Type}})

© www.soinside.com 2019 - 2024. All rights reserved.