场景一:
要在学生名册中,抽查一名学生成绩。
公式:
=CHOOSEROWS(A1:D5,2)
解析:
第一参数A1:D5为数据区域,第二参数2表示提取第2行数据。
把数据区域改为A2:D5,结合RANDBETWEEN(1,4)随机生成1到4的整数,即可达到随机抽查的效果。
=CHOOSEROWS(A2:D5,RANDBETWEEN(1,4))
场景二:
要在学生名册中,抽查多名学生成绩。
公式:
=CHOOSEROWS(A1:D5,2,5)
解析:
第一参数A1:D5为数据区域,第二参数2表示提取第2行数据,第三参数5表示提取第5行数据。
也可这样写:
=CHOOSEROWS(A1:D5,{2,5})
同样,也可实现随机抽查多条数据:
=CHOOSEROWS(A2:D5,RANDBETWEEN(1,4),RANDBETWEEN(1,4))
或
=CHOOSEROWS(A2:D5,RANDARRAY(2,,1,4,1))
场景三:
要在学生名册中,抽查多名学生的语文成绩。
公式:
=CHOOSECOLS(A1:D5,2,3)
解析:
学生姓名位于第2列,语文成绩位于第3列,表示提取A1:D5数据区域范围内第2列、第3列数据。
公式也可以写成:
=CHOOSECOLS(A1:D5,2,-2)
参数-2表示从右往左数第2列,即从左往右数的第3列。
场景4:
查看第三行,第四列数据,即李四的数学成绩。
公式:
=CHOOSEROWS(CHOOSECOLS(A1:D5,4),3)
解析:
CHOOSECOLS(A1:D5,4)表示提取出数据的第4列,再用CHOOSEROWS提取出第3行,从而实现交叉定位查找的功能。
等同于:
=INDEX(A1:D5,3,4)
场景5:
查找李四、王五的班级及语文、数学成绩。
如果用VLOOKUP查找,需要处理逆向查找问题,并且写好一个公式,还要向下填充计算。
=VLOOKUP(F3,HSTACK($B$1:$B$5,$A$1:$A$5,$C$1:$D$5),{2,3,4},0)
=VLOOKUP(F4,HSTACK($B$1:$B$5,$A$1:$A$5,$C$1:$D$5),{2,3,4},0)
这时,也可以考虑用提取行列交叉查找的方式查找。
公式:
=CHOOSECOLS(CHOOSEROWS(A1:D5,XMATCH(F3:F4,B1:B5)),XMATCH(G2:I2,A1:D1))
解析:
CHOOSEROWS(A1:D5,XMATCH(F3:F4,B1:B5)
用XMATCH定位出李四、王五所在的行序数,提取出整行数据。
再用同样的办法,定位出班级及语文、数学所在的列序数,用CHOOSECOLS提取出范围内的整列数据。
这样,通过行列交叉提取,最终轻松查找出所需要的信息。
当然,用INDEX+XMATCH同样可以办到:
=INDEX(A1:D5,XMATCH(F3:F4,B1:B5),XMATCH(G2:I2,A1:D1))