Excel LET LAMBDA 函数返回类别百分位数排名

问题描述 投票:0回答:1

我正在使用这个数据集:

id 瓦尔
u1 1
u2 2
g3 g 3
g4 g 4
g5 g 5
i6 6
i7 7
i8 8
i9 9
i10 10

我需要我的 IDS 类别的百分位数排名。我需要将其放入 LET 函数中,因为我想将其用作更大公式的一部分。

这是我测试过的:
enter image description here

公式:

=LET(ids,E2:E4,cats,XLOOKUP(ids,$A$2:$A$11,$B$2:$B$11,""),vals,XLOOKUP(ids,$A$2:$A$11,$C$2:$C$11,""),output,BYROW(cats,LAMBDA(x,PERCENTRANK(FILTER(vals,cats=x),val))),output)

任何 LAMBDA 不起作用的想法将不胜感激。

excel lambda let
1个回答
0
投票

使用
MAP

进行两列匹配
  • 在这种情况下,使用
    BYROW
    会比使用
    MAP
    复杂得多。
=LET(sData,A2:C11,iCol,1,cCol,2,vCol,3,dil,E2:E4,
    si,CHOOSECOLS(sData,iCol),
    sc,CHOOSECOLS(sData,cCol),
    sv,CHOOSECOLS(sData,vCol),
    cats,XLOOKUP(dil,si,sc,""),
    vals,XLOOKUP(dil,si,sv,""),
    r,MAP(cats,vals,LAMBDA(c,v,
        PERCENTRANK(FILTER(sv,sc=c),v))),
    r)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.