Excel – 在一列中,按规定的次数依次重复显示每个单元格内容

今天的这个案例,公式本身不难,但是思路奇巧,脑洞开得有点大 。


看完案例,很多人会不禁感叹:原来 vlookup 函数还能这么玩!


案例:



下图 1 为“班级”、“人数”对照表 , 现在需要在同一列中,根据人数重复显示班级名,比如一班有 5 个人,就重复显示 5 行“一班”,然后再按人数重复显示“二班”,以此类推 。效果如下图 2 所示 。
【Excel – 在一列中,按规定的次数依次重复显示每个单元格内容】

单元格颜色只是为了方便大家核对个数而后期添加,本身并无意义 。
Excel – 在一列中,按规定的次数依次重复显示每个单元格内容

Excel – 在一列中,按规定的次数依次重复显示每个单元格内容



解决方案:



1. 在“班级”列前面新增一列辅助列 --> 在 A2 单元格中输入以下公式:
=SUM($C$2:C2)


* 请注意参数的绝对和相对引用
Excel – 在一列中,按规定的次数依次重复显示每个单元格内容



2. 向下拖动复制公式
Excel – 在一列中,按规定的次数依次重复显示每个单元格内容



3. 在 E2 单元格中输入以下公式:
=IFERROR(VLOOKUP(ROW(A1),A:B,2,0),E3)


公式释义:
  • VLOOKUP(ROW(A1),A:B,2,0):
    • 以依次递增的行值,即 1、2、3、4…… 作为要查找的值,查找 B 列对应的班级名
    • 以“一班”为例,它前面辅助列的数字为 5,所以拖动 1 至 4 行都是查找不到的,直至第 5 行,即行值为 5 的时候,才会查找到“一班”
  • =IFERROR(...,E3):
    • 如果查找不到 , 那么就等于下一行单元格的值
    • 仍以“一班”为例,向下拖动直至第 4 行的时候 , 仍然找不到 B 列的班级名 , 所以 1 至 4 行的结果目前都为 0
    • 当拖动到第 5 行时,查找到“一班” , 此时,第 4 行的值因为等于第 5 行的值,也变成了“一班”;同理 , 1 至 3 行的值也相应全都变成了“一班”

Excel – 在一列中,按规定的次数依次重复显示每个单元格内容

Excel – 在一列中,按规定的次数依次重复显示每个单元格内容



4. 向下拖动复制公式,直至出现“0”值 , 表示所有重复显示都已经执行完毕 。
Excel – 在一列中,按规定的次数依次重复显示每个单元格内容



5. 可以手工删除值为“0”的单元格区域,如果不想每次都手工删除公式 , 也可以在公式后面添加“&""”,就能自动不显示“0”值:
=IFERROR(VLOOKUP(ROW(A1),A:B,2,0),E3)&""


公式释义:
  • &"":老读者应该都知道,万金油公式中经常会用到“&""” , 其作用是把数值转换为文本,这样“0”就不会显示出来了


有关万金油公式,我在不少案例中都使用并且详细讲解过 , 如果需要学习了解的话,可以参阅

Excel – 在一列中,按规定的次数依次重复显示每个单元格内容

很多同学会觉得 Excel 单个案例讲解有些碎片化 , 初学者未必能完全理解和掌握 。不少同学都希望有一套完整的图文教学,从最基础的概念开始 , 一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点 。
现在终于有了,以下专栏 , 从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手 。


相关经验推荐