我是PowerPivot / DAX的新手,正在分析一个有5列的名为BudgetTable的表。当“项目”和“属性”组合的预算金额更改时,用户将向表中添加新行以及新的记录日期。例如,在下表中,2/1 / 19、3 / 1 / 19、4 / 1/19和5/1/19记录是先前项目和属性组合的更新。
ID Item Attribute Budget Amount Record Date
1 A AA $1000 1/1/19
2 A AA $2000 2/1/19
3 A BB $3000 1/1/19
4 A BB $4000 3/1/19
5 B AA $5000 1/1/19
6 B AA $6000 5/1/19
7 B BB $7000 1/1/19
8 B BB $8000 4/1/19
我想定义一种度量(预算金额之和),该度量使用每个项目和属性组合的最新日期汇总预算金额。
我尝试过:
Sum of Budget Amount:=CALCULATE([BudgetTable], FILTER(BudgetTable, BudgetTable[Record Date]=Max(BudgetTable[Record Date])
但是,这会产生一个如下所示的数据透视表:
Item Attribute Sum of Budget Amount
A $4000
AA $2000
BB $4000
B $6000
AA $6000
BB $8000
预期的数据透视表如下:
Item Attribute Sum of Budget Amount
A $6000
AA $2000
BB $4000
B $14000
AA $6000
BB $8000
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
1-从事实表创建维度:
Calendar = CALENDARAUTO()
ITEM = VALUES(Budget[Item])
ATTRIBUTE = VALUES(Budget[Attribute])
2-创建模型以设置关系:
3-创建可以回答问题的方法:
Total Budget =
SUMX(
'ITEM';
SUMX(
'ATTRIBUTE';
CALCULATE(
Sum(Budget[Budget Amount]);
LASTNONBLANK(
'Calendar'[Date];
COUNTROWS(RELATEDTABLE(Budget))
)
)
)
)
4-结果
答案 1 :(得分:0)
我将执行以下操作:
Measure =
// SUMX iterates the table in its arg1, evaluating the expression in arg2
// for each row of the table.
SUMX (
// Output of GROUPBY is a two-column table of unique combinations
GROUPBY (
'BudgetTable',
'BudgetTable'[Item],
'BudgetTable'[Attribute]
),
VAR MaxDate = CALCULATE ( MAX ( 'BudgetTable'[Record Date] ) ) // max date for current row
RETURN
CALCULATE (
'SUM ( 'BudgetTable'[Amount] ),
'BudgetTable'[Record Date] = MaxDate
)
)
根据@JBfreefolks的响应来对模型进行尺寸标注是一个好主意,但是对于此特定度量而言则不必要。