|
楼主 |
发表于 2010-11-8 14:22
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
回复 544楼 greyfire 的帖子
公式的解释,其实可以小改一下:
=INDEX(F:F,SMALL(IF(COLUMN(A:AE)>G$2:G$83,99,ROW($2:$83)),ROW()-1))&""
因为COLUMN(A:AE)产生1-31的数字,而每个考场安排最多人数是30,也就是说:COLUMN(A:AE)>G2判断G2小于1~30,则返回99,否则返回ROW(2:2),因为G2=30,所以只有1个返回99,而其他的返回了30个row(2:2)
COLUMN(A:AE)>G2:G83,道理一样,将G2:G83的值分别与1~31相比,返回个数相当的ROW(2:83),其余返回99。
最后INDEX+SMALL取出这些ROW(2:83)对应的F列的考场号,取到99的就是F99单元格的空值了。
给个辅助列的解法,速度快而又简单:
H2输入:=SUM(G$1:G1)+1,向下复制。
D2输入:=LOOKUP(ROW()-1,H:H,F:F),向下复制。
不用辅助列的解法(数组公式):
- =LOOKUP(ROW()-1,MMULT(--(ROW($2:$83)>TRANSPOSE(ROW($2:$83))),G$2:G$83)+1,F$2:F$83)
复制代码
[ 本帖最后由 gouweicao78 于 2010-11-8 16:04 编辑 ] |
|