Power BI:如何进行场景分析,其中 select 或 "looks up" 来自切片器的 select 值并从该行获取值
Power BI: How to scenario analysis, where the selector "looks up" the select value from slicer and gets values from that row
我已经学习了多个关于场景分析和 power BI 中的假设分析的教程。这些例子对我来说很清楚,我有点理解它们是如何工作的。例如这个 (https://community.powerbi.com/t5/Community-Blog/Scenario-Analysis-What-Ifs-Tips-amp-Techniques-For-Power-BI/ba-p/559653)。
在这个例子中,他们创建了一个 table 包含不同场景的值
5%
10%
15%
20%
等报告的用户可以 select 这些。但是如果我有分类值而不是直接值怎么办,例如 "Low, medium, high, very high" like:
category - trend rise
low 5%
medium 10%
high 15%
very high 20%
在我的另一个 table 我有:
Value - Item - trend_default
10 A 0.3
15 A 0.2
20 B 0.4
25 B 0.15
35 C 0.10
30 C 0.05
现在有了切片器,我想首先 select none,一个或所有项目,然后我想 select 我想应用哪个趋势上升 selected 项目(低、中、高或非常高)。如果我 select 只有项目 A,那么项目 B 和 C 在计算中使用它们的 trend_default 值。
原始答案
您可以创建具有多个列的断开连接 table,就像您的示例一样。
然后根据 table 的选定值创建一个度量。类似于:
Value + Trend Rise =
VAR Multiplier =
1 + IF (
HASONEVALUE ( 'Scenario - Trend'[Category] ),
VALUES ( 'Scenario - Trend'[Trend Rise] ),
0
)
RETURN
SUM ( 'Demo Fact Table'[Value] ) * Multiplier
请参阅 https://pwrbi.com/so_55281950/ 了解工作示例 PBIX 文件
更新,基于已编辑的问题:
首先,创建一个断开连接的维度 table 来选择(切片)您的项目:
Item Chooser =
SUMMARIZECOLUMNS (
'Demo Fact Table'[Item]
)
现在您可以使用测量:
Value + Trend =
SUMX (
'Demo Fact Table',
'Demo Fact Table'[Value] *
( 1 +
IF (
ISFILTERED ( 'Item Chooser'[Item] ) &&
CONTAINS (
'Item Chooser',
'Item Chooser'[Item],
'Demo Fact Table'[Item]
) &&
HASONEVALUE ( 'Scenario - Trend'[Category] ),
VALUES ( 'Scenario - Trend'[Trend Rise] ),
'Demo Fact Table'[trend_default]
)
)
)
如果您想 return 每个项目的默认趋势值,从相关项目 table。
,修改它应该很简单
我已经学习了多个关于场景分析和 power BI 中的假设分析的教程。这些例子对我来说很清楚,我有点理解它们是如何工作的。例如这个 (https://community.powerbi.com/t5/Community-Blog/Scenario-Analysis-What-Ifs-Tips-amp-Techniques-For-Power-BI/ba-p/559653)。
在这个例子中,他们创建了一个 table 包含不同场景的值
5% 10% 15% 20%
等报告的用户可以 select 这些。但是如果我有分类值而不是直接值怎么办,例如 "Low, medium, high, very high" like:
category - trend rise
low 5%
medium 10%
high 15%
very high 20%
在我的另一个 table 我有:
Value - Item - trend_default
10 A 0.3
15 A 0.2
20 B 0.4
25 B 0.15
35 C 0.10
30 C 0.05
现在有了切片器,我想首先 select none,一个或所有项目,然后我想 select 我想应用哪个趋势上升 selected 项目(低、中、高或非常高)。如果我 select 只有项目 A,那么项目 B 和 C 在计算中使用它们的 trend_default 值。
原始答案
您可以创建具有多个列的断开连接 table,就像您的示例一样。
然后根据 table 的选定值创建一个度量。类似于:
Value + Trend Rise =
VAR Multiplier =
1 + IF (
HASONEVALUE ( 'Scenario - Trend'[Category] ),
VALUES ( 'Scenario - Trend'[Trend Rise] ),
0
)
RETURN
SUM ( 'Demo Fact Table'[Value] ) * Multiplier
请参阅 https://pwrbi.com/so_55281950/ 了解工作示例 PBIX 文件
更新,基于已编辑的问题:
首先,创建一个断开连接的维度 table 来选择(切片)您的项目:
Item Chooser =
SUMMARIZECOLUMNS (
'Demo Fact Table'[Item]
)
现在您可以使用测量:
Value + Trend =
SUMX (
'Demo Fact Table',
'Demo Fact Table'[Value] *
( 1 +
IF (
ISFILTERED ( 'Item Chooser'[Item] ) &&
CONTAINS (
'Item Chooser',
'Item Chooser'[Item],
'Demo Fact Table'[Item]
) &&
HASONEVALUE ( 'Scenario - Trend'[Category] ),
VALUES ( 'Scenario - Trend'[Trend Rise] ),
'Demo Fact Table'[trend_default]
)
)
)
如果您想 return 每个项目的默认趋势值,从相关项目 table。
,修改它应该很简单