借助分类汇总功能可过渡实现对不规则区域进行合并单元格的批量操作,如下图中将 A 列转成 D 列,如果除了将单元格合并以外,还要合并内容,如下图中的将B列转换成 E 列,此法就行不通了。

一个比较见到你的方法就是借助公式生成如下图 DE 两列的结果,之后再用《》中描术的方法处理,可以达到目的:

E2 单元格里的公式是:

=PHONETIC(OFFSET(B$1,MATCH(D2,A$2:A$10,),,COUNTIF(A:A,D2)))

E 列其他单元格的公式由上述公式向下填充完成。

E2 公式中的 Match 部分(MATCH(D2,A$2:A$10,))用于查找“甲”在整个 A 列中第一次出现的位置。当公式下拉至第五行时,就变成了查找“乙”在整个 A 列中第一次出现的位置。其他类推。

E2 公式中的 CountIf 部分(COUNTIF(A:A,D2))是用于计算 A 列中一共有多少个“甲”。当公式下拉至第五行时,就变成了计算 A 列中一共有多少个“乙”。其他类推。

E2 公式中的 Offset 部分(OFFSET(B$1,MATCH(D2,A$2:A$10,),,COUNTIF(A:A,D2)))就是获取指定单元格区域:即,从 B1 单元格开始,向下偏移至“甲”在 A 列中第一次出现的位置,向右不偏移,生成一个新的单元格区域里的行数等同于 A 列中“甲”的个数,也就是 B2:B4 这个区域。当公式下拉至第五行时,就变成了 B5:B8 这个区域,其他类推。

最后用 Phonetic 合并内容。Phonetic 函数用法特殊,并非像帮助中所描述的那样,详见《用于合并内容的函数》。

在具体操作的过程中,因为合并后的单元格只能看到最左上角的一个,所以 E2 的公式还可以简化成:

=PHONETIC(OFFSET(B2,,,COUNTIF(A:A,D2)))

如下图所示:

公式中用到的函数如下:

PHONETIC函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值

OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。

MATCH函数返回指定数值在指定数组区域中的位置

Countif函数是对指定区域中符合指定条件的单元格计数的一个函数

效果如何自己爬进单元格试下吧^_^