【決定版】スプレッドシートでデータ整理!FILTER・SORT・UNIQUE関数の使い方と活用術

SORT関数 重複を削除するUNIQUE関数 Googleスプレッドシート
記事内に広告が含まれています。
スポンサーリンク

「数千行ある名簿から、特定の条件の人だけを抜き出したい」「売上順に並べ替えたいけれど、元の表の順番は変えたくない……」そんな悩みはありませんか?

Googleスプレッドシートの「FILTER」「SORT」「UNIQUE」をマスターすれば、こうしたデータ加工はすべて自動。まるで魔法のように、あなたが欲しいデータだけが整理された状態で表示されます。

ボタン操作による並べ替えも便利ですが、「関数」を使う最大のメリットは、元のデータを書き換えても抽出結果が自動で更新されることにあります。この記事では、初心者の方でも今日から実務に組み込めるよう、これら3つの関数の基本から「エラーを出さないコツ」までを徹底解説します!

スポンサーリンク

FILTER関数

基本的な使い方

構文=FILTER(範囲, 条件1, [条件2, …])

ソース範囲をフィルタ処理して、指定した条件を満たす行または列のみを返します。

出典:Google ドキュメント エディタ ヘルプ FILTER

範囲を選択して、指定した条件に合う行または列を表示させます。「FILTER関数」のポイントは、単一の行や列ではなく、複数の行や列を表示させることが出来るところにあります。実際にどのように使うかは以下で詳しくご説明させて頂きます。

実際の使い方

FILTER関数、使い方

12月の売り上げ表から、佐藤さんが購入した商品等の情報をすべて表示させます。数式は以下になります。

=FILTER(A2:F20,B2:B20=H2)

「A2:F20」で選択範囲を指定して、「B2:B20」の列の中で、「H2」に合う行を表示させています。

ここで注意して頂きたいのは、「FILTER関数」は、「見出し」を含むことが出来ないので、日付や購入者と書かれた部分が必要であれば、ご自身でコピーアンドペーストして追加するようにしてください。選択範囲を「A1:F20」と入力するとエラーになってしまいますので注意が必要です。また「H2」は、「”佐藤”」と文字列にしても同じ結果が表示されます。

応用編

FILTER関数、使い方

「FILTER関数」は単一の条件だけではなく、複数の条件を指定することも可能です。先程の条件に、10000円以上という条件を追加してみました。数式は以下になります。

=FILTER(A2:F20,B2:B20=H12,D2:D20>=10000)

先程の数式の後に、「 ,D2:D20>=10000 」を追加しています。最初に表示されていた、「シャツ8800円」の列が消えています。

FILTER関数」で間違いやすいポイントが、選択範囲の行番号(数字)は同じである必要があるということです。ここでは、「 A2:F20」、「B2:B20」、「D2:D20」 のように、セルの「」は違っても、「」はすべて同じになっています。「」が1つでも違うとエラーになりますので注意して利用してください。

上級テクニック

先ほど、「見出しはコピー&ペーストする必要がある」と記載させて頂きましたが、この問題を一気に解決する方法があります。「見出しとFILTERの結果を結合させて一気に表示させる方法」をご紹介させて頂きます。

見出しとFILTERの結果を結合させて一気に表示させる方法

数式は以下になります。

={A1:F1; FILTER(A2:F20,B2:B20=H2)}

この場合、見出しが A1:F1 にあり、データが A2:F20 にあります。

この数式の仕組み

  • { }(中カッコ): 複数の範囲を一つのカタマリとして扱う「配列」の合図です。
  • A1:F1: 最初に表示させたい「見出し」の範囲です。
  • ;(セミコロン): データを「改行(縦に結合)」するという意味です。
  • FILTER(…): 2行目以降に流し込む抽出データです。

中カッコ内でのつなぎ方には2種類あります。用途に合わせて使い分けますが、今回のように「見出しの下にデータを並べる」場合はセミコロンを使います。横に並べる場合はカンマを使います。

使う時の注意点

1, 列数を合わせる 見出しが「AからFまで(6列)」なら、FILTERで抽出する範囲も必ず「6列」にする必要があります。列数がズレていると #VALUE! エラーになります。

  • OK: {A1:F1 ; FILTER(A2:F20, …)}(どちらも6列)
  • NG: {A1:E1 ; FILTER(A2:F20, …)}(5列と6列でズレている)

2, データがない時のエラー対策 FILTER関数は、条件に合うデータが1件もないと #N/A エラーを返します。このとき、中カッコを使っていると見出しまで消えてエラー表示になってしまいます。 これを防ぐために、以下のように IFERROR 関数と組み合わせるのがプロの書き方です。

={A1:F1; IFERROR(FILTER(A2:F20, B2:B20=”佐藤”), “該当データなし”)}

スポンサーリンク

SORT関数

基本的な使い方

構文=SORT(範囲, 並べ替える列, 昇順, [並べ替える列2, 昇順2, …])

指定した配列または範囲の行を、1 列または複数の列の値に従って並べ替えます。

出典:Google ドキュメント エディタ ヘルプ SORT

範囲を選択して、昇順、または降順で並べ替えます。

  • 昇順:TRUE
  • 降順:FALSE

実際にどのように使うかは以下で詳しくご説明させて頂きます。

実際の使い方

SORT関数使い方

12月の売り上げ表から、合計の売上金額順に並び替えています。数式は以下になります。

=SORT(A2:F20,6,FALSE)

A2:F20」で範囲を指定して、「6」で列を指定しています。並び替えは昇順にしていますので、「FALSE」が入ります。列は、範囲を指定しても同じ結果が表示されます。(この場合は、F2:F20)

なお、条件を追加して計算することも可能です。この表では単価も考慮した並び替えを指定すると、合計の売上金額が同額の場合、単価の高い順や低い順で並び替えることも可能です。

=SORT(A2:F20,6,FALSE,4,FALSE)

単純な並び替えの場合

データからの並び替え

単純に表の並び替えを行う場合は、「SORT関数」を使うよりも、データの並び替えを使ったほうが簡単です。並び替える列のセルを選択して、メニューバーから「データ」→「シートを並び替え」→「昇順または降順」を選択します。

データからの並び替え

降順」を選択すると、合計の売上金額が大きい順に並べ替えられました。

応用編

先ほどSORT関数の使い方として、「=SORT(A2:F20,6,FALSE)」とご紹介しました。この中で第2引数(並べ替える列)を「6」としました。これは指定した範囲の左から数えて「6番目の列」という意味です。この記載方法はある意味わかりやすく、簡単な表や今後変更することのない表には有効な方法なのですが、今後表に編集を加えたりする場合は、問題が発生する場合があります。

例えば、「担当者と商品の間に、『商品コード』という列を1列挿入したい」となった時、どうなるのでしょうか?

  • 元の「売上合計」は、左から数えて7番目に移動してしまいます。
  • しかし、数式の「6」はそのままなので、新しく入った「単価」などの別の列を基準に並べ替えられてしまうのです。

これが「数式が壊れる(意図した結果にならない)」という状態です。このようなことにならないようにするために「列全体を範囲指定」する方法があります。

=SORT(A2:F20, F2:F20, FALSE)

この書き方のすごいところは、列を挿入してもスプレッドシートが自動で数式を書き換えてくれる点です。

  • 列を1列挿入すると、F列だった「売上合計」はG列に移動します。
  • このとき、スプレッドシートは賢いので、数式を自動的に =SORT(A2:G20, G2:G20, FALSE) に更新してくれます。

結果として、列が増えても減っても、常に「売上合計」を基準に並べ替え続けてくれるのです。メンテナンス性が格段に上がりますので、ぜひこの数式を使うように心がけてください。

UNIQUE関数

基本的な使い方

構文=UNIQUE(範囲)

重複する行を破棄して、指定したソース範囲内の一意の行を返します。行はソース範囲内の先頭から順に返されます。

出典:Google ドキュメント エディタ ヘルプ UNIQUE

重複するデータを削除する関数になります。実際にどのように使うかは以下で詳しくご説明させて頂きます。

実際の使い方

UNIQUE関数、使い方

住所録から重複したデータを削除します。重複したデータは色を塗ってある2件、「佐藤一郎・佐藤二郎」になります。数式は以下になります。

=UNIQUE(B3:G18)

数式はとてもシンプルで、範囲を選択するだけになります。

UNIQUE関数を使わないで重複を削除する

データからの重複を削除

重複の削除」は、「UNIQUE関数」を使わないでも削除することが出来るようになっています。

表の範囲を選択したら、メニューバーから「データ」→「データ クリーンアップ」→「重複を削除」を選択します。

データからの重複を削除

分析する列を指定します。選択が終わったら、「重複を削除」をクリックします。

データからの重複を削除

ここでは重複が2行見つかったと表示しています。そのまま「OK」をクリックします。

データからの重複を削除

重複していた「行」が無事削除されました。

UNIQUE関数」を使うか、「データ→重複を削除」を使うかは、元のデータが必要か不要かによって使い分けるのが良いかと思います。

マスターが教える「プロの時短」Tips

エラー「#REF!」への対策:これらの関数は「結果を書き出す先にすでに文字が入っている」と、展開できずにエラー(#REF!)になります。「関数の右側と下側は空けておく」という鉄則を覚えておきましょう。

関数のネスト(組み合わせ): 「=SORT(FILTER(A:F, B:B=”佐藤”), 6, FALSE) のように、FILTERの結果をさらにSORTにかけることができます。これができるようになると、スプレッドシートの活用レベルが一気に跳ね上がります!」

ワイルドカードの活用: 「FILTER関数でも『*(アスタリスク)』は使えますが、少し特殊な書き方(REGEXMATCH関数などとの併用)が必要です。まずは完全一致から慣れていきましょう。」

「データクリーンアップ」との使い分け: 「一時的にデータを整理して終わりならメニューの『重複を削除』、常に最新のデータを表示し続けたいなら『UNIQUE関数』。この使い分けが、管理しやすいシート作りのコツです。」

スポンサーリンク

まとめ

お疲れ様でした!データ抽出・並べ替え・重複削除という、スプレッドシートで最も頻繁に行われる作業を自動化する3つの関数をご紹介しました。

  • 条件に合うものだけ抜きたいなら、FILTER関数
  • データの順番を入れ替えたいなら、SORT関数
  • ダブりをなくしてスッキリさせたいなら、UNIQUE関数

これらを組み合わせれば(例えば、UNIQUEで重複を消した後にSORTで並べ替えるなど)、手作業では不可能なスピードと正確さでレポートを作成できます。

「関数でやるか、メニューボタンでやるか」の基準は、「その作業を明日も繰り返すかどうか」です。一度数式を組んでしまえば、明日からのあなたの作業時間はゼロになります。ぜひ、ご自身のシートでその快感を味わってみてください!

今回も最後までお読みいただき、ありがとうございました。

コメント