我正在构建一个包括实际成本和预算的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美元。
我在水晶报告里就知道了。下面是我写的公式:
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方法,但是我没有什么可做的。
发布于 2019-08-14 15:02:36
DAX不太会循环。它在过滤过的列上进行聚合。
如果没有Month列,则创建计算列。
TableName[Month] = MONTH ( TableName[Date] )一旦有了这个功能,就可以用迭代器函数来计算几个星期了。
Weeks =
SUMX (
VALUES ( TableName[Month] ),
IF ( TableName[Month] IN { 2, 5, 8, 11 }, 5, 4 )
)VALUES函数是筛选器上下文中唯一值的列表,所以如果您选择了Jan,那么它就是{1,2,3,4}。然后SUMX在这四个值上迭代(“循环”),并根据IF函数中指定的条件添加5或4。
https://stackoverflow.com/questions/57485221
复制相似问题