Excel实现相邻列两两分组无重复拼接的公式咨询
Excel实现相邻列两两分组无重复拼接的公式咨询
嗨,我来帮你搞定这个Excel数据拼接的需求~
你的需求是把原始表格里的相邻两列数据两两拼接成新单元格,而且每一组用完后跳过下一组(也就是1&2、3&4、5&6、7&8这样的分组,不会重复使用任何一列),对吧?下面分两种Excel版本给你对应的解决方法:
方法一:Excel 365/2021(支持动态数组)
如果你的Excel是较新版本,直接用动态数组公式就能一次性生成整行结果,不用逐个单元格拖动:
假设你的原始数据在A1:H2区域,在空白单元格(比如J1)输入以下公式:
=BYCOL(WRAPROWS(A1:H2,2),LAMBDA(x,CONCAT(x)))
公式解释:
WRAPROWS(A1:H2,2):把每行的8个数据拆分成每2个一组的小集合BYCOL(...,LAMBDA(x,CONCAT(x))):逐个遍历这些分组,用CONCAT把每组的两个数值拼接成一个字符串
输入后公式会自动填充整行的结果,下拉就能生成第二行的内容,完全符合你想要的输出效果。
方法二:旧版本Excel(不支持动态数组)
如果你的Excel是旧版本,可以用两种方式实现:
直接指定列拼接:
在J1单元格输入:=CONCAT(A1,B1),L1输入=CONCAT(C1,D1),N1输入=CONCAT(E1,F1),P1输入=CONCAT(G1,H1),然后把这些公式下拉到第二行即可。可拖动的通用公式:
在J1单元格输入以下公式,然后横向拖动就能依次生成所有分组的拼接结果:
=CONCAT(INDEX(A1:H1,1,(COLUMN(A1)-1)*2+1),INDEX(A1:H1,1,(COLUMN(A1)-1)*2+2))
公式解释:
(COLUMN(A1)-1)*2+1:通过列号计算出每组第一个数的列位置(第一组是1,第二组是3,以此类推)(COLUMN(A1)-1)*2+2:对应每组第二个数的列位置(第一组是2,第二组是4,以此类推)INDEX定位到对应单元格,再用CONCAT拼接成字符串
备注:内容来源于stack exchange,提问作者Sumara
相关产品推荐
相关产品推荐

