row和column的数组用法
昨天说了row和column的常规用法,今天来说一下它们的数组用法。
1.制作九九乘法表
先选中9行9列的一个区域,然后输入公式=COLUMN(A:I)&"×"&ROW(1:9)&"="&COLUMN(A:I)*ROW(1:9),按ctrl+shift+enter三键,得到下图的效果。
column和row都用的是数组,column形成一维横向数组{1,2,3,4,5,6,7,8,9},row形成一维纵向数组{1;2;3;4;5;6;7;8;9}。实际就是方向不同的一维数组的运算,形成一个二维数组,如下图所示。
最后,像昨天一样用if函数进行条件判断,行号小于列号的显示为空,否则显示表达式。如下图一样,公式为=IF(ROW(1:9)<column(a:i),"",column(a:i)&"×"&row(1:9)&"="&column(a:i)*row(1:9)),按ctrl+shift+enter三键。< p="">
2.查找出销量最大的月份
如下图所示,最大销量已经用红色标示出来,求最大销量对应的月份。在D23单元格中输入公式=MAX((MAX(B23:B34)=B23:B34)*ROW(1:12))&"月",按ctrl+shift+enter三键。
MAX(B23:B34)这部分求出最大销量,MAX(B23:B34)=B23:B34这部分将每个销量与最大销量进行比较,等于最大销量的返回true,否则返回false,形成一个由逻辑值组成的数组。
(MAX(B23:B34)=B23:B34)*ROW(1:12)这部分将比较的结果与对应的月份数相乘,是最大销量的返回对应的月份,否则返回0,又形成一个数组。ROW(1:12)也可以看作是ROW(23:34)-22,先返回对应的行号,再减去表头的行号。
MAX((MAX(B23:B34)=B23:B34)*ROW(1:12))这部分将上一步的最大值取出来就是最大销量对应的月份。最后连接"月"就完成了。
实际上这个题是根据右边的内容查找出左边的内容,是个向左查询的问题,我们都知道vlookup可以实现向右查询,其实也可以实现向左查询。如果你感兴趣的话,请点击下面2个链接查看向左查询的用法。
vlookup怎么实现向左查询?
vlookup进阶用法,通配符的运用
当然除了vlookup,还有其他函数也能实现向左查询。
3.实现像筛选一样的功能
如下图所示,左表是成绩表,现在要实现像筛选的功能。在右边输入姓名,就能自动查询出对应的记录。在E38单元格中输入公式=IFERROR(INDEX(A:A,SMALL(IF($F$36=表1,ROW(表1)),ROW(A1))),""),按ctrl+shift+enter,向右向下填充。
其中F36单元格设置了数据验证,可以通过下拉三角选择姓名。比如我选择刘卓,就把刘卓的记录筛选出来。
这个公式中也用到了row函数的数组用法,返回区域的行号。公式中的表1就是左表,把它设置为表的好处就是,如果左表增加了1条记录,右边也会自动添加的。比如在47行增加一条记录,【刘卓 excel 66】,那么右边会自动增加。
这个公式的含义我不说了,如果你感兴趣,下载文件自己查看一下。
链接:
https://pan.baidu.com/s/1ZxlBzUE0ZMPGRGR1owKCvQ
提取码:44ni
如果这个你已经会了,不妨思考一下,下面这个如何做到。只输入一个关键字,就把包含这个关键字的所有记录筛选出来。
如果对你有所帮助或启发,请打赏或分享一下,你的支持就是我最大的动力!
此公众号没有留言功能,如果有问题可以发到邮箱715704566@qq.com,有时间会回复的。
关注解锁更多函数的用法