我有两个自定义列,第一个正在工作,它会找到最小的文本值,下一个自定义列,我正在努力为其编写正确的代码,我需要找到第一个未找到的下一个最小文本值自定义列
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列,在每一列中,我都需要确保找到下一个最小值。如果可以采用简化的方式来获得所需的结果,我愿意提出建议。
答案 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
值(唯一),其中排名是您想要的。