自定义列以查找下一个下一个最小值

时间:2019-07-03 16:26:44

标签: powerbi dax

我有两个自定义列,第一个正在工作,它会找到最小的文本值,下一个自定义列,我正在努力为其编写正确的代码,我需要找到第一个未找到的下一个最小文本值自定义列

第一列(工作)的代码

ATTRIBUTE_IDENTIFIER_01 =
IF (
    'Customer Attributes'[ATTRIBUTE_COUNTBY_TID_Identifier] > 0,
    MIN ( 'Customer Attributes'[Attribute] ),
    BLANK ()
)

第二列的代码(无法正常工作需要帮助)

ATTRIBUTE_IDENTIFIER_02 =
IF (
    'Customer Attributes'[ATTRIBUTE_COUNTBY_TID_Identifier] > 0
        AND ATTRIBUTE_IDENTIFIER_01 <> BLANK (),
    MIN ( 'Customer Attributes'[Attribute] )
        WHERE (
            MIN ( 'Customer Attributes'[Attribute] )
                <> 'Customer Attributes'[ATTRIBUTE_IDENTIFIER_01] )
        ),
    BLANK ()
)

我将在其中的ATTRIBUTE_IDENTIFIER列中创建10列,在每一列中,我都需要确保找到下一个最小值。如果可以采用简化的方式来获得所需的结果,我愿意提出建议。

1 个答案:

答案 0 :(得分:1)

我建议对Attribute值进行排名,然后拉出您想要的排名:

ATTRIBUTE_IDENTIFIER_02 =
VAR Attributes =
    CALCULATETABLE (
        VALUES ( 'Customer Attributes'[Attribute] ),
        ALL ( 'Customer Attributes' ),
        'Customer Attributes'[ATTRIBUTE_COUNTBY_TID_Identifier] > 0
    )
VAR Ranked =
    ADDCOLUMNS (
        Attributes,
        "Rank", RANKX ( Attributes, [Attribute],, ASC, DENSE )
    )
RETURN
    MAXX ( FILTER ( Ranked, [Rank] = 2 ), [Attribute] )

第一个变量Attributes只是满足条件'Customer Attributes'[Attribute]的{​​{1}}值的列表。

我们使用该列表和一列以字母顺序对其进行排名,以获得'CustomerAttributes'[ATTRIBUTE_COUNTBY_TID_Identifier] > 0

然后从Ranked中获得最大的Attribute值(唯一),其中排名是您想要的。