关于在对一列数据隔行插入空行,我分别写过 Excel 实用 tips(三) – 如何隔行插入空行? 和 Excel VBA(5) – 一键制作工资条 两篇文章中分别介绍了三种方法: 排序法 按空格插空行法 VBA 可是还有同学说:这几种方法我都不喜欢,我是函数控,有没有函数实现的方法? 有!今天介绍用 index+match 实现的方法。大家不禁要问了,index+match 不是用来查找的吗?没错,具体案例可参见 Excel 如何多条件查询?即同时查询行、列并返回值? 稍作变通,就能实现隔行插入空行的目的。 案例: 如何给下图 1 隔行插入空行,变成下图 2? 解决方案: 1. 先在 B 列增加一个辅助列,公式为:=row,目的是读出当前行数 2. 接着我们来找一下规律: 如下图所示,如果隔行插入空行,就相当于 1 行写入 1 行,2 行写入 3 行,3 行写入 5 行…… 发现规律了吗?目标行=原始行*2-1 反推一下公式,得出结论:原始行=(目标行+1)/2 先记住这个结论,等下公式中会用到 3. 既然找出了规律,就可以写公式了,把多余的演示删除,在 C1 单元格输入以下公式,下拉: =INDEX(A:A,MATCH((ROW+1)/2,B:B,0)) 公式释义: (ROW+1)/2:这就是我们在上一步找出的规律,row 是当前行,即目标行;(ROW+1)/2 就是 (目标行+1)/2,即原始行 MATCH((ROW+1)/2,B:B,0):这一步的目的是返回原始行的行数 然后根据返回的行数,用 index 函数在 A 列中取出对应的人名 4. 但是我们要的是插入空行,不是出错值,那可以在整个公式外面加上 iferror(公式,'') 即可: =IFERROR(INDEX(A:A,MATCH((ROW+1)/2,B:B,0)),'') 5. 接下来把整个 C 列复制 --> 粘贴为数值到 D 列,公式就变成了人名 6. 再按需设置一下字体格式就完成了 |
|