我正在尝试了解使用 DAX 向表添加列的最佳方法,该 DAX 捕获 a.) 过去 31 天和 b.) 根据唯一标识符过滤的销售值总和。
在 Excel 中,我会使用 SUMIFS 函数执行以下操作
K 列是日期范围 A 列是唯一标识符 X 列是要求和的值
=IFERROR((SUMIFS(X:X,A:A,A493,K:K,">="&K493-30,K:K,"<="&K493))," ")
希望你能帮助我了解我应该学习的最有效的方程!
我已经尝试使用 Fitlers 进行 Sumx 和Calculate,但无法使其正常工作。
这是一个例子:
我有一个
User
表,其中包含用户 ID 的唯一值,以及一个 Sales
表,其中包含销售的用户 ID、销售日期和销售价值。
我们想要找到每个用户在过去 31 天内的总销售额。
在
User
表上创建计算列:
Last 31 Day Sales (Calculated Column) =
VAR thisUser = [User ID] //sets this value outside of Calculate context
RETURN CALCULATE(SUM(Sales[Value]),
FILTER(Sales,
Sales[User ID] = thisUser &&
Sales[Sale Date] <= TODAY() &&
Sales[Sale Date] >= TODAY() - 31
)
)
注意:此答案创建于 08/29/2024,这是
Today()
函数的结果。
此计算列将按用户 ID 和过去 31 天内的销售额过滤
Sales
表。然后它会将值相加并返回。
以下是此示例的输入和输出表:
输出
User
表:
用户ID | 姓名 | 过去 31 天销售额(计算列) |
---|---|---|
1 | 约翰·史密斯 | 20 |
2 | 简·多伊 | 14 |
3 | 鲍勃鲍勃 | 10 |
Sales
数据表:
销售ID | 发售日期 | 用户ID | 价值 |
---|---|---|---|
4 | 2024年7月1日 | 1 | 3 |
1 | 2024/08/20 | 1 | 10 |
7 | 2024/08/20 | 1 | 6 |
10 | 2024/08/20 | 1 | 4 |
5 | 2024年7月1日 | 2 | 5 |
2 | 2024/08/20 | 2 | 5 |
8 | 2024/08/20 | 2 | 9 |
3 | 2024/08/20 | 3 | 2 |
6 | 2024/08/20 | 3 | 8 |
9 | 2024年7月1日 | 3 | 7 |