powerbi - 类别总和的 DAX 中位数
问题描述
如何计算类别总和的中位数?我有样本数据:
+----------------+-----------+
| category | sales |
+----------------+-----------+
| a | 1 |
| a | 2 |
| a | 4 |
| b | 1 |
| b | 3 |
| b | 4 |
| c | 1 |
| c | 4 |
| c | 5 |
+----------------+-----------+
+----------------+-----------+
| category | sales_sum |
+----------------+-----------+
| a | 7 |
| b | 8 | <- This median
| c | 10 |
+----------------+-----------+
| median of sums | 8 | <- This is expected results, regardless row context
+----------------+-----------+
我在这项措施上收效甚微。它返回正确的结果,但仅适用于类别总数。但我想为每个类别获得 8 个。
Median_of_sums :=
MEDIANX (
VALUES ( T[Category] ),
SUM ( T[Sales] )
)
解决方案
我不完全确定您在寻找什么,但也许使用 SUMMARIZE 函数可以解决问题:
Total =
MEDIANX (
SUMMARIZE (
T,
T[category],
"Sales_Calc", SUM ( T[sales] )
),
[Sales_Calc]
)
这个想法是首先在类别级别上汇总信息,然后计算汇总表的中位数。这将为所附样本提供以下结果:
a 7
b 8
c 10
Total 8
如果希望所有类别都反映 8,则必须使用 ALL 函数来确保类别上下文不会影响计算:
Total =
MEDIANX (
SUMMARIZE (
ALL ( T ),
T[category],
"Sales_Calc", SUM ( T[sales] )
),
[Sales_Calc]
)
希望这可以帮助。
推荐阅读
- php - 解析页面以获取输入,然后提交包含此输入值的帖子
- c# - 如何自动播放列表中的下一首歌曲
- algorithm - 如何从两个排序数组中的对中获取 K 个最小的产品?
- ruby-on-rails - 迭代模型的关联
- html - 文本和下划线的 CSS 定位
- css - 使用 PNG 而不是 JPG 图像来修复 Outlook 呈现问题?
- typescript - ts-node 中的“.type”从何而来?
- r - ggplot2替代填充条形图,多行中出现因子
- c# - 如何在 kendo 数据源读取方法中将数组对象作为参数传递?
- javascript - 在 ReactJS 中状态更新和删除后 DOM 不会删除项目