GoogleスプレッドシートのFILTER関数は条件に該当する行を抽出するだけでなく、条件に該当する列を抽出することができます。
- FILTER関数で第2引数以降(条件)として行方向の配列を指定すれば、列が抽出されます。
手順
C2:G5の範囲にデータが並んでいます。
一般的なデータの配置と異なり、縦1列を1つのレコードとするデータとなっています。
ここでC7セルに次のように入力します。
C7セル
=FILTER(C2:G5,C4:G4="神奈川県")
意味合いとしては「住所が神奈川県である列を抽出する」というものになります。
「C4:G4="神奈川県"」と、行方向の配列に条件を設定しているのがポイントで、これではたして列が抽出できるのか気になりますが……
実際に列が抽出されます。
Googleスプレッドシートではレコード=行とみなす操作や設定が多いので見落としやすいですが、FILTER関数ではこのように列を抽出することもできます。
もっと端的な例です。
B4セルに次のように入力し、B2:G2のデータの列間の空白(空白セル及び空文字列)を詰めて表示しています。
B4セル
=FILTER(B2:G2,B2:G2<>"")
なお、ちょっとした応用として次のような例が挙げられます。
「抽出する列を指定する」という場合
本記事で紹介したのは「それぞれの列が条件を満たすか判定して抽出する」という例ですが、よくある別のニーズとして「基本的には条件を満たす行を抽出するものの、必要な列以外を除いて取得したい」というものがあります。これについては次の記事で紹介しています。