根据 Excel 中另一列中的值的总和对列中的类别进行排名

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

对于给定的数据,想要找到 V2 中与 V1 中值之和最高的前 2 个类别。

所需输出:

为了获得 A、B 和 C 列中所需的输出,定义了以下公式。然而,这存在参考错误。

=TAKE(SORT(HSTACK(INDEX(Sheet1!B2:B12,,MATCH(E1,Sheet1!A1:B1,0)),CHOOSECOLS(Sheet1!A2:B12,1)),1,-1),2)
excel sorting excel-formula hstack
1个回答
1
投票

尝试以下公式:


• 单元格中使用的公式 D2

=LET(
     a, UNIQUE(A2:A12),
     b, TAKE(SORT(HSTACK(a,SUMIFS(B2:B12,A2:A12,a)),2,-1),2),
     VSTACK({"Rank","V1","V2"},HSTACK({1;2},b)))

你也可以使用 MMULT() 代替 SUMIFS()MMULT()SUMIFS 占用更多资源,所以后者会更简单、更高效,仍然与 共享方法MMULT()


• 单元格中使用的公式 D2

=LET(
     a, UNIQUE(A2:A12),
     b, TAKE(SORT(HSTACK(a,MMULT(N(TOROW(A2:A12)=a),B2:B12)),2,-1),2),
     VSTACK({"Rank","V1","V2"},HSTACK({1;2},b)))

或者,


• 单元格中使用的公式 D2

=HSTACK({1;2},
 TAKE(SORT(UNIQUE(HSTACK(A2:A12,
 SUMIFS(B2:B12,A2:A12,A2:A12))),2,-1),2))

或者,


• 单元格中使用的公式 D2

=HSTACK({"1";2},
 TAKE(SORT(UNIQUE(HSTACK(A2:A12,
 MMULT(N(A2:A12=TOROW(A2:A12)),B2:B12))),2,-1),2))

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