如何在 Power BI 中使用 DAX 获取柱形图的平均列百分比度量?
Posted
技术标签:
【中文标题】如何在 Power BI 中使用 DAX 获取柱形图的平均列百分比度量?【英文标题】:How to get a measure of Average of column percentage using DAX in Power BI for column chart? 【发布时间】:2021-10-03 03:09:52 【问题描述】:我正在努力解决以下问题:
我需要一个 DAX 度量来从矩阵表结果中找到平均百分比。 这是我从 Power BI 中的矩阵表中得到的
Place Late No-Late Total
India 2 200 202
Bangladesh 40 60 100
China 0 150 150
Total 42 410 452
然后我应用 % of Row Total
Place Late No-Late Total
India 1% 99% 100%
Bangladesh 40% 60% 100%
China 0 100% 100%
Total 9% 91% 100%
现在我需要 "No-Late" 列中的 平均百分比,该列将是 "86%" 以将其绘制在柱状图。 我怎样才能实现这部分?
【问题讨论】:
【参考方案1】:你可以试试下面的
_avg =
VAR _0 =
SUMX (
'fct',
VAR _total = fct[Late] + fct[No-Late]
VAR _noLate = fct[No-Late]
VAR _pct =
DIVIDE ( _noLate, _total )
RETURN
_pct
)
RETURN
DIVIDE ( _0, DISTINCTCOUNT ( fct[Place] ) )
Edit
如果你想在下面的图表中显示总数
请确保您的数据源如下所示。因为要在图表中显示Total
,轴必须存在于数据源本身中。
| Place | Late | No-Late | Index |
|------------|------|---------|-------|
| India | 2 | 200 | 1 |
| Bangladesh | 40 | 60 | 2 |
| China | 0 | 150 | 3 |
| Total | null | null | 4 |
然后您可以编写以下度量
_avg2 =
VAR _currentlyVisiblePlace =
MAX ( fct[Place] )
VAR _aggregation =
SWITCH (
TRUE (),
_currentlyVisiblePlace <> "Total",
VAR _0 =
SUMX (
'fct',
VAR _total = fct[Late] + fct[No-Late]
VAR _noLate = fct[No-Late]
VAR _pct =
DIVIDE ( _noLate, _total )
RETURN
_pct
)
VAR _1 =
DIVIDE ( _0, DISTINCTCOUNT ( fct[Place] ) )
RETURN
_1,
_currentlyVisiblePlace = "Total",
VAR _0 =
SUMX (
ALL ( fct ),
VAR _total = fct[Late] + fct[No-Late]
VAR _noLate = fct[No-Late]
VAR _pct =
DIVIDE ( _noLate, _total )
RETURN
_pct
)
VAR _1 =
DIVIDE (
_0,
CALCULATE (
DISTINCTCOUNT ( fct[Place] ),
ALL ( fct ),
NOT fct[Place] IN "Total"
)
)
RETURN
_1
)
RETURN
_aggregation
【讨论】:
我可以在柱形图上单独绘制“86.34%”吗?【参考方案2】:假设您的表格如下所示,其中计算了最后三列(只有总和,然后是百分比)
通过添加以下措施
No Late (%) = If( HASONEVALUE(Table1[No-Late (%)]),Table1[Total No Late]/Table1[Total], AVERAGE(Table1[No-Late (%)]))
Total No Late = sum(Table1[No-Late])
您将能够使用矩阵视觉在 Power BI 中获得以下结果
【讨论】:
以上是关于如何在 Power BI 中使用 DAX 获取柱形图的平均列百分比度量?的主要内容,如果未能解决你的问题,请参考以下文章