我正在尝试组合 A 列中的文本并将其与 B 列的每种可能性相匹配。我使用了以下公式:
in C1:
=transpose(split(join("", arrayformula(rept(filter(A1:A, len(A1:A))&char(9999), counta(B1:B)))), char(9999)))
in D1:
=transpose(split(rept(join(char(9999), filter(B1:B, len(B1:B)))&char(9999), counta(A1:A)), char(9999)))
但是当我在列表中使用它时,我分别在 C1 和 D1 中收到这些错误;
JOIN 的文本结果长度超过 50000 个字符的限制
REPT 的文本结果长度超过 32000 个字符的限制
我用一个较小的列表对此进行了测试:
a b c 1 2
并设法让我的列表在组合两个单元格后生成此列表:
a 1
a 2
a 3
b 1
b 2
b 3
但我要合并的列表的每一列中都有更多的文本。
关于如何组合我的列表(如上所示,但 A 列有 132 种可能性,B 列有 52 种可能性)有什么建议吗?
每行包含 70 到 150 个字符的文本。
转到菜单Tools → Script Editor...
粘贴此代码:
function crossJoin(arr1, arr2, delim) {
delim = delim || '';
var result = [];
var row = [];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr2.length; j++) {
row = [];
row.push('' + arr1[0,i] + delim + arr2[0,j]);
result.push(row);
}
}
return result;
}
保存项目。
将其用作电子表格中的常规函数:
=crossJoin(A1:A132,B1:B52)
可以选择使用分隔符:
=crossJoin(A1:A132,B1:B52, "-")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)