在 PowerBI (DAX) 中,如何只计算所有年份中出现的名称的第一年和最后一年的总和
In PowerBI (DAX) how to total sum in the first and last year for only names that are present in all years
需要 Power BI DAX 方面的帮助才能找到所有年份中都存在的名称在第一年的总金额。
这是一个示例 table:
姓名年份金额
A 2015 100
B 2015 50
C 2015 年 150
A 2016 200
B 2016 150
C 2016 150
A 2017 300
C 2017 300
2017 年 250
A 2018 300
C 2018 300
D 2018 300
2018 年 500
在上面table所有年份都存在A和C,因此我想要起始年份A和C的总金额
结果:
2015
250
我该如何实现?密钥仅适用于那些在年份范围内始终存在的名称。
非常感谢您的提前帮助!
此致,
纳雷什
请尝试以下操作。它遍历当前上下文中的任何 Name 值,然后计算该 Name 的年数,如果它与总年数匹配,则计算该 Name 的总和。
SUMX(
VALUES(Tbl[Name]),
IF(
CALCULATE(DISTINCTCOUNT(Tbl[Year]), ALLEXCEPT(Tbl, Tbl[Name]))
= CALCULATE(DISTINCTCOUNT(Tbl[Year]), ALL(Tbl)),
CALCULATE(SUM(Tbl[Amount]))
)
)
//tweaking your attempt by including ALLSELECTED() and not including Year in ALLEXCEPT
VAR FromYear = CALCULATE(MIN('Tbl'[Year]),ALLSELECTED())
VAR ToYear = CALCULATE(MAX('Tbl'[Year]), ALLSELECTED())
VAR CountYears = ToYear - FromYear + 1
RETURN
SUMX (
VALUES ( 'Tbl'[Name] ),
IF (
CALCULATE ( DISTINCTCOUNT ( 'Tbl'[Year] ), ALLEXCEPT ( 'Tbl', 'Tbl'[Name], 'Tbl'[Category] )) = CountYears,
CALCULATE(SUM('Tbl'[Amount]) , 'Tbl'[Year]=FromYear)
)
)
需要 Power BI DAX 方面的帮助才能找到所有年份中都存在的名称在第一年的总金额。
这是一个示例 table:
姓名年份金额
A 2015 100
B 2015 50
C 2015 年 150
A 2016 200
B 2016 150
C 2016 150
A 2017 300
C 2017 300
2017 年 250
A 2018 300
C 2018 300
D 2018 300
2018 年 500
在上面table所有年份都存在A和C,因此我想要起始年份A和C的总金额
结果:
2015
250
我该如何实现?密钥仅适用于那些在年份范围内始终存在的名称。
非常感谢您的提前帮助!
此致, 纳雷什
请尝试以下操作。它遍历当前上下文中的任何 Name 值,然后计算该 Name 的年数,如果它与总年数匹配,则计算该 Name 的总和。
SUMX(
VALUES(Tbl[Name]),
IF(
CALCULATE(DISTINCTCOUNT(Tbl[Year]), ALLEXCEPT(Tbl, Tbl[Name]))
= CALCULATE(DISTINCTCOUNT(Tbl[Year]), ALL(Tbl)),
CALCULATE(SUM(Tbl[Amount]))
)
)
//tweaking your attempt by including ALLSELECTED() and not including Year in ALLEXCEPT
VAR FromYear = CALCULATE(MIN('Tbl'[Year]),ALLSELECTED())
VAR ToYear = CALCULATE(MAX('Tbl'[Year]), ALLSELECTED())
VAR CountYears = ToYear - FromYear + 1
RETURN
SUMX (
VALUES ( 'Tbl'[Name] ),
IF (
CALCULATE ( DISTINCTCOUNT ( 'Tbl'[Year] ), ALLEXCEPT ( 'Tbl', 'Tbl'[Name], 'Tbl'[Category] )) = CountYears,
CALCULATE(SUM('Tbl'[Amount]) , 'Tbl'[Year]=FromYear)
)
)