新函数MAKEARRAY,同时查找多个查找值并返回多列数据
文 前 推 荐
新函数的用法(下)——递归运算详解函数在常规用法上与\的对标!的神奇用法——相交查找Excel生成随机时间和日期
编按:
教程介绍Excel或者WPS表格中的函数用法6例。包括基本用法2列,以及同时查找多个查找值并返回多列数据等4例。
今天小窝向大家介绍函数用法,在Excel和新版的WPS表格中都可以使用。
1. 作用与语法函数须搭配函数使用,它会生成指定行列数的数组。数组中的值由函数生成。=(行数,列数,运算式)行数,指定需要输出的数组行数;列数,指定需要输出的数组列数;运算式,用于计算生成数组中的每个值。注意:因为Excel函数不支持数组的数组,所以中每次运算结果只能是单个值而不能是数组。2.基本用法函数的行、列参数,可以参与值的计算,也可以不参与值的计算。1)行列数参与值的运算当行或列数参与运算时,其各代表一个从1到自己的序列。譬如,为某单元楼生成门牌号,一共5层,每层3户。公式=(5,3,(R,C,R&"-"&C))
说明:5层3户(每层)的门牌号一共5行3列,所以公式中行数是5,列数是3。行数5,在此处代表了一个行序列值{1;2;3;4;5};列数3,在此处代表了一个列序列值{1,2,3}。运算式,R变量代表行数,将从1到5逐个取值;C变量代表列数,将从1到3逐个取值;然后每个R值和C值通过连接符组成1-1、1-2、1-3、1-4等值。
2)行列数不参与值的计算当行列数不参与值得计算时,它们只用于确定结果数组的大小。譬如,需要生成3行4列的随机数。公式=(3,4,(r,c,(1,20)))
说明:此处行数和列数都没有参与数值的计算,只是确定了结果数组是3行4列,每个值由随机函数生成。此处生成随机数数组有更简单的函数。3.典型实例1)九九乘法表公式=(9,9,(x,y,IF(x>=y,y&"*"&x&"="&y*x,"")))
说明:行列数参与了值的计算。当行值X大于等于列值Y时,等于Y&"*"&X&"="&Y*X,否则等于空。X和Y的取值都是1到9。2)求各行最大值在MAP函数教程中,小窝曾例举用一个公式(不下拉填充)求各行最大值。但是用MAP存在一个问题,就是列数越多,变量就越多。而用函数,则不存在这样的问题。公式=((B37:B42),1,(X,Y,MAX(INDEX(C37:E42,X,))))
说明:此处,行数参与了值的计算。(B37:B42)用于得到需要的行数,6;列数就是1。INDEX(C37:E42,X,)逐次从行序列{1;2;3;4;5;6}中取X值引用C37:E42中各行,然后用MAX获得各行最大值。3)同时查找多个查找值并返回多列不管是还是,都只能是:要么同时查找多个查找值,返回单列数据;要么查找一个值,但可以同时返回多列值。它们不可能同时查找多个查找值并返回多列值。
现在搭配,问题解决:=(3,9,(R,C,(INDEX(B58:B60,R,),B47:B55,INDEX(C47:K55,,C))))
说明:此处,行列数都参与了值的计算。INDEX(B58:B60,R,)从1~3的行序列中逐个取R值引用B58:B60的各行作为查找值;INDEX(C47:K55,,C)从1~9的列序列中逐个取C值引用C47:K55中各列作为返回值。4)按指定字符数拆分字符串成多列譬如下方需要将A到O的一个字符串按2个字符一组拆分为多列。
公式=(1,(LEN(B64)/2,0),(R,C,MID(B64,2*C-1,2)))
说明:此处只有列数参与了值的计算。(LEN(B64)/2,0)计算出拆分的列数。MID(B64,2*C-1,2),2*C-1依次从列序列中取C值计算出开始提取字符的位置,然后用MID提取2个字符。函数,日常可能用得不多。但冲着它搞定了同时查找多个查找值并返回多列数据的难点,也值得大家了解和学习。截止现在,函数的6个伴生函数,小窝已经介绍了4个,下次将介绍最后两个BYCOL、BYROW。
我来说两句