Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 自定义列以查找次优最小值_Powerbi_Dax - Fatal编程技术网

Powerbi 自定义列以查找次优最小值

Powerbi 自定义列以查找次优最小值,powerbi,dax,Powerbi,Dax,我有两个自定义列,第一个正在工作,它找到了最小文本值,下一个自定义列我正在努力为其编写正确的代码,我需要找到在第一个自定义列中找不到的下一个最小文本值 第1列代码(工作) 第二列代码(不工作需要帮助) 属性\u标识符\u 02= 如果( “客户属性”[ATTRIBUTE\u COUNTBY\u TID\u Identifier]>0 属性_标识符_01 BLANK(), 最小值('客户属性'[属性]) 在哪里( 最小值('客户属性'[属性]) “客户属性”[ATTRIBUTE\u IDENTIF

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

第1列代码(工作) 第二列代码(不工作需要帮助)
属性\u标识符\u 02=
如果(
“客户属性”[ATTRIBUTE\u COUNTBY\u TID\u Identifier]>0
属性_标识符_01 BLANK(),
最小值('客户属性'[属性])
在哪里(
最小值('客户属性'[属性])
“客户属性”[ATTRIBUTE\u IDENTIFIER\u 01])
),
空白()
)

我将创建10个
ATTRIBUTE\u IDENTIFIER
列,在每个列中,我需要确保找到下一个最小值。如果有一种简单的方法可以实现我想要的结果,我愿意接受建议。

我建议对
属性的值进行排序,然后根据需要进行排序:

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
只是满足条件
'CustomerAttributes'[Attribute]
值的列表
'CustomerAttributes'[Attribute\u COUNTBY\u TID\u Identifier]>0

我们使用该列表和一列按字母顺序对其进行排序,以获得
排名

然后从
排名
中获取最大(仅)
属性
值,其中排名是您想要的

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_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] )