見出し画像

【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円分が当たる

この記事が気に入ったらチップで応援してみませんか?