Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Javascript 将多个单元格中的数据合并为一个单元格_Javascript_Google Apps Script_Google Sheets_Array Formulas_Google Sheets Custom Function - Fatal编程技术网

Javascript 将多个单元格中的数据合并为一个单元格

Javascript 将多个单元格中的数据合并为一个单元格,javascript,google-apps-script,google-sheets,array-formulas,google-sheets-custom-function,Javascript,Google Apps Script,Google Sheets,Array Formulas,Google Sheets Custom Function,我正在谷歌电子表格中整理一个相当长的电子表格。此电子表格包含有关产品的信息,如名称、品牌、零件号等。。。我以前得到过帮助,并得到了一些很好的解决方案,但我仍然受到限制 我想做的是根据其他单元格中的信息自动生成一个描述字段 我在“说明”列中使用的公式是=“品牌名”和“&A3&&&B3&&(联合(E3:G3,“x”)&&K3 joinVals(E3:G3,“x”)将包含长度(E)、宽度(F)和高度(G)的独立列连接在一起,并在值之间添加“x”。这就产生了exfxg 此脚本适用于上述公式 functi

我正在谷歌电子表格中整理一个相当长的电子表格。此电子表格包含有关产品的信息,如名称、品牌、零件号等。。。我以前得到过帮助,并得到了一些很好的解决方案,但我仍然受到限制

我想做的是根据其他单元格中的信息自动生成一个描述字段

我在“说明”列中使用的公式是
=“品牌名”和“&A3&&&B3&&(联合(E3:G3,“x”)&&K3

joinVals(E3:G3,“x”)
将包含长度(E)、宽度(F)和高度(G)的独立列连接在一起,并在值之间添加“x”。这就产生了exfxg

此脚本适用于上述公式

function joinVals( rangeValues, separator ) {
function notBlank(element) {return element != '';}

return rangeValues[0].filter(notBlank).join(separator);
}
然而,我不断得到这个错误

此Google用户帐户每秒调用的脚本次数太多

我想知道我是否可以作为一个数组来避免这个错误,因为这个文档包含1000多行

当一切都说了又做了,我想要达到的结果应该是这样的 “品牌名称”零件号(A)产品名称(B)尺寸(E x F x G)尺寸(K)

我应该运行数组脚本吗


非常感谢大家,这个论坛一直以来都是如此的有帮助

可以使用数组解决方案,但您必须在电子表格中更改许多公式的使用方式。最简单的解决方案是直接使用内置的电子表格公式。没有必要为此自定义应用程序脚本公式

="Brand Name"&" "&A3&" "&B3&" "&(join(" x ";filter(E3:G3;E3:G3<>"")))&" "&K3

正如我所说,在编写自定义应用程序脚本时,也可以使用这种
ArrayFormula
风格的解决方案。我只是认为,如果有(可以说)更简单的内置解决方案(但肯定更快、更大的配额),那么这就不值得了

数组公式解决方案,从第3行开始,仅当相应行的A列中有某些内容时,才会向下填充该列:
=ArrayFormula(if(LEN(A3:A),REGEXREPLACE(“Brand Name”&A3:A&&B3:B&&&REPT(E3:E&“x”,E3:E“”)&REPT(F3:F&“x”,F3:F“”)&REPT(G3:G&“x”,G3:G“”)&CHAR:9&&K3:K,”(x:t&“x:t)”,)。当我第一次看到你的公式时,我总是笑一笑。然后是几分钟的凝视,直到我明白。非常好的解决方案!我认为我的新手版本更具说教性:)AdamL工作完美。我还认为这也适用于
=“品牌名称”&“&A3&”&B3&“&IF(E3=”“,”,E3&“,”IF(和(F3=“”,G3=“”,”,“x”)&IF(F3=“”,”,F3&“,”IF(G3=“”,”x”),”IF(G3=“”,”G3&“)
你能解释一下
&CHAR(9)和“&K3:K”,“x\t”,”,)正在做什么吗,您的确实有效,但取决于行中是否有维度。一些严肃、快速、令人敬畏的回复!感到幸福。我是个新手,就像亚当写的公式一样(我的大脑冻结了)!hahaauser2970972,该公式在E:G列中存在的每个值后面都附加一个分隔符,然后在其后附加一个制表符(
CHAR(9)
)。然后,REGEXREPLACE搜索紧跟制表符的分隔符(如果该行的E:G中没有值,则搜索失败,仅搜索制表符本身),并将其删除。我希望这是有道理的。
=ArrayFormula(IF(LEN(A3:A),REGEXREPLACE("Brand Name "&A3:A&" "&B3:B&" "&REPT(E3:E&" x ",E3:E<>"")&REPT(F3:F&" x ",F3:F<>"")&REPT(G3:G&" x ",G3:G<>"")&CHAR(9)&" "&K3:K,"( x \t)|\t",""),))