
スプレッドシートを使用してデータを管理していると、重複データが発生することがあります。重複データを適切に削除しないとデータ分析の精度が下がったり、誤った結論を導き出す原因になったりします。本記事ではGoogle スプレッドシートやExcelを使用して、重複データを効率的に削除する方法を詳しく解説します。
スプレッドシートで重複データを削除する方法
Google スプレッドシートには、重複を削除するための標準機能が備わっています。
データの重複を削除する基本手順
Google スプレッドシートを開く
重複削除したいデータ範囲を選択
「データ」メニューを開く
「データクリーンアップ」→「重複を削除」オプションを選択
重複をチェックする列を選択し「削除」をクリック
完了メッセージが表示されたら確認
この方法で簡単に重複行を削除できます。
スプレッドシートで行ごとの重複を削除する方法
重複を含む行を削除する(すべての列を考慮)
データ全体で完全に重複している行を削除したい場合は以下の手順を実行します。
1.データ範囲を選択
2.「データ」→「重複を削除」
3.すべての列をチェックして実行
この方法ではすべての列の値が同じ行が削除対象になります。
特定の列を基準に行を削除する
特定の列の値が重複している行のみを削除したい場合は以下の手順を実行します。
1.削除対象の列を選択
2.「データ」→「重複を削除」
3.選択した列だけを基準に削除
例えば「名前」列を基準に重複を削除すれば、同じ名前がある行の2つ目以降のデータが削除されます。
別シートのデータから重複を削除する方法
Google スプレッドシートでは別シートのデータを処理することも可能です。
QUERY関数を使用する
=QUERY(シート1!A:B, "SELECT A, B WHERE A IS NOT NULL GROUP BY A, B", 0)
この方法を使うとシート1から重複を除外したデータを取得できます。
UNIQUE関数を使用する
=UNIQUE(シート1!A:B)
この方法でも別シートの重複を排除できます。
スクリプトを使って自動的に重複を削除する
Google Apps Scriptを使って自動的に重複を削除するスクリプトを作成することもできます。
スクリプトの記述方法
Google スプレッドシートを開く
「拡張機能」→「Apps Script」を開く
以下のスクリプトを記述
function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var uniqueValues = [];
var seen = {};
for (var i = 0; i < values.length; i++) {
var row = values[i].join();
if (!seen[row]) {
uniqueValues.push(values[i]);
seen[row] = true;
}
}
sheet.clearContents();
sheet.getRange(1, 1, uniqueValues.length, uniqueValues[0].length).setValues(uniqueValues);
}
「実行」ボタンを押してスクリプトを実行
これによりスプレッドシート上の重複データが自動的に削除されます。
他にもOfficeソフトに関する記事を上げています。是非色々見てみてください。