Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 类别和的DAX中值_Powerbi_Dax - Fatal编程技术网

Powerbi 类别和的DAX中值

Powerbi 类别和的DAX中值,powerbi,dax,Powerbi,Dax,如何计算类别总和的中位数?我有样本数据: +----------------+-----------+ | category | sales | +----------------+-----------+ | a | 1 | | a | 2 | | a | 4 | | b | 1 | | b

如何计算类别总和的中位数?我有样本数据:

+----------------+-----------+
|    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
+----------------+-----------+
通过参考上述措施,我可以得到我想要的:

CALCULATE ( [Median_of_sums], REMOVEFILTERS ( T[Category] ) )

但是我希望一次就可以得到它。

我不完全确定您在寻找什么,但是使用summary函数可能会达到以下目的:

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]
)

希望这会有所帮助。

是的,第二项措施会产生预期的结果。我不明白你为何提出第一项措施。顺便说一句,我试图用SummaryColumns函数实现同样的功能,结果走错了路。这就是为什么我们放弃了这种做法。谢谢
Total =
MEDIANX (
    SUMMARIZE (
        ALL ( T ),
        T[category],
        "Sales_Calc", SUM ( T[sales] )
    ),
    [Sales_Calc]
)