如何使用 Power BI 中的 DAX 获取列百分比平均值的度量值?
How to get a measure of Average of column percentage using DAX in Power BI for column chart?
我正在努力解决以下问题:
我需要一个 DAX 度量来从矩阵 table 结果中找到平均百分比。
这是我从 Power BI
中的矩阵 table 得到的
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% " 将其绘制在柱形图中。
我怎样才能实现这部分?
让我们假设您的 table 看起来像下面计算最后三列的列(只是总和然后是百分比)
通过添加以下措施
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 中使用矩阵可视化得到以下结果
你能试试下面的方法吗
_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 |
然后你可以写下面的measure
_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
我正在努力解决以下问题:
我需要一个 DAX 度量来从矩阵 table 结果中找到平均百分比。 这是我从 Power BI
中的矩阵 table 得到的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% " 将其绘制在柱形图中。 我怎样才能实现这部分?
让我们假设您的 table 看起来像下面计算最后三列的列(只是总和然后是百分比)
通过添加以下措施
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 中使用矩阵可视化得到以下结果
你能试试下面的方法吗
_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 |
然后你可以写下面的measure
_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