首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DAX循环变量

DAX循环变量
EN

Stack Overflow用户
提问于 2019-08-13 20:57:47
回答 1查看 7.8K关注 0票数 0

我正在构建一个包括实际成本和预算的Power仪表板。总结成本并不是个问题。预算数额作为每周数额输入一个表格,例如1 000美元。我们使用一个自定义会计日历,它规定每个月的周数。每个季度的第二个月为5周,而所有其他月份为4周。1月是4周,2月是5周,3月是4周,4月是4周,5月是5周,6月是4周,7月是4周,8月是5周,9月是4周,10周是4周,11月是5周,12月是4周。

我需要一个循环变量在DAX中,它将简单地计算周数,根据月切割机选择的月份。然后我可以把周数乘以每周预算金额。

这里有一个实际的例子:如果我选择一月,二月,三月,四月,那么周数应该是17周。预算金额应该是17,000美元。

我在水晶报告里就知道了。下面是我写的公式:

代码语言:javascript
复制
local datetimevar startdate:= {?BegMonth};
local numbervar numofWeeks;
While startdate <= {?EndMonth}
Do(
if month(startdate) in [2,5,8,11] then
numofWeeks := numofWeeks + 5
else
numofWeeks := numofWeeks + 4;
startdate := DATEADD("m",1,startdate);
);
numofWeeks

我已经尝试过几种DAX方法,但是我没有什么可做的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 15:02:36

DAX不太会循环。它在过滤过的列上进行聚合。

如果没有Month列,则创建计算列。

代码语言:javascript
复制
TableName[Month] = MONTH ( TableName[Date] )

一旦有了这个功能,就可以用迭代器函数来计算几个星期了。

代码语言:javascript
复制
Weeks =
SUMX (
    VALUES ( TableName[Month] ),
    IF ( TableName[Month] IN { 2, 5, 8, 11 }, 5, 4 )
)

VALUES函数是筛选器上下文中唯一值的列表,所以如果您选择了Jan,那么它就是{1,2,3,4}。然后SUMX在这四个值上迭代(“循环”),并根据IF函数中指定的条件添加54

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57485221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档