問題タブ [google-sheets-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1509 参照

arrays - Indirect で ArrayFormula を使用してシートを結合する

他のシートのデータを 1 つのシートに結合しようとしています。数式を使用して各シートの最後の行を見つけ、間接 ArrayFormula と組み合わせることができると思っていましたが、うまくいきません。

Indirect("ARRAYFORMULA({'Sheet1'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet1'!A1:A10000)), ROW('Sheet1'!A1:A10000),0)))& ";'Sheet2'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet2'!A1:A10000)), ROW('Sheet2'!A1:A10000),0)))})")

間接式と ArrayFormula の組み合わせは、エラーが発生するため、答えではないようです。間接式と配列式を一緒に実行することはできないようです。

編集:間接なしで上記の式を使用し、最後の空白行を見つけると、長い行範囲を保持するとシートが結合されますが、すべての空白行が保持され、各シートのデータが広がりすぎます。

これが、max arrayformula を使用して各シートの最後の行を見つけ、空白の行を統合しようとした理由です。

0 投票する
2 に答える
30184 参照

google-sheets - 次を含まないクエリ

同じドキュメント内の他の 3 つのクエリを実行し、列 G に含まれる一連の行を選択するシートがありますnoyes理想的には、 orという単語を含まないクエリであることをお勧めしますYes。次のメカニズムをすべて使用してみました。

  • そうでない場合 (G には「はい」が含まれます)
  • そうでない場合 (G には「es」が含まれます)
  • そうでない場合 (G は '[yY]es' に一致)
  • ここで、G には「いいえ」が含まれます

どちらを選んでも、次の 2 つの問題のいずれかに遭遇します。

問題番号 1 は、値が 1 つしか存在しないためにクエリの一部が失敗することです。つまり、はあるYesが がないためyes、出力は になり#VALUEます。これは、エンド ユーザーがシートに何を入力するかを制御できないため、両方のシナリオを許可しようとしているため、問題があります。

または、はるかに悪い問題番号2。具体的に言うと、 G に含まnoれる行の 1 つが含まれるすべてを選択すると、表示される行の 1 つが含まれますyes。これは他のメカニズムでも発生することに注意してくださいno

私が使用している完全なクエリは次のとおりです。

=ARRAYFORMULA({QUERY(Sheet1!A2:I500, "Select A, B, C, D, E, F, G, H, I where G contains 'no'");(QUERY(Sheet2!A2:I500, "Select A, B, C, D, E, F, G, H, I where G contains 'no'"));(QUERY(Sheet3!A2:I500, "Select A, B, C, D, E, F, G, H, I where G contains 'no'"))})

ここで何が間違っていますか?

0 投票する
1 に答える
9386 参照

google-sheets - 配列数式内で IFERROR を使用する方法は?

配列数式内のクエリのいずれかがヒットしている範囲内にクエリする実際のデータを持たない場合、それらは返さ#VALUE!れ、配列数式にマウスを合わせるとエラーが表示されます。これらのクエリを IFERROR でラップすると、同じ結果が得られます。

IFERROR でラップしたものを独自のセルに分割してクエリを検証すると、この場合は 0 であるエラー句が表示されます。

サンプルシートへのリンクです。

Sheet1 にはサンプル データがあります。
Sheet2 は、上記の問題をシミュレートするために意図的に空白にしています。
Sheet3 には、さまざまな状態の 3 つのクエリがあります。上の 2 つは、使用しようとしている配列数式です。一番下のクエリは、独自のセルに分割された IFERROR であり、残りの並べ替え (arrayformula(etc)) から分離されたときにクエリが実際に機能することを示しています。

0 投票する
2 に答える
8995 参照

google-sheets - 行の他のセルが値と一致する場合、セルをシートから別のシートにコピーします

私が望むのは、同じ行(異なる列)の別のセルがGoogleスプレッドシートに特定の値を持っている/持っている場合にのみ、あるシートから別のシートにセルをコピーすることです。

理想的には、これをライブにしたいと思います。最初のシートに行を追加して条件が一致すると、2 番目のシートも更新されます。次に例を示します。

したがって、この例では、私の基準は、行のセルが または のいずれかにColumn D等しい場合、その行のセルが2 番目のシートにコピーされることです。YesMaybeColumn A

0 投票する
2 に答える
4659 参照

google-sheets - QUERY で 2 つの時間の差を選択してください

Name (A)、startTime (B)、endTime (C) の 3 つの列を持つシートがあり、期間 ( endTime - startTime) を表示する Google Sheets QUERY を実行しようとしています。

問題は、QUERY がstartTimeとのendTime値を認識する方法にあるようです。

セルを次のようにフォーマットしました: 10:00AM, 4:30PM. 元のシートの同じ値をクリックすると、次のように表示されます10:00:00 AM, 4:30:00 PM

クエリを実行した後に値をクリックすると:

次のようになります1/1/1900 10:00:00, 1/1/1900 16:30:00

私が試してみました:

エラー:数値ではない値に対して関数差分を実行できません

エラー: Date または DateTime 値ではない値に対して関数 'dateDiff' を実行できません