我们有两张桌子
表A =
Dates = CALENDAR(date(2023,1,1),TODAY())
表 B =
从数据表加入日期,一对多。
DAX 以获得投资回报率
ROIZ =
VAR V1 = CALCULATE(SUM(Data[Spent]),ALLSELECTED(Dates[Date]),ALLEXCEPT(Data,Data[Type]))
VAR V2 = CALCULATE(SUM(Data[Returns]),ALLSELECTED(Dates[Date]),ALLEXCEPT(Data,Data[Type]))
return divide(V2,V1,0)
当我选择一月时,我得到以下信息:
错了,pear 应该显示 8 而不是 18,Kiwi 不见了。
当我选择二月时,我得到以下信息:
这是错误的,梨应该什么都不显示或 0
或
二月
您将通过使用获得二月产出
roi = divide(sum(data[spent]),sum(data[return]))
但它不会为您提供一月份的输出,其中需要包括 Kiwi 行项目
您的
ALLEXCEPT
子句正在删除所有过滤器,包括日期,但应用于 Data[Type] 列的过滤器除外。尝试使用 KEEPFILTERS
并删除您的 ALLSELECTED(Dates[Date])
子句:
ROIZ =
VAR V1 =
CALCULATE (
SUM ( Data[Spent] ),
KEEPFILTERS ( ALLEXCEPT ( Data, Data[Type] ) )
)
VAR V2 =
CALCULATE (
SUM ( Data[Returns] ),
KEEPFILTERS ( ALLEXCEPT ( Data, Data[Type] ) )
)
RETURN
DIVIDE ( V2, V1, 0 )