見出し画像

【Spreadsheet】FILTER関数を使って、空欄ではないセルの値だけ表示させる

こんにちは。データ好きマーケティングディレクターのmaycotです。
Spreadsheet上でフィルタリングする際は、もっぱらQuery関数やフィルタ機能を使っています。そのため今までFILTER関数を使ったことがなかったのですが、今回は、行ではなく列から空欄ではないセルの値だけを表示させるため、FILTER関数に活躍いただきました。

問題のスプレッドシート

オンラインサーベイの回答結果をスプレッドシートに出力しました。
設問の一つはカテゴリを選ぶもの。「大項目」という分岐設問を設定し分岐内容ごとに、「中項目」の選択肢から選択させています。
食べ物で例えると、大項目で「主食」「野菜」「肉・魚」があり、「主食」を選択すると中項目として「ごはん」、「パン」、「麺」が表示され、そのうちの一つを選択してもらうという設計。

この設問の結果のスプレッドシートを出力すると、大項目は縦一列に並ぶが、分岐後の中項目の回答が大分類の列ごとに入力されてしまいました。具体的には次の図のような感じです。

画像1
図 大項目と中項目の回答結果

やりたいこと

B列に「大項目」の回答、C列に「中項目」の回答が表示されるようにしたい。「中項目」の回答の列は、その分類に対する回答がないと空欄になっている。このため、中項目の回答が入力されている列から、空欄ではないセルの値をC列に表示させればよい。

解決方法

①中項目の回答を表示する列を作る
C列を「中項目」という列を挿入(黄色い部分)。

画像2
中項目列を挿入

②FILTER関数を使ってD列以降の空欄ではないセルの値を表示させる
C2セルにFILTER関数を使ってD列以降の空欄以外の値を表示させるようにする。具体的には次のように書く。

=FILTER(D2:F2,D2:F2<>"")

FILTER関数の書き方:
=FILTER([配列],[条件])
「><“”」で「空欄ではない」という条件を指定することができる。

まとめ

リストは縦であることが多いですが、今回のように横に広がる(列)リストでもFILTERを使えば特定の条件だけ表示させるようにフィルタリングできました。
使ったことない関数を使ってみる機会があるって楽しいですね。


この記事が気に入ったらサポートをしてみませんか?