如果Excel版本够高,不妨用这个函数将每n行合并到一个单元格中

Excel学习世界 2023-12-07 21:06:49

之前教了大家如何用 PQ 将一列表格以每三行合并一个单元格的规则,转换成一个新的表。如果有 Microsoft 365 版本的同学,也可以使用高阶函数来实现。

今天就教公式解法。

案例:

将下图 1 中的姓名按以下要求转换:

每三行姓名合并到一个单元格中;

姓名之间以“、”隔开

效果如下图 2 所示。

解决方案:

1. 在 C2 单元格中输入以下公式 --> 下拉复制公式:

=TEXTJOIN("、",1,OFFSET($A$1:$A$19,ROW(A1)*3-2,0,3))

公式释义:

OFFSET($A$1:$A$19,ROW(A1)*3-2,0,3):

offset 函数的作用是返回指定的行列区域;

语法为 OFFSET(要引用的区域, 偏移的行数, 偏移的列数, [返回的高度], [返回的宽度]);

本公式表示在 $A$1:$A$19 偏移 ROW(A1)*3-2 行;第一行的公式中,row(a1)=1,公式结果是 1;第二行公式时,row(a2)=2,公式结果为 2*3-2=4,即偏移到第 4 行;随着公式下拉,实现了每一次偏移 +3 行;

第二个参数 0 表示列不需要偏移;

第三个参数 3 表示总共引用 3 行;

TEXTJOIN("、",1,...):用 TEXTJOIN 将上述公式的结果联接起来,中间用“、”分隔,第二个参数 1 表示忽略空白单元格

* 请注意:公式中的区域 $A$1:$A$19 要绝对引用。

0 阅读:9

Excel学习世界

简介:Excel 学习交流