【GAS】スプレッドシートの重複行を削除する(removeDuplicates)

GASremoveDuplicates,スプレッドシート

GAS(Google Apps Script)でスプレッドシートの重複している行を削除する方法をご紹介します。

スプレッドシートの重複を削除する方法

基本構文

Range.removeDuplicates()

スプレッドシートの重複している行を削除するにはRangeクラスのremoveDuplicatesメソッドを使います。下記のような条件は区別せずに重複しているとみなして削除されます。

重複判定時に区別しない条件

大文字小文字

  • 大文字小
  • 関数や数式による結果かどうか
  • 書式
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = sheet.getDataRange();

  range.removeDuplicates();

範囲を指定して重複削除する

Rangeクラス取得段階で範囲を指定します。下記では同じ例で3行目~6行目に絞って絞り込みを行っています。

  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = sheet.getRange('A3:A6');

  range.removeDuplicates();

複数条件で重複削除する

下記の複数列を持つデータを想定して複数条件で重複削除を行います。

デフォルトではすべての列の値が一致する行が削除される

引数を何も指定せずにremoveDuplicatesメソッドを適応すると、すべての列の値が重複する行が削除されます。

  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = sheet.getDataRange();

  range.removeDuplicates();

列を指定して重複判定するには引数で列番号を指定する

Range.removeDuplicates([1, 2, …n])

重複判定対象にしたい列を指定したい場合、列番号の配列を引数にします。

1列目を指定

  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = sheet.getDataRange();

  range.removeDuplicates([1]);

1列目と2列目を指定

  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = sheet.getDataRange();

  range.removeDuplicates([1, 2]);

まとめ

GASでスプレッドシートの行を重複削除する方法をご紹介しました。

  • スプレッドシートの重複削除するには、Range.removeDuplicates()を使う
  • 引数になにも指定しなければすべての列の値が一致条件となる
  • 特定の列を条件にしたい場合は配列で列番号を指定する

この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点