![見出し画像](https://assets.st-note.com/production/uploads/images/164893325/rectangle_large_type_2_a56a7433b088f1279cf880bdaa8042b6.png?width=1200)
【GAS講座】重複データ削除の自動化
スプレッドシートで重複データを手作業で削除していませんか?
繰り返し作業はミスが起きやすく、時間もかかります。
Google Apps Script(GAS)を使って重複データを簡単に削除する、
その方法を解説します。
※この記事は全編無料で読めます。
この記事で学べること
1. GASでスプレッドシートを操作する方法
2. 重複データ削除のスクリプト作成
3. 応用機能の追加アイデア
実際のイメージ
GASとは
GASはGoogleが提供するプログラム環境です。
スプレッドシートやGmailを操作して作業を自動化できます。
手順1:GASエディタを開く
1. スプレッドシート上部の「拡張機能」を選択。
2. 「Apps Script」をクリックしてエディタを開きます。
手順2:ソースコードを貼り付け
開いたときに書いてあるソースコードを削除してから、
下記のソースコードを貼り付けます。
function removeDuplicates() {
// シート名「メイン」を指定して取得
const sheetName = "メイン";
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
if (!sheet) {
// 指定したシートが存在しない場合のエラー処理
SpreadsheetApp.getUi().alert(`シート「${sheetName}」が見つかりません。`);
return;
}
// データ範囲を取得
const range = sheet.getDataRange();
const values = range.getValues();
// ヘッダーを切り出し
const headers = values[0];
const data = values.slice(1); // データ部分(2行目以降)
// 重複削除の基準列(例: 1列目を基準とする)
const columnIndex = 0; // 0は1列目、1は2列目、2は3列目...
// 重複を削除する
const uniqueData = [];
const seenKeys = new Set();
data.forEach(row => {
const key = row[columnIndex]; // 基準列の値を取得
if (!seenKeys.has(key)) {
uniqueData.push(row); // 重複していない場合はデータを保存
seenKeys.add(key); // キーをセットに追加
}
});
// シートをクリアしてデータを書き戻す
sheet.clear(); // 全データを削除
sheet.getRange(1, 1, 1, headers.length).setValues([headers]); // ヘッダーを書き戻し
sheet.getRange(2, 1, uniqueData.length, headers.length).setValues(uniqueData); // ユニークなデータを書き戻し
}
手順3:「メイン」シートを作成
今回のプログラムは「メイン」と名前のついたシートを対象に実行する仕組みなので、シート名を「メイン」に変更し、重複するデータを用意します。
手順4:スクリプトを実行
1. スクリプトエディタで「▶」をクリック。
2. 必要なアクセス権を許可します。
3. スプレッドシートを確認し、重複が削除されたことを確認してください。
応用編
例えば下記のような応用が考えられます。
列の選択を可能にする
バックアップを取る(元のデータを別のシートに保存してから処理)
処理完了後、Slackやメールで通知する、リアルタイム通知
まとめ
この記事では、GASを使ってスプレッドシートの重複データを自動削除する方法を解説しました。
まずは試してみて、GASの便利さを実感してください。
ここから先は
0字
¥ 100
期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?