如何用公式或脚本实现Google Sheets中A列与B列全值拼接?
在Google Sheets中批量生成两列所有值的拼接组合
方法一:使用内置公式实现
如果你的Google Sheets支持CROSSJOIN函数(较新版本已支持),可以用以下简洁公式直接生成结果:
=ARRAYFORMULA(QUERY(CROSSJOIN(A1:A3, B1:B3), "select Col1&Col2"))
CROSSJOIN(A1:A3, B1:B3):生成A列和B列的笛卡尔积(所有两两组合)QUERY(..., "select Col1&Col2"):将笛卡尔积的两列值拼接ARRAYFORMULA:确保公式批量生效
如果你的版本不支持CROSSJOIN,可以用兼容版公式:
=ARRAYFORMULA(INDEX(A:A, CEILING(SEQUENCE(ROWS(A1:A3)*ROWS(B1:B3))/ROWS(B1:B3)))&INDEX(B:B, MOD(SEQUENCE(ROWS(A1:A3)*ROWS(B1:B3))-1, ROWS(B1:B3))+1))
原理:通过SEQUENCE生成总结果行数,用CEILING循环匹配A列值,MOD循环匹配B列值,最后拼接。
方法二:使用Google Apps Script自定义函数
如果公式满足不了需求,可通过脚本实现更灵活的拼接:
- 打开你的Google Sheets,点击菜单栏「扩展程序」→「Apps 脚本」
- 删除默认代码,粘贴以下脚本:
function CONCAT_ALL(rangeA, rangeB) { const result = []; // 遍历A列每个值 rangeA.forEach(rowA => { const valA = rowA[0]; // 遍历B列每个值,拼接后存入结果数组 rangeB.forEach(rowB => { const valB = rowB[0]; result.push([valA + valB]); }); }); return result; }
- 保存脚本(可命名为「ConcatAll」),回到表格
- 在任意单元格输入公式调用:
=CONCAT_ALL(A1:A3, B1:B3)
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

