0

我现在只在 Power BI 中工作了一个多星期,现在我遇到了我的第一个问题..

我需要一种方法来执行以下 Excel 公式中的相同操作。

在 Power Bi 中,我有一张桌子。我想在“B”列中计算唯一的“拆分订单”

但是我只想数一次。。所以第一次找到时,它被计为 1 下一次我看到它被计为 2 或 3 或 4 或更多..

所以公式说“如果计数不止一次,则返回“X”,否则返回“1”并且IF语句然后说如果高于1,则返回0否则返回1

我有成千上万行,我需要将每一行标识为唯一或不唯一。但我似乎无法找到正确的 DAX 公式组合来做到这一点。我看过COUNTDISTINCT, CALCULATE, FILTERS, COUNTROWS,还有更多。它们可能是正确使用的,但我还没有找到正确的语法。

我尝试过的许多 DAX 公式,要么只返回“1”,要么只返回“0”,或者它们返回唯一订单的总量。

Excel公式:

Row 2 = IF(B2="";0;IF(COUNTIF(B$1:$B2;B2)>1;0;1))
Row22 = IF(B22="";0;IF(COUNTIF(B$1:$B22;B22)>1;0;1))
Row32 = IF(B32="";0;IF(COUNTIF(B$1:$B32;B32)>1;0;1))
4

1 回答 1

0

您正在寻找的是计算列而不是度量。您还需要确定 [Split Order] 列的读取顺序。

您可以通过在 Power Query(添加列选项卡)中添加索引列来执行此操作。之后,添加这个计算列:

IsFirstOccurence =
IF (
    COUNTROWS (
        FILTER (
            'table',
            'table'[Split Order] = EARLIER ( 'table'[Split Order] )
                && 'table'[Index] <= EARLIER ( 'table'[Index] )
        )
    ) = 1,
    1,
    0
)

结果如下所示:

在此处输入图像描述

于 2018-11-30T10:13:37.873 回答