在最大数量的行中返回文本的公式

时间:2018-06-22 18:41:36

标签: excel

A列包含文本,B,C和D列包含数字。

例如。

A... …B  C   D    
John  4  6   2    
Dave  4  6   4    
Mike  4  5   1
Bill  2  5   9

我希望一个单元格返回A列中名称在B列中最大的名称。如果有相似的数字,请转到下一列并确定哪一个最高,如果该值最大,请转到下一列,依此类推。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我们可以解除关系冲突。

E1 中输入:

=B1 + C1/(10*MAX(C:C))+D1/(100*MAX(D:D))

然后抄下来。然后在另一个单元格中输入:

=INDEX(A:A,MATCH(MAX(E:E),E:E,0))

enter image description here

EDIT#1

这仅适用于数字的 3 列,但在必要时添加其他去冲突术语非常容易:

=B1 + C1/(10*MAX(C:C))+D1/(100*MAX(D:D))+E1/(1000*MAX(E:E))

答案 1 :(得分:0)

对于可扩展的行/列数,请使用与数据中的列数相同列数的帮助行。下面的公式引用下图(数据在A1:G7中):

enter image description here

B9-> =MAX(B1:B7)

C9(将其余列填充到G9中)->

=MAX(IF(MMULT(--($B1:B7=$B9:B9),--(ROW(INDIRECT("1:"&COLUMNS($B9:B9)))>0))=COLUMNS($B9:B9),C1:C7))

以下公式将给出答案(如上A9所示):

=INDEX(A1:A7,MATCH(TRUE,(MMULT(--($B1:G7=$B9:G9),--(ROW(INDIRECT("1:"&COLUMNS($B9:G9)))>0))=COLUMNS($B9:G9)),0))

使用替代方法更新

改为使用帮助程序列,再次参考下图(数据位于A1:G7中):

enter image description here

I1(填写至I7)->

=SUM(--(MMULT(SIGN(B1:G1-$B$1:$G$7)*2^(COLUMN(G1)-COLUMN(A1:F1)),--(ROW(INDIRECT("1:"&COLUMNS(B1:G1)))>0))>0))

以下公式将给出答案(如上J1所示):

=INDEX(A1:A7,MATCH(MAX(I1:I7),I1:I7,))

另外,请注意,helper列与从左到右按每一列对数据进行排序所获得的顺序相对应。换句话说,您可以使用helper列对严格的数值数据执行基于公式的多列排序。对于最后一张图片,在与A1:G7相同尺寸的范围内输入以下数组公式可对BG列进行降序排列:

=IF(A1:A7=A1:A7,INDEX(A1:G7,MATCH(ROW(A7)-ROW(A1:A7),I1:I7,0),))