上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
案例21 抽取奇数行姓名(ODD)
☉ 源文件:CDROM\02\2.9\案例21.xls
工作表中存放员工的姓名与工号,其姓名在奇数行,工号在偶数行。现需要随机抽出一个员工的姓名。
打开光盘中的数据文件,在单元格D2中输入以下公式:
=INDEX(B:B,ODD(RANDBETWEEN(1,ROWS(1:12)-1)))
按下【Enter】键后,将返回员工姓名,按下【F9】键员工姓名将随机变化,结果如图2-39所示。
图2-39 抽取奇数行姓名
公式说明
ODD函数可以将正数向上舍入到最接近的奇数。如果要把一个范围内的数据全部转换为奇数,且范围中最大值是偶数的话,那么该最大值转换之后将会超出原有范围。所以在本例中,首先利用ROWS函数计算B列已用区域的行数,然后减去1,再随机抽取数据,这样可以保证RANDBETWEEN函数产生的随机数在数值限定范围之内。
在产生随机数之后,利用ODD函数将所有随机数转换成奇数,再用INDEX函数的参数引用B列的姓名,此方法可以随机地引用B列指定区域奇数行的数据。
案例提示
本例中如果每个员工的资料占据三行,即姓名分别在第1行、第4行、第7行、第10行,……,那么要随机抽取姓名则需要使用MOD函数,可以使用以下数组公式:
=INDEX(B:B,INDEX(1+ROW(1:23)-MOD(ROW(1:23),3), RANDBETWEEN(1,23)))
案例参考函数
CEILING数学和三角函数,见第2章2.17节。
EVEN数学和三角函数,见第2章2.18节。
INT数学和三角函数,见第2章2.10节。