次のクエリ式を持つ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'")
列T
をRMT
でフィルタリングすると、ソースシートに次の結果が表示されます。したがって、Query
式でも同じ結果が得られるはずです。
ただし、列L
は、テキスト値の場合、フィールド値を表示しません。
J126
(都市の列)を見ると、isが正しく表示されているasdf
の値を確認できます。結果H2
。ただし、L126
の同じ値は結果L2
に表示されません。この列に表示する値を取得する唯一の方法は、数値を入力することです。
私が持っています:
Query
の列を削除して再度追加してみました明らかな何かが欠けていますか?他に何を試すことができますか?
Googleスプレッドシートquery
は、列ごとに1つのデータ型のみを受け入れ、自動的に検出します。
私は2つの回避策で同じ問題を解決しました:
filter
を使用するか、filter
をquery
と組み合わせますhttps://support.google.com/docs/answer/3093343?hl=en
単一の列に混合データ型がある場合、大多数のデータ型がクエリの目的で列のデータ型を決定します。少数派のデータ型はnull値と見なされます。
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'")
以前も同じ問題がありましたが、今日は列全体を「プレーンテキスト」にフォーマットしようとしましたが、完全に機能しました。
もう問題はなく、すべての値が表示されます。
役立つと思われる人のために、フィルターとクエリを組み合わせる例:
=QUERY(FILTER('Original Statement'!A:Z, 'Original Statement'!A:A = "Trades"), "select *")