web-dev-qa-db-ja.com

Googleスプレッドシートのクエリですべての値が表示されるわけではありません

次のクエリ式を持つGoogle Sheetがあります。

=QUERY('Contact Changes'!B1:T,"SELECT C,D,E,F,G,H,I,J,K,L,M,N,O,R,S WHERE T='RMT'")

TRMTでフィルタリングすると、ソースシートに次の結果が表示されます。したがって、Query式でも同じ結果が得られるはずです。

enter image description here

ただし、列Lは、テキスト値の場合、フィールド値を表示しません。 enter image description here

J126(都市の列)を見ると、isが正しく表示されているasdfの値を確認できます。結果H2。ただし、L126の同じ値は結果L2に表示されません。この列に表示する値を取得する唯一の方法は、数値を入力することです。

私が持っています:

  • 列のデータ形式を確認しました
  • Queryの列を削除して再度追加してみました
  • 列の順序を変更する
  • 別の列に同じ値を入力します(結果に表示されます)
  • 同じ列に値を手動で再入力します(結果には表示されません)

明らかな何かが欠けていますか?他に何を試すことができますか?

6
davids

Googleスプレッドシートqueryは、列ごとに1つのデータ型のみを受け入れ、自動的に検出します。

  • colにさらに税値が含まれている場合:テキストを返します
  • colにさらに数値が含まれている場合:数値を返します。

私は2つの回避策で同じ問題を解決しました:

  • filterを使用するか、filterqueryと組み合わせます
  • 余分な列を作成し、任意の文字を処理してすべての値をテキストに変換してから、それを取り除きます。

https://support.google.com/docs/answer/3093343?hl=en

単一の列に混合データ型がある場合、大多数のデータ型がクエリの目的で列のデータ型を決定します。少数派のデータ型はnull値と見なされます。

8
Max Makhrov

Maxの貢献に加えて、データを前処理してすべてテキストに変換し、クエリをこの出力にラップすることもできます。何かのようなもの

=QUERY(ArrayFormula(TO_TEXT('Contact Changes'!B1:T)),"SELECT Col3, Col4,    Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12, Col13, Col14, Col17, Col18 WHERE Col19='RMT'")
6
JPV

以前も同じ問題がありましたが、今日は列全体を「プレーンテキスト」にフォーマットしようとしましたが、完全に機能しました。

もう問題はなく、すべての値が表示されます。

3

役立つと思われる人のために、フィルターとクエリを組み合わせる例:

=QUERY(FILTER('Original Statement'!A:Z, 'Original Statement'!A:A = "Trades"), "select *")
0
Peter Berg