问题标题:
请EXCEl大师解析下下面的公式.这个公式可以自动筛选第二行的数值并将所有注意是所有的相对应的第一行的值依次列出.=IF(COLUMN()>COUNTIF($A$2:$Z$2,MAX($A$2:$Z$2)),"",INDEX($A$1:$Z$1,LARGE(COLUMN($A$2:$Z$2)*(
问题描述:
请EXCEl大师解析下下面的公式.
这个公式可以自动筛选第二行的数值并将所有注意是所有的相对应的第一行的值依次列出.
=IF(COLUMN()>COUNTIF($A$2:$Z$2,MAX($A$2:$Z$2)),"",INDEX($A$1:$Z$1,LARGE(COLUMN($A$2:$Z$2)*($A$2:$Z$2=MAX($A$2:$Z$2)),COLUMN())))
就是说这个公式是怎么算出来的.比如column的作用.如果把寻找最大值的范围改成其他区域应当改动哪些地方.
黄晔春回答:
=IF(COLUMN()>当前单元格的列数大于
COUNTIF($A$2:$Z$2,MAX($A$2:$Z$2)),在a2到z2范围内最大那个数值出现的次数时
"",显示空值,否则
INDEX($A$1:$Z$1,在a1到z1中引用
LARGE(COLUMN($A$2:$Z$2)*($A$2:$Z$2=MAX($A$2:$Z$2)),在a2到z2中最大那个值第n次出现的列数所对应的第1行的值
COLUMN())))n等于当前单元格的列数
这个公式应该是用来筛选第二行中最大值出现时所对应的第一行的值
冀捐灶回答:
多谢!请问如果要引用a2到z2中最大那个值第二行的值要改哪里呢?
黄晔春回答:
index后面的第一个参数是引用的范围,把$A$1:$Z$1里面1都改成2就行,但是这样就成了显示最大值本身了,没意义,你可以改成你需要的行数
冀捐灶回答:
比如我现在要寻找的值的范围是c15:ak15,相对应的需要显示的值是c3:ak3,这样不紧挨着的两行如果想应用这个公式要怎么修改才好?多谢!
黄晔春回答:
其实关键在这两个:$A$1:$Z$1和$A$2:$Z$21是显示的,2是要取值的相应的修改就行了,串号不要删了,那个是绝对引用,要不填充公式会出错
冀捐灶回答:
问题是我按这个格式改了以后他取得值是第一行的不是我指定的数据所在行啊。。。比如我要显示的数据在第三行,键入$c$3:$ak$3,数据显示的却是第一行的那个数值。。。
黄晔春回答:
不知道你改完以后是什么样子的,不过列数一定要对应,比如你搜索的a到z是26列,那你要显示的也得是1-26列。另外这个应该是数组公式,不是按enter输入,要按ctrl+shift+enter输入
冀捐灶回答:
我还是问的更直接点好了。。。现在有一个表格其中c3-ak3这行的数据是日期即feb-1.feb-2这样的横向排列c15-ak15是日期所对应的值没有规律比如123298172742。。。现在需要先找出c3-ak15最大的值(可能一个以上),然后将找的最大值对应的日期依次排列出来注意c2-c15是有数据的,要显示的日期不在第一行,在第三行。。。这个要怎么编写函数?多谢。。。
黄晔春回答:
是查找c15-k15吧?改成=IF(COLUMN()>COUNTIF($C$15:$AK$15,MAX($C$15:$AK$15)),"",INDEX($C$3:$AK$3,LARGE(COLUMN($C$15:$AK$15)*($C$15:$K$15=MAX($C$15:$AK$15)),COLUMN())))要注意的是,这个公式要从第一列开始放,因为他用了一个当前列的列数做参数,放后面会显示不全。另外这个是数组公式,要按ctrl+shift+enter输入
冀捐灶回答:
谢谢!如果公式要从第三列或第四列开始放应该改哪里呢?
黄晔春回答:
公式里两个COLUMN()就是取当前单元格列数的,每往后放一列就多-1就可以了。比如在C列改成COLUMN()-2就可以
冀捐灶回答:
谢谢!按照您指点的改了以后的确可以取当前单元格列数了但是显示的依然是从第一列开始算起而不是我数据所在的第三列。比如我的数据在e3是2月5日e15是当月最大值但经过该公式计算显示的却是g3的日期即2月7日。。。您刚才提供的解决办法是可以让该公式在不同单元格表示但所抓取的数据却依然是从第一列开始而非第三列。。如何是好。。哪里出问题了。。
黄晔春回答:
=IF(COLUMN()>COUNTIF($C$15:$AK$15,MAX($C$15:$AK$15)),"",INDEX($C$3:$AK$3,LARGE(COLUMN($C$15:$AK$15)*($C$15:$AK$15=MAX($C$15:$AK$15)),COLUMN())))之前中间打掉了一个K……你再试试,如果不行的话把表发我看看
点击显示
其它推荐
热门其它推荐