如果主要 ID 与相关 ID 相同,则聚合值
Aggregate values if primary ID is same as related ID
我有两个 table,我的主要 table 具有如下 ID 和值:
Item
ID
Values
RolledUpValues
100
1
25
25
100
2
50
50
100
3
75
150 (25+50+75)
100
4
100
100
101
2
40
40
101
3
80
120 (40+80)
在我的第二个 table 中,这些 ID 具有相应的“主要”ID,在 PowerPivot 中,它们在 ID 字段上相关。
ID
MainID
1
3
2
3
3
3
4
4
5
6
6
6
有没有办法将值聚合到 Item + Main ID,但前提是主键中的 ID 与 Main ID 相同? (例如,对于项目 100,ID 1、2 和 3 具有相应的主 ID 3。因此显示 ID 1 和 2 的非聚合值,但将 ID 3 的 1、2 和 3 的值相加,所有累计到第 100 项)
ID
Values
RolledUpValues
1
25
25
2
50
50
3
75
150 (25+50+75)
4
100
100
5
40
40
6
80
120 (40+80)
假设您的第一个 table 被命名为 Table
,第二个 table 被命名为 Table1
,这个计算列应该在 Table
中工作。
此外,您应该在 ID
.
上有一个活跃的关系
RolledUpValues =
VAR SelectedMainId =
RELATED ( Table1[MainID] )
VAR SelectedId =
SUMMARIZE ( FILTER ( Table1, [MainID] = SelectedMainId ), [ID] )
VAR Result =
SUMX ( FILTER ( 'Table', [ID] IN SelectedId ), [Values] )
RETURN
IF ( [ID] = SelectedMainId, Result, [Values] )
如果关系是Table1[ID] <-- * : 1 -- Table2[ID]
,那么可以写
RolledUpValues =
VAR RelatedID =
RELATED ( Table2[MainID] )
VAR RolledUp =
SUMX (
FILTER (
Table1,
RELATED ( Table2[MainID] ) = RelatedID
&& Table1[Item] = EARLIER ( Table1[Item] )
),
Table1[Values]
)
RETURN
IF ( Table1[ID] = RelatedID, RolledUp, Table1[Values] )
我有两个 table,我的主要 table 具有如下 ID 和值:
Item | ID | Values | RolledUpValues |
---|---|---|---|
100 | 1 | 25 | 25 |
100 | 2 | 50 | 50 |
100 | 3 | 75 | 150 (25+50+75) |
100 | 4 | 100 | 100 |
101 | 2 | 40 | 40 |
101 | 3 | 80 | 120 (40+80) |
在我的第二个 table 中,这些 ID 具有相应的“主要”ID,在 PowerPivot 中,它们在 ID 字段上相关。
ID | MainID |
---|---|
1 | 3 |
2 | 3 |
3 | 3 |
4 | 4 |
5 | 6 |
6 | 6 |
有没有办法将值聚合到 Item + Main ID,但前提是主键中的 ID 与 Main ID 相同? (例如,对于项目 100,ID 1、2 和 3 具有相应的主 ID 3。因此显示 ID 1 和 2 的非聚合值,但将 ID 3 的 1、2 和 3 的值相加,所有累计到第 100 项)
ID | Values | RolledUpValues |
---|---|---|
1 | 25 | 25 |
2 | 50 | 50 |
3 | 75 | 150 (25+50+75) |
4 | 100 | 100 |
5 | 40 | 40 |
6 | 80 | 120 (40+80) |
假设您的第一个 table 被命名为 Table
,第二个 table 被命名为 Table1
,这个计算列应该在 Table
中工作。
此外,您应该在 ID
.
RolledUpValues =
VAR SelectedMainId =
RELATED ( Table1[MainID] )
VAR SelectedId =
SUMMARIZE ( FILTER ( Table1, [MainID] = SelectedMainId ), [ID] )
VAR Result =
SUMX ( FILTER ( 'Table', [ID] IN SelectedId ), [Values] )
RETURN
IF ( [ID] = SelectedMainId, Result, [Values] )
如果关系是Table1[ID] <-- * : 1 -- Table2[ID]
,那么可以写
RolledUpValues =
VAR RelatedID =
RELATED ( Table2[MainID] )
VAR RolledUp =
SUMX (
FILTER (
Table1,
RELATED ( Table2[MainID] ) = RelatedID
&& Table1[Item] = EARLIER ( Table1[Item] )
),
Table1[Values]
)
RETURN
IF ( Table1[ID] = RelatedID, RolledUp, Table1[Values] )