我有这样的数据,
App_Num Days Price
A1 10 100
A1 11 150
A2 11 200
A3 12 250
A3 12 300
A4 20 350
A4 21 400
现在,有一个参数,用户使用它来调整值并查看。总价值(最小和最大范围)例如,如果用户选择0-280,预计会列出A1(100 + 150 = 250小于280)和A2(200小于280)。
我使用了这样的DAX并建立了这样的表,
Apps_in_scope =
Var min_amount = Min('Total Value'[Total Value])
Var max_amount = Max('Total Value'[Total Value])
var required_app_num = SELECTEDVALUE(Table1[App_Num])
Var required_amount = CALCULATE(sum(Table1[Price]),FILTER(Table1,Table1[App_Num] = required_app_num))
var in_scope = if(And(required_amount <= max_amount, required_amount >= min_amount),1,0)
return in_scope
我可以制作出这样的视觉效果,
App_Num Apps_in_scope
A1 1
A2 1
A3 0
A4 0
现在,我想创建2个measure
- 它将列出范围内的事务总数(其中2为A1, 1为A2输出到卡上的3)。
- 它会给我卡片上A1和A2的总和(100+150+200 = 450)。
我该怎么做呢?请帮我一下。
你可以几乎完全按照你上一个问题的方法来处理这个问题。
使用更优化的方法:
CountInScope =
VAR apps =
ADDCOLUMNS (
SUMMARIZE (
Table1,
Table1[App_Num],
"@Rows", COUNT ( Table1[Price] )
),
"@InScope", [Apps_in_scope]
)
RETURN
SUMX ( FILTER ( apps, [@InScpoe] = 1 ), [@Rows] )
和
SumInScope =
VAR apps =
ADDCOLUMNS (
SUMMARIZE (
Table1,
Table1[App_Num],
"@Price", SUM ( Table1[Price] )
),
"@InScope", [Apps_in_scope]
)
RETURN
SUMX ( FILTER ( apps, [@InScpoe] = 1 ), [@Price] )