在 Excel 中从一系列混合数据中查找最高数值

在 Excel 中从一系列混合数据中查找最高数值

我有一行 6 个字母数字值,如图所示。我需要一个公式来确定每行中最高的三个数值,然后按正确的顺序(降序)显示与这些值相关的字母。例如,第 1 行的答案是 RES,因为 R 是该行中最高的,其次是 E,然后是 S。如果匹配(如上所示),则第一个出现的将获得优先权。我是 Excel 的基本用户,这让我很为难。我可以执行解决方案的元素,但当我尝试组合时它不喜欢它。感谢您的帮助。

在此处输入图片描述

答案1

在此处输入图片描述

怎么运行的:

我的源数据在范围内A2:F3

  • 在单元格中写入此公式B6以从源数据中拆分字母并填充正确的

      =LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
    
  • 要从源数据中拆分数字,请在单元格中输入此公式B7,填写右,然后下。

     =VALUE(RIGHT(A2,LEN(A2)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1))
    
  • 在单元格中B10写入此数组公式,填充正确的然后按下F2并完成Ctrl+Shift+Enter并填充向下

    {=LARGE(B7:G7,{1,2,3})}
    
  • B13在单元格填充中写入此公式正确的然后向下

       =IFERROR(INDEX(B$6:$G$6,MATCH(B10,B7:$G7,0)),"")
    
  • 最后,在单元格中B16写入此公式并填充向下

=CONCATENATE(B13,C13,D13)

根据需要调整公式中的单元格差异。

答案2

假设您的数据“R35”位于A1

H1  --->  =VALUE(RIGHT(A1,LEN(A1)-1))

并拖动L1直到

N1  --->  =IF(COUNTIF($H1:$L1,H1)=1,H1,H1+0.5)
O1  --->  =IF(COUNTIF($H1:$L1,I1)=1,I1,I1+0.4)
P1  --->  =IF(COUNTIF($H1:$L1,J1)=1,J1,J1+0.3)
Q1  --->  =IF(COUNTIF($H1:$L1,K1)=1,K1,K1+0.2)
R1  --->  =IF(COUNTIF($H1:$L1,L1)=1,L1,L1+0.1)

然后

T1  --->  =RANK(N1,$N1:$R1,0)

并拖动X1直到

Z1  --->  =INDEX($A1:$F1,MATCH(1,$T1:$X1,0))
AA1  --->  =INDEX($A1:$F1,MATCH(2,$T1:$X1,0))
AB1  --->  =INDEX($A1:$F1,MATCH(3,$T1:$X1,0))

然后

AD1  --->  =LEFT(Z1)&LEFT(AA1)&LEFT(AB1)

最后..选择H1:AD1并拖动直到AD6

AD 列应该是您要找的。您可以隐藏列或在另一个工作表中执行此操作以使其看起来更简单。

如果您遇到困难(在理解公式或执行公式时),请分享。(:

希望能帮助到你。

p/s :+0.5、+0.4 .. +0.1 用于满足此要求

第一个出现的人获得优先权

答案3

我需要 6 个辅助单元格,但不能使用 VBS。因此,如果您的数据位于 A1 到 F1 中:

将 G1 设置为

=INT(RIGHT(A1,2)&"006")

将 H1 设置为

=INT(RIGHT(B1,2)&"005")

将 I1 设置为

=INT(RIGHT(C1,2)&"004")

将 J1 设置为

=INT(RIGHT(D1,2)&"003")

将 K1 设置为

=INT(RIGHT(E1,2)&"002")

将 L1 设置为

=INT(RIGHT(F1,2)&"001")

和 M1

=LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,1),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,2),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,3),G1:L1,0))),1)

您应该能够将这 7 个公式复制并粘贴到行中。请注意,重复值是从左到右处理的。

相关内容