count - 在 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
我如何实现这一目标?关键仅适用于在年份范围内始终存在的那些名称。
非常感谢您提前提供的帮助!
问候, 纳雷什
解决方案
请尝试以下方法。它遍历当前上下文中的任何 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)
)
)
推荐阅读
- redis - 使用反应式 Redis 模板时,Spring Flux 阶段在不同的线程上执行
- android - 如何在android中刷新Mediastore
- c# - 未处理的异常。System.FormatException:输入字符串的格式不正确
- python - 如何使用 Python 和图像处理技术正确找到白色圆圈的坐标?
- git - 如何将 GitLab 构建状态推送到 GitHub 网站存储库?
- postgresql - 一列的历史聚合,直到另一列中每一行的指定时间
- scala - Spark .load() 是否将所有数据放入 DF,然后执行 .select("fields")?
- sql - 在 Oracle SQL Developer 中识别具有特定内容的表
- php - 在轮询选项循环中对答案数组进行排序
- telerik - 您如何以编程方式单击 RadGridView 中的“字形”行?