本文将介绍如何运用“IF函数”、通过“自动填充”功能一次性合并Excel中行和列的内容。本文相比上一篇,更适用于数据量较大的表格的文本合并处理。
现在我们要做的是合并两行/列的单元格内容,但是由于每一序号项下的行数不同,因此需要更复杂的公式来辅助运算。在此,笔者给出自己的一套办法。也许尚不成熟,但仍有一定可参鉴之处,见谅。
“假”合并单元格:
首先,考虑到左侧A列的序号有合并单元格,会影响筛选功能及公式的运用等,因此我们需要将其先改为“假”合并单元格。如下:
1. 先复制A列原来的单元格到一旁,然后取消A列的所有合并;
2. 筛选出A列全部含空值的单元格,在第一个空值的单元格A3中输入“=A2”,然后下拉“自动填充”;
3. 在筛选符号中选择显示全部,选中前述过程1中复制的A列单元格,先点击“格式刷”,再点击A2单元格,使之呈现出“假”合并的样子。结果如图所示:
手动完成序号1下项目的合并:
从序号2下的项目起输入公式:
先判断每个序号下最多有多少个小项,比如说本篇表格中最多有4项,则在F4中键入公式“=IF(A4=A3,,E4&IF(AND(A4<>A3,A5=A4),CHAR(10)&E5,)&IF(AND(A4<>A3,A5=A4,A6=A5),CHAR(10)&E6,)&IF(AND(A4<>A3,A5=A4,A6=A5,A7=A6),CHAR(10)&E7,))”。
上述公式的含义为:如果F4单元格对应的A4单元格,与上一行内容相同,意味着两者处于同一序号下,因此输出“空值”,否则,输出标绿部分。
E4&IF(AND(A4<>A3,A5=A4),CHAR(10)&E5,)&IF(AND(A4<>A3,A5=A4,A6=A5),CHAR(10)&E6,)&IF(AND(A4<>A3,A5=A4,A6=A5,A7=A6),CHAR(10)&E7,)
以上部分的含义为:
1. 输出E4内容;&;
2. 如果F4对应的A4单元格,与上一格A3不相同,且,下一格A5=A4,则输出换行符CHAR(10) 和 E5内容,否则,输出“空值”;&;
3.如果F4对应的A4单元格,与上一格A3不相同,且,下一格A5=A4,下下格A6=A5,则输出换行符CHAR(10) 和 E6内容,否则,输出“空值”;&;
4.如果F4对应的A4单元格,与上一格A3不相同,且,下一格A5=A4,下下格A6=A5,下下下格A7=A6,则输出换行符CHAR(10) 和 E7内容,否则,输出“空值”。
下拉“自动填充”,结果如下图所示:
最后,用Excel筛选功能,选中F列空白部分删除相应行即可。