スプレッドシートで大量のデータを扱っていると、同じ内容の行が複数含まれていることに気づくことがあります。重複データは集計結果を歪めたり、リストの見通しを悪くしたりする原因です。この記事では、重複データを簡単に削除し、ユニークな値だけを抽出する方法を3つ紹介します。データメニューの標準機能、UNIQUE関数、QUERY関数を使った方法を、手順を追って解説します。
【要点】重複削除とユニーク値抽出の3つの方法
- データメニューの「重複を削除」: 選択範囲内の重複行を削除し、ユニークな行だけを残します。元のデータを直接書き換えるため、簡単な操作で完了します。
- UNIQUE関数: =UNIQUE(範囲) と入力するだけで、重複を除いた値の一覧を自動生成します。元データを変更せず、結果が自動更新されます。
- QUERY関数のDISTINCT句: =QUERY(範囲,”select distinct A,B”) のように使い、複数列の組み合わせでユニークな行を取得します。条件付き抽出にも対応できます。
ADVERTISEMENT
目次
ユニーク値抽出とは?そのメリットと基本概念
ユニーク値抽出とは、データの中から重複する行や値を排除し、一度だけ出現する値だけを取り出す操作です。例えば、顧客リストから重複する登録を除いて一意の顧客だけを表示したり、商品コードのリストから重複コードを削除して在庫リストを整理したりする場面で役立ちます。重複データをそのままにしておくと、集計関数でカウントが増えたり、グラフが不正確になったりする原因となります。ユニーク値抽出はデータクレンジングの基本であり、正確な分析やレポート作成のために欠かせない作業です。
重複データを削除する3つの方法
データメニューの「重複を削除」を使う方法
最も直感的な方法は、メニューから重複削除を実行する方法です。元のデータ範囲を直接加工します。手順は以下のとおりです。
- 削除したい範囲を選択する
重複を削除したいデータが含まれるセル範囲を選択します。列全体や複数列も選択できます。 - 「データ」メニューを開く
上部メニューバーから「データ」をクリックし、表示されるメニューの中から「重複を削除」を選択します。 - 削除条件を設定する
ダイアログで「見出し行として使用する」チェックボックスを必要に応じてオンにします。また、重複を判定する列を選択します。複数列を選ぶと、それらの列の組み合わせがすべて一致する行が重複とみなされます。 - 「重複を削除」をクリックする
設定を確認してボタンをクリックすると、重複行が削除され、ユニークな行だけが残ります。削除された行数がメッセージで表示されます。
注意点として、この操作は元のデータを直接変更します。戻す場合はCtrl+Zで元に戻せますが、重要なデータの前にはコピーを取ることをおすすめします。
UNIQUE関数を使う方法
UNIQUE関数は、指定した範囲から重複を除いたユニークな値を新しい場所に出力します。元データを変更せず、結果が自動的に更新されるため、動的なリスト管理に適しています。
- 結果を表示したいセルを選択する
ユニーク値を出力したいセルをクリックします。十分な空きスペースがあることを確認してください。 - UNIQUE関数を入力する
=UNIQUE(範囲) と入力します。範囲には重複を除去したいセル範囲を指定します。例えば、A2:A100の重複を除く場合は=UNIQUE(A2:A100)と入力します。 - Enterキーで確定する
関数が実行され、隣接するセルにユニークな値のリストが自動的に表示されます。元のデータに変更があった場合、このリストも自動的に更新されます。
UNIQUE関数は単一列だけでなく、複数列の範囲にも対応します。複数列を指定すると、行単位で重複が判定され、ユニークな行が出力されます。また、SORT関数と組み合わせて=SO RT(UNIQUE(範囲))とすれば、並べ替えも同時に行えます。
QUERY関数を使って条件付きでユニーク抽出する方法
QUERY関数はSQLライクな構文でデータを操作できます。DISTINCTキーワードを使うと、選択した列の組み合わせがユニークな行だけを抽出できます。複雑な条件を指定したい場合に便利です。
- 結果を表示するセルを選択する
出力先のセルをクリックします。 - QUERY関数を入力する
=QUERY(範囲,”select distinct 列A, 列B where 列A is not null”,1) のように入力します。範囲はデータ全体、第2引数はSQLのSELECT文、第3引数は見出し行の有無です。 - Enterキーで確定する
指定した条件に基づいて、ユニークな行が抽出されます。例えば商品名と価格の組み合わせで重複を除きたい場合に有効です。
QUERY関数はDISTINCTの他に、WHERE句で条件を絞ったり、ORDER BYで並び替えたりできます。ただし、大量のデータを扱う場合はパフォーマンスに注意が必要です。
各方法の注意点とよくある失敗
データメニューを使うときの注意
「重複を削除」は元データを直接書き換えるため、元に戻せないリスクがあります。実行前にシートのコピーを作成するか、範囲を別の場所にコピーしてから操作すると安全です。また、見出し行がある場合は「見出し行として使用する」にチェックを入れないと、見出し自体が削除される可能性があります。
UNIQUE関数で意図しない結果になる場合
UNIQUE関数は空白セルも1つの値として扱うため、範囲に空白が含まれていると「空の値」が結果に含まれることがあります。これを防ぐには、FILTER関数と組み合わせて=UNIQUE(FILTER(範囲,範囲<>“”))のようにします。また、数式の結果は配列として出力されるため、出力先のセルに十分な空きがないとエラーが出ます。
QUERY関数のDISTINCTで気をつけるポイント
QUERY関数のDISTINCTは、SELECT句で指定したすべての列の組み合わせに対してユニークを判定します。例えば「select distinct A,B」とすると、A列とB列の両方が一致する行だけが重複とみなされます。A列のみユニークにしたい場合は、UNIQUE関数の方が適しています。また、QUERY関数は大文字小文字を区別するため、文字列の重複判定に注意が必要です。
ADVERTISEMENT
3つの方法の比較表
| 方法 | 操作の手軽さ | 自動更新 | 元データの変更 | 応用の柔軟性 |
|---|---|---|---|---|
| データメニュー | 非常に簡単で直感的 | なし(手動再実行が必要) | 直接書き換える | 低い(条件設定は限定的) |
| UNIQUE関数 | 関数入力のみで簡単 | 自動で最新に更新 | 変更しない | 中程度(SORTなどと組み合わせ可能) |
| QUERY関数 | 構文を覚える必要あり | 自動で最新に更新 | 変更しない | 高い(WHERE, ORDER BY, LIMITなど) |
まとめ
この記事では、スプレッドシートで重複データを削除しユニークな値だけを抽出する3つの方法を解説しました。データメニューの標準機能は手軽ですが元データを書き換えるため注意が必要です。UNIQUE関数は動的な更新が可能で、QUERY関数は複雑な条件に対応できます。用途に応じて適切な方法を選び、効率的にデータをクレンジングしてください。次に、SORT関数やFILTER関数と組み合わせてさらに高度なデータ整形に挑戦してみましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
