excel找到一行数据的第N大值的所在列

今天碰到一个excel中的问题,要找到每行数据中的最大值,最小值,第二大值的所在列,并返回它们的列名

如:

id c1 c2 c3 c4 c5
01 10 22 23 1 6

要找到id为01的最大值(23)、最小值(1),第二大值(22)的所在列,并返回它们的列名

其中,找到最大值,最小值,开源分别用max(),min()函数来找到,而中间的函数可以通过其他方法,如large()函数来找到。

large()函数用法:large(范围,名次)
如:large(c1:c5,2) 选择c2-c5的第二大值

在找到这些值之后,需要的是对这些值进行定位。
主要涉及的方法有:

index()和match()
index(要找的首行范围,第m行,第n列)
match(要找的值,可能包含该值的范围,排列参数)

如:index($AP$1:$AS$1,1,match(j,ap2:as2,0))
表示在AP1-AS1的第一行范围内找到j所在位置,并返回该值的列名

本次解决方案:

1
INDEX($B$1:$M$1,1,MATCH($N2,$B2:$M2,))