ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 字母堆金字塔

字母堆金字塔

作者:绿色风 分类: 时间:2022-08-18 浏览:103
楼主
传递
字母堆金字塔


 
  1. =IF(LEN(A1)<27,REPT(CHAR(96+ROW(A1)),ROW()),"")
1. 小写字母a ,code值为97
2. 用char(96+ROW(A1)来产生CHAR(97)。(96+ROW(A1)是为下拉时增加行号。
3. 用 工作簿函数REPT,构建重复字母:
REPT(text,number_times) ,Text:需要重复显示的文本。Number_times:是指定文本重复次数的正数。
这里REPT(CHAR(96+ROW(A1)),ROW()),"")把公式理解成 rept(a,row()),公式下拉填充成 rept(b,row(b))……依次类推。
4.用LEN(A1)<27 测试当前单元格长度是否超过27。
5.用=IF(当前单元格<27,当前单元格,"")来判断当前单元格是否超过27,如果超过,返回空。公式=IF(LEN(A1)<27,REPT(CHAR(96+ROW(A1)),ROW()),"")

由于公式在循环引用自身单元格(如:IF(LEN(A1)<27 ,当没有公式填充时 A1一定<27,但一旦下拉填充单元格时,会出现>27,而没填充时一定<27) 单元格自身判断。所以启用迭代计算,当公式下拉完成后,重新计算判断是否超过27,如果是返回空。

 
最后单元格格式设居中对齐达到金字塔效果

公式2 不用迭代
  1. =IF(ROW(A1)>26,"",REPT(CHAR(96+ROW(A1)),ROW(A1)))

字母金字塔.rar
2楼
野人
3楼
hylees
有意思
4楼
lrlxxqxa
还是不习惯用迭代,呵呵。另外96外面不必加括号,直接
  1. =IF(ROW(A1)<27,REPT(CHAR(96+ROW(A1)),ROW()),"")

金字塔.rar
5楼
白米饭
传递不错嘛
6楼
蒸蒸日上
哎呀,怎么做到的,好神奇!
7楼
angel928
传递好厉害,进来学习。

免责声明

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

评论列表
sitemap