如果主要 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] )