作者:绿色风
分类:
时间:2022-08-17
浏览:102
楼主 Zaezhong |
Q:当前行开始依次向上统计连续1的个数,再返回最大的10个数对应的编号(在第一行),如果相同,那么对应的编号较小的排在前面?
A:定义名称Yes:光标定位在BH14时- =TEXT(MMULT(10^(ROW(Sheet1!A1)-TRANSPOSE(ROW(Sheet1!$1:1))),COUNTIF(OFFSET(Sheet1!$D5,-ROW(Sheet1!$1:1),Sheet1!$E$1:$BF$1),1)),REPT(0,ROWS(Sheet1!$4:4)))
BH14=- =ROUND(MOD(-LARGE(IF((LEFT(Yes)="1")*FIND(10,Yes&10),FIND(10,Yes&0)-COLUMN($A:$BB)%),COLUMN(A4))*100,100),)
名称Yes中,分别统计每一个单元格,如果是1就返回1,否则0,通过Mmult函数计算出一个包含1和0的数,再通过Text函数与rept结合来显示如果第一行为0时,在前面添加0.
通过(Left(Yes)="1")*(Find(10,Yes&10)),确定上图当前行位置是1的编号,其中的10用人容错处理,FIND(10,Yes&0)-COLUMN($A:$BB)%用于得到一串不重复的数,其中的0也是用于容错。最外面的Round函数是为了防止浮点错误 根据当前行统计最大连续1的个数.rar |
2楼 亡者天下 |
影子的函数功底很厉害啊! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一