ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 函数与公式 > 按照要求填充相应的数字

按照要求填充相应的数字

作者:绿色风 分类: 时间:2022-08-18 浏览:103
楼主
Zaezhong
题目原始数据说明:
A列的数据范围为1~9,不会出现其他的数字

题目要求说明:
要求将A2:A11区域的数字按照实际单元格内部的数据进行反复填充,规定出现一次非空单元格与一次空白单元格为一个循环,具体循环的次数为A列的数字,达到循环的次数后A列单元格向下偏移一行

例如:A2单元格为8,那么需要进行8次循环,D2:D17内间隔填充A2内的数字,在D2:D17填充了8次后D18开始填充A3的数字,依次进行,效果在附件中,请从除A列外任意列的第二行开始答题,当前数据情况下公式下拉到第111行即可,无需容错~

 

有问题可以发站内信询问

答题时间:2月2日除夕,到期请版主评技能分
按要求填充数字.rar
2楼
piny
E2=IF((ROW()/2<=SUM(A$2:A$11))*(MOD(ROW()-1,2)),LOOKUP(ROW()-2,SUBTOTAL(9,OFFSET(A$1,,,COLUMN(A:I)))*2,A$2:A$11),"")&""

下拉
3楼
wjc2090742
咦,又有新题目了,掺和一下


比较直接的思路
  1. =INDEX(A:A,--RIGHT(SMALL(SMALL(IF(A$2:A$11>=COLUMN(A:I),ROW($2:$11),4^8),ROW($1:$90))+ROW($1:$90)*100+{0,15}%,ROW(A1)),2))&""

按要求填充数字.rar
4楼
mn860429
  1. =IF(MOD(ROW(),2)=0,INDEX(A:A,SMALL(IF($A$2:$A$11*2>=COLUMN($A:$R),ROW($A$2:$A$11)),ROW()-1)),"")
5楼
rongjun
多单元格数组公式
  1. =IF(MOD(ROW(),2),"",INDEX(A:A,SMALL(IF((A2:A11*2>=COLUMN(A:Z)),ROW(2:11),4^8),ROW()-1))&"")


工作簿1.rar
6楼
wcymiss
B2=IF(MOD(ROW(),2),"",INDEX(A:A,SMALL(IF(COLUMN(A:J)<=A$2:A$11,ROW($2:$11),99),ROW()/2))&"")
7楼
liuguansky
  1. =LOOKUP(RIGHT(SMALL((ROW($2:$111)-2)*(10^6+{1,0})+{0,65536},ROW(A1)),6)+0,SUMIF(OFFSET(A$1,,,ROW($1:$11)),"<>"),A$2:A$11)&""
有容错。
8楼
zm0115
=IF(MOD(ROW(),2),"",INDEX($A$2:$A$11,MATCH(TRUE,INT(ROW()/2)<=SUMIF(OFFSET($A$2,,,ROW($1:$10),1),"<>"),)))
重在参与!
工作簿1.rar
9楼
Violet_Universe
D2单元格数组公式为,下拉就行
  1. =IF(MOD(ROW(A1),2),LOOKUP(ROW(A1)-1,MMULT(N(ROW($1:$10)>TRANSPOSE(ROW($1:$10))),$A$2:$A$11*2),$A$2:$A$11),"")
10楼
foodorwater


多單元格數組公式:
=IF(MOD(ROW(INDIRECT("1:"&2*SUM(A$2:A$11))),2),N(OFFSET(A$2,MMULT(N(ROW(INDIRECT("1:"&2*SUM(A$2:A$11)))>2*TRANSPOSE(MMULT(N(TRANSPOSE(ROW($2:$11))<=ROW($2:$11)),$A$2:$A$11))),ROW($2:$11)^0),)),"")


工作簿1.zip
11楼
XIAO_JUN
数组公式下拉:
=IF(MOD(ROW(),2),"",INDEX(A:A,SMALL(IF(COLUMN(1:1)<=A$2:A$11*2,ROW($2:$11),4^8),ROW(A1)))&"")
12楼
whybu
学习
13楼
bensonlei
What's the meaning?
14楼
Zaezhong
明天可能有事,提前1天开帖,评分分结果如下:

 

考虑公式的简洁和正确性,正确结果3技能分,公式较简洁额外给予1分
15楼
Zaezhong
这次的题目大家在处理单元格返回的数字与空白文本的时候具体方法可以分为2种:
第一种:
利用MOD函数对2求模,2楼、4楼、5楼、6楼、8楼、9楼、11楼。
虽然题目不要求容错,但是大家在容错上面大同小异,特别点的是2piny兄的解答,加了一个ROW()/2<=SUM(A$2:A$11),用于判断当前的行号是否大于A列求和的2倍的时候返回空文本。
第二种:
构建一个数组:3楼、7楼。
3楼小胖的解法中SMALL(IF(A$2:A$11>=COLUMN(A:I),ROW($2:$11),4^8),ROW($1:$90))部分用于得出各行号需要取得的次数,结果中有82,解释为需要引用A2单元格8次,后面连接的{0,15}%是容错的一部分,其中的15是一个大于A列最后一个非空单元格对应行的行号,即当公式所在行是奇数行的时候返回A15单元格的值。
7楼具体的思路与3楼类似,构建多行2列的数组,引用后面的一列的结果时用于返回空文本。具体看各楼层解答,不再赘述。
第二就是引用的过程不同,用INDEX函数的理解起来相对简单,用Lookup函数的(包括2楼、7楼、9楼)在产生第二参数的时候不同,2楼、7楼用Offset9楼用Mmult函数。
10楼的相对复杂了点,但是思路还是清晰的,外套的Mmult函数构建offset的偏移行。

自己答案:

  1. =IF(COUNT(C$1:C1)=COUNTIF(C$1:C1,""),"",LOOKUP(COUNTIF(C$1:C1,""),1+MMULT((ROW($1:$10)>COLUMN(A:J))/1,A$2:A$11),A$2:A$11))
16楼
laowuwyx
学习各位高手的思路。
17楼
hbhhl
向各位高手学习了。
18楼
liuguansky
只有我是内存数组方法?
19楼
鬼狐
=IF(MOD(ROW(),2),"",INDEX(A:A,SMALL(IF(COLUMN(A:Z)<=2*A$2:A$11,ROW($2:$11)),ROW(A1))))
没想到来晚了~~
20楼
w83365040371
  1. =LOOKUP(ROW()-2+MOD(ROW(),2)*9^4,SUBTOTAL(9,OFFSET(A$1,,,ROW($1:$11)))*2,A$2:A$12)&""

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap