我正在运行 行 数据的MAX函数,例如:
+------+-----+------+------+-------+------+------+--------+------+------+--------+------+
| John | Doe | 4323 | Eric | Smith | 1235 | Sean | Wilson | 4567 | Jeff | French | 3212 |
+------+-----+------+------+-------+------+------+--------+------+------+--------+------+
(每个项目位于不同的单元格中)
自然,在整行中运行的MAX函数将返回4567。我希望MAX结果前面的单元格返回直接进行结果处理的名字,例如:
西恩4567
请记住,名字,姓氏和数字位于不同的列中但在同一行上,但始终在一个单元格中位于结果前一定数量的单元格中。 (我不需要也不想要此结果的姓氏)
答案 0 :(得分:0)
假设您在第4行(从D列到O)有值。
以下内容将为您提供名称(Sean),而不是MAX值(4567):
=INDEX(D4:O4,MATCH(MAX(D4:O4),D4:O4,0)-2)
MATCH
公式将返回位置9,INDEX
公式将返回位置9的值。我们要返回位置7,因此减去2,INDEX
将返回“正确”的结果。 -2
是返回值应偏移多少个位置(在找到实际的MAX值之前2个像元)。
如果您想要Sean 4567,我应该将两个公式结合起来:
=INDEX(D4:O4,MATCH(MAX(D4:O4),D4:O4;0)-2) &" "& INDEX(D4:O4,MATCH(MAX(D4:O4),D4:O4,0))
或
=INDEX(D4:O4,MATCH(MAX(D4:O4),D4:O4,0)-2) &" "& MAX(D4:O4)
您已经提到过,它仅在行的偏移量恒定的情况下才有效(名称始终位于值单元格之前2个单元格)。
答案 1 :(得分:0)
类似于Wizhi所说的,但略短一些。假设信息位于第1行:
=INDIRECT(ADDRESS(1;MATCH(MAX(1:1);1:1) - 2))
在给定行号(1:1)的情况下,列号找到最大值并在其之前(给定的偏移量)加2,然后INDIRECT(ADDRESS())将其与行号连接起来并在那里找到名称(在这种情况下为“ Sean”。)