web-dev-qa-db-ja.com

グーグルシートクエリで出力に空白の列を挿入する方法はありますか?

Sheet2から実行されたクエリについて考えてみます。

=query(Sheet!A7:A, "Select A,B,C where A='Order'")

しかし、これをSheet2の列A、E、Fに入れたいと思います。

回避策を見つけました

=query(Sheet!A7:A, "Select A,X,Y,Z,B,C where A='Order'")

ここで、XYZは範囲の終わりからの空白の列です。これは不格好なようです。

これまでのところ、Googleドキュメントのクエリ構文とGoogle製品フォーラムの両方での検索は非生産的でした。

5

空の列をリテラルとしてクエリに入れます-実際には空にすることはできませんが、このようなスペースを含める必要があります

=query(Sheet!A7:C, "Select A,' ',' ',' ',B,C where A='Order'")
6
ttarchala

ttarchalaの応答 のバージョンを試しましたが、次の場合は、空白の各列に異なる「署名」が必要でした。

=query(Sheet!A7:C, "Select A,' ',' ',' ',B,C where A='Order'")

引用符の1、2、および3スペースに注意してください。

これはうまくいきました-ある種。それは私に列A、次に3つの空白の列、次にBとCを与えました。しかし、それは私にヘッダー行を与えました(私の例では私は望んでいませんでした)、そして空白の列ヘッダーで私は得ました:

| " "() | " "() | " "() |

これは奇妙でしたが、理解できました。数式を1行上に非表示にし、AからCまでのセルを結合しました。これにより、素敵な空白のセルが残りました。 query()からの出力は、マージされたセル間で表示できないという事実を利用しました。

もちろん、これは非常に具体的な解決策です。出力の上に、この目的で使用および悪用できる空の行がありました。しかし、それがより良いアイデアの方向性を与える場合に備えて、とにかく言及したいと思いました。

[〜#〜]更新[〜#〜]

追加:

... LABEL ' ' '', ' ' '', ' ' ''

..クエリの最後に、追加された奇数ヘッダーをゼロにし、その余分な行の必要性を排除します。これは、 ''(1つのスペース)のラベルが何もない、 ''(2つのスペース)がない、などであることをクエリに通知します。これにより、ヘッダー行がなくなります

19
timepieces141

私の場合、0などのデフォルト値が必要な場合は、次のことができます。

=query(Sheet!A7:C, "Select A,0,1-1,2-2,B,C where A='Order'")

1
sojim2

私がチェックした答えは確かに私の元の質問に対する最良の答えですが、私はそれに問題がありました:

スキップされた列は空白である必要がありました。単一のクエリを使用して断続的な列にデータを入力する準備ができた方法はありませんでした。それらに何かを入れると、クエリが壊れて、そのセルの上書きを拒否します。

そのクエリの他の弱点に追加します。

  • 複雑な構文。
  • 内部スプレッドシートと外部スプレッドシートの参照の構文が異なる
  • Selectステートメント内で範囲名を使用できない
  • ソース構造の変更について脆​​弱です-列を追加すると、クエリは調整されません。
  • 結果全体を頻繁に計算するために作成されたソースフィールドのanyに依存している。

結局、同じ基準を使用してクエリを4つのフィルターステートメントに変換しました。

  • 結果が必要な列ごとに、名前付き範囲を定義しました。
  • フィルタごとに、名前付き範囲の観点から基準とソースを定義しました。

例えば。

=filter(COcode,COcount > 0,isNumber(COcount))
=filter(COcount,COcount > 0,isNumber(COcount))

各フィルターの二重基準は、「foo」が0より大きいという考えを持っているシートによるものです。直感的に明らかなものではありません。

0