Power BI:简单加法给出错误结果
Power BI: Simple addition give wrong result
我正在计算给定时间范围内每月唯一 ID 的数量,我遇到了两件奇怪的事情:
1.寻找相同的东西但使用两种不同的方法(每个月的值和逐月的累积值)给出不同的值。请参见下面的屏幕截图。
2. 当您在第一列(每月值)中手动添加值时,结果为 868,当 PowerBI 对其求和时 - 它是 864 o_O
有什么想法吗?
DAX 公式如下:
Y-1 Kandydaci = CALCULATE(
distinctcount(getDataForTeb[ID_DANE_OSOBOWE]);
DATESBETWEEN(
getDataForTeb[Złożenie podania];
DATE(YEAR(now())-1;4;1);
IF(DATE(YEAR(NOW())-1;MONTH(NOW());DAY(NOW()))<=DATE(YEAR(NOW())-1;11;30);
DATE(YEAR(NOW())-1;MONTH(NOW());DAY(NOW()));DATE(YEAR(NOW())-1;11;30)));
ISBLANK(getDataForTeb[REZYGNACJA_DATA]))
Y-1 Kandydaci cumulative = CALCULATE(
DISTINCTCOUNT(getDataForTeb[ID_DANE_OSOBOWE]);
FILTER(
ALL (getDataForTeb);
AND (
getDataForTeb[Złożenie podania] <= MAX(getDataForTeb[Złożenie podania])-364;
AND (
getDataForTeb[Złożenie podania] <= DATE(YEAR(NOW())-1; 11; 30);
getDataForTeb[Złożenie podania] >= DATE(YEAR(NOW())-1; 4; 1)
)
)
);
ISBLANK(getDataForTeb[REZYGNACJA_DATA])
)
刚才的另一个有趣的例子:不同的文件,不涉及 DAX:
是的!这就是DISTINCTCOUNT()
的神奇之处。它计算了每个月 [ID_DANE_OSOBOWE]
列的不同值的数量,但是当对所有月份评估该度量时,它不会重复计算出现在超过一个月的值。
简化版:
| ID | Month |
+----+-------+
| 1 | March |
| 1 | April |
当您每个月都有一个度量值 My Measure = DISTINCTCOUNT(tbl[ID])
时,该值将为 1,但是当您对所有月份进行不同的计数时,该值仍将为 1,因为只有一个不同的值。
一般来说,当总计(自动计算)与部分结果的总和不同时,如果您得到奇怪的结果,这可能是上面 mendosi 解释的情况(关于 DISTINCTCOUNT),因为为每一行切换过滤器上下文计算,或者因为某些计算将 BLANK 值计为 1 - 在 2019 年 3 月的 PowerBI 更新中引入了一个新的 DAX 函数:DistinctCountNoBlank 消除了对 BLANK 值的计数。
我正在计算给定时间范围内每月唯一 ID 的数量,我遇到了两件奇怪的事情: 1.寻找相同的东西但使用两种不同的方法(每个月的值和逐月的累积值)给出不同的值。请参见下面的屏幕截图。 2. 当您在第一列(每月值)中手动添加值时,结果为 868,当 PowerBI 对其求和时 - 它是 864 o_O
有什么想法吗?
DAX 公式如下:
Y-1 Kandydaci = CALCULATE(
distinctcount(getDataForTeb[ID_DANE_OSOBOWE]);
DATESBETWEEN(
getDataForTeb[Złożenie podania];
DATE(YEAR(now())-1;4;1);
IF(DATE(YEAR(NOW())-1;MONTH(NOW());DAY(NOW()))<=DATE(YEAR(NOW())-1;11;30);
DATE(YEAR(NOW())-1;MONTH(NOW());DAY(NOW()));DATE(YEAR(NOW())-1;11;30)));
ISBLANK(getDataForTeb[REZYGNACJA_DATA]))
Y-1 Kandydaci cumulative = CALCULATE(
DISTINCTCOUNT(getDataForTeb[ID_DANE_OSOBOWE]);
FILTER(
ALL (getDataForTeb);
AND (
getDataForTeb[Złożenie podania] <= MAX(getDataForTeb[Złożenie podania])-364;
AND (
getDataForTeb[Złożenie podania] <= DATE(YEAR(NOW())-1; 11; 30);
getDataForTeb[Złożenie podania] >= DATE(YEAR(NOW())-1; 4; 1)
)
)
);
ISBLANK(getDataForTeb[REZYGNACJA_DATA])
)
刚才的另一个有趣的例子:不同的文件,不涉及 DAX:
是的!这就是DISTINCTCOUNT()
的神奇之处。它计算了每个月 [ID_DANE_OSOBOWE]
列的不同值的数量,但是当对所有月份评估该度量时,它不会重复计算出现在超过一个月的值。
简化版:
| ID | Month |
+----+-------+
| 1 | March |
| 1 | April |
当您每个月都有一个度量值 My Measure = DISTINCTCOUNT(tbl[ID])
时,该值将为 1,但是当您对所有月份进行不同的计数时,该值仍将为 1,因为只有一个不同的值。
一般来说,当总计(自动计算)与部分结果的总和不同时,如果您得到奇怪的结果,这可能是上面 mendosi 解释的情况(关于 DISTINCTCOUNT),因为为每一行切换过滤器上下文计算,或者因为某些计算将 BLANK 值计为 1 - 在 2019 年 3 月的 PowerBI 更新中引入了一个新的 DAX 函数:DistinctCountNoBlank 消除了对 BLANK 值的计数。