GoogleスプレッドシートのQUERY関数では「WHERE ~ IS NULL」という表現が使えますが、これは空白セル(値がない)のほかに空文字列(長さ0の文字列)をも抽出します。その意味では「WHERE ~ =''」とするのと変わりません。
- WHERE関数の「IS NULL」は空白セルだけでなく空文字列をも抽出します。
手順
画像ではE2セルに下記の式を入力して、B2:C6の範囲にある表から条件にあてはまるものを(見出し列込みで)抽出しています。
E2セル
=QUERY(B2:C6,"WHERE B IS NULL",1)
抽出条件は「WHERE B IS NULL」となっているので、SQL的に考えれば空白セル(値がない)だけを抽出するように思えますが、実際は画像のように空文字列をも抽出します。
こちらは条件を「WHERE B IS NOT NULL」とした結果です。
やはり空文字列は抽出されず、長さ1以上の文字列だけが抽出されます。
では空白セルだけを抽出するにはどうするかですが、条件だけで解決するのは難しい模様です。例えば「MATCHES '^$'」でも上記と同じ結果にしかなりません。
例としては画像のようにして第1引数(データ範囲)に「空白セルかどうかの判定結果の列」を加える方法がありますが、式が長くなるのが難点です。
E2セル
=QUERY({B2:C6,ARRAYFORMULA(ISBLANK(B2:B6))},"SELECT Col1,Col2 WHERE Col3=TRUE",1)