在具有多个筛选器的 DAX 中使用 SUMX 函数。适用于字符串常量但不适用于变量
Using the SUMX function in DAX with multiple filters. Works with string constant but not with variable
我在 table Power BI Desktop 中有以下 DAX 公式:
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = DatePQ[WH]
),
DatePQ[QTY]
)
如你所见,里面有两个过滤器。实际上,该函数似乎忽略了第二个过滤器(对于 DatePQ[WH])。但是,如果我把它写成等于一个字符串常量:
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = "Adams"
),
DatePQ[QTY]
)
通过使用常量“Adams”,该函数可以正常工作。但是,此值需要是一个变量。例如,如果在 Excel 中,使用 SUMIFS,可以写成:
SUMIFS(QTY, DatePQ, "="&DatePQ, WH, "="&WH)
其中 QTY、DatePQ 和 WH 是列的名称。
感谢您一如既往的帮助。
比较 DatePQ[WH] = DatePQ[WH]
始终为真,因为您是在将值与其自身进行比较。
看起来您正确地为 [DatePQ]
使用了 EARLIER 函数,但忘记为 [WH]
.
做同样的事情
尝试对两者都使用 EARLIER 或改用变量。
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = EARLIER ( DatePQ[WH] )
),
DatePQ[QTY]
)
或
SUMX (
VAR CurrDate = DatePQ[DatePQ].[Date]
VAR CurrWH = DatePQ[WH]
RETURN
FILTER ( DatePQ, DatePQ[DatePQ].[Date] <= CurrDate && DatePQ[WH] = CurrWH ),
DatePQ[QTY]
)
我在 table Power BI Desktop 中有以下 DAX 公式:
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = DatePQ[WH]
),
DatePQ[QTY]
)
如你所见,里面有两个过滤器。实际上,该函数似乎忽略了第二个过滤器(对于 DatePQ[WH])。但是,如果我把它写成等于一个字符串常量:
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = "Adams"
),
DatePQ[QTY]
)
通过使用常量“Adams”,该函数可以正常工作。但是,此值需要是一个变量。例如,如果在 Excel 中,使用 SUMIFS,可以写成:
SUMIFS(QTY, DatePQ, "="&DatePQ, WH, "="&WH)
其中 QTY、DatePQ 和 WH 是列的名称。
感谢您一如既往的帮助。
比较 DatePQ[WH] = DatePQ[WH]
始终为真,因为您是在将值与其自身进行比较。
看起来您正确地为 [DatePQ]
使用了 EARLIER 函数,但忘记为 [WH]
.
尝试对两者都使用 EARLIER 或改用变量。
SUMX (
FILTER (
DatePQ,
DatePQ[DatePQ].[Date] <= EARLIER ( DatePQ[DatePQ].[Date] )
&& DatePQ[WH] = EARLIER ( DatePQ[WH] )
),
DatePQ[QTY]
)
或
SUMX (
VAR CurrDate = DatePQ[DatePQ].[Date]
VAR CurrWH = DatePQ[WH]
RETURN
FILTER ( DatePQ, DatePQ[DatePQ].[Date] <= CurrDate && DatePQ[WH] = CurrWH ),
DatePQ[QTY]
)