首页 > 解决方案 > 在 PowerBI (DAX) 中,如何仅对所有年份都存在的名称进行第一年和最后一年的总和

问题描述

需要 Power BI DAX 的帮助才能仅查找所有年份中存在的名称在第一年的总金额。

这是一个示例表:

姓名 年份 金额

2015 年100

乙 2015 50

C 2015 150

2016 200

2016 年 150

C 2016 150

2017 300

C 2017 300

2017 年 250

2018 300

C 2018 300

2018 年 300

E 2018 500

在上表中,A 和 C 存在于所有年份,因此我想要起始年份 A 和 C 的总金额

结果:

2015

250

我如何实现这一目标?关键仅适用于在年份范围内始终存在的那些名称。

非常感谢您提前提供的帮助!

问候, 纳雷什

标签: countsumpowerbidaxfind-occurrences

解决方案


请尝试以下方法。它遍历当前上下文中的任何 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)
 )
)



推荐阅读