Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 联接结果的长度超过50000个字符的限制_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 联接结果的长度超过50000个字符的限制

Google apps script 联接结果的长度超过50000个字符的限制,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我试图将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)

我试图将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中得到这些错误

联接的文本结果超过50000个字符的限制
报告的文本结果超过32000个字符的限制

我用一个较小的列表测试了这一点:

a b c 1 2 
合并两个单元格后,我的列表生成了这个:

a 1
a 2
a 3
b 1
b 2
b 3
但是我正在合并的列表在每一列中都有更多的文本

关于如何组合我的列表,如上图所示,但A列有132种可能性,B列有52种可能性,有什么建议吗


每行文字长度在70到150个字符之间。

进入菜单
工具→ 脚本编辑器…

粘贴此代码:

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;
}
函数交叉连接(arr1、arr2、delim){
delim=delim | |'';
var结果=[];
var行=[];
对于(变量i=0;i
保存项目

将其用作电子表格中的常规功能:

=交叉连接(A1:A132,B1:B52)

可选使用delimeter:


=交叉连接(A1:A132,B1:B52,“-”

这很有效!!!!!!!!!!非常感谢你!!!!这节省了我很多时间。如果我使用的是一个小数据集,我使用的原始公式是有效的。但我把这个放进去,拿到了6000多件物品。你太棒了。