所以我试图结合A列的文字并将其与B列的每种可能性相匹配。我使用了公式
在C1栏中:
=transpose(split(join("", arrayformula(rept(filter(A1:A, len(A1:A))&char(9999), counta(B1:B)))), char(9999)))
在第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
并设法让我的列表在组合2个单元格后生成它
a 1
a 2
a 3
b 1
b 2
b 3
但是我合并的列表在每个列中都有更多的文本
有关如何组合我的列表的任何建议,如上所示,但在A列中有132种可能性,在b列中有52种可能性。每行每行包含70到150个字符的文本。
任何帮助都将不胜感激。
答案 0 :(得分:2)
转到菜单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)
Optionaly使用分隔符:
=crossJoin(A1:A132,B1:B52, "-")