1

Googleスプレッドシートでかなり長いスプレッドシートをまとめています。このスプレッドシートには、名前、ブランド、部品番号などの製品に関する情報が含まれています。以前に助けられ、いくつかの優れた解決策が提供されましたが、まだ制限に直面しています。

私がやろうとしているのは、他のセルの情報に基づいて説明フィールドを自動的に生成することです。

説明列で使用している式は="Brand Name"&" "&A3&" "&B3&" "&(joinVals(E3:G3," x "))&" "&K3

joinVals(E3:G3," x ")長さ (E) 幅 (F) 高さ (G) を含む別々の列を結合し、値の間に「x」を追加します。その結果、E x F x G

このスクリプトは上記の式で機能します

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

return rangeValues[0].filter(notBlank).join(separator);
}

ただし、このエラーが発生し続けます

この Google ユーザー アカウントに対して 1 秒間に呼び出されるスクリプトの回数が多すぎます。

このドキュメントには10​​00以上の行が含まれているため、エラーを回避するためにこれを配列として実行できるかどうか疑問に思っています。

最終的に達成したい結果は、次のようなものになるはずです 「ブランド名」 部品番号(A) 製品名(B) 寸法(E x F x G) サイズ(K)

ARRAY スクリプトを実行する必要がありますか?

皆様、どうもありがとうございました。このフォーラムはとても役に立ちました。

4

1 に答える 1

1

配列ソリューションを使用することは可能ですが、スプレッドシートで数式を使用する方法を大幅に変更する必要があります。最も簡単な解決策は、組み込みのスプレッドシート数式を直接使用することです。このためのカスタム Apps Script 式は必要ありません。

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

コメントでAdamLが示したように、ArrayFormula組み込みの数式のみを使用するソリューションを次に示します。

=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",""),))

前述したように、このような ArrayFormulaスタイルのソリューションは、カスタム Apps Script を作成するときにも使用できます。(おそらく)より単純な組み込みソリューションがある場合(ただし、確実に高速ではるかに大きなクォータ)がある場合、それだけの価値があるとは思いません。

于 2014-01-08T22:18:11.397 に答える