【GAS】二次元配列と列番号を入れると重複を削除した二次元配列を返す。

当サイトではアフィリエイト広告を利用して商品を紹介しています。

みなさん、こんにちは!
そーちゃん(@black777cat)です。

今回は二次元配列と列番号を入れると重複を削除した二次元配列を返すコードの紹介です。

二次元配列と列番号を入れると重複を削除した二次元配列を返す。

/**
 * 二次元配列と列番号(※A列 = 1)を入れると、重複を削除した二次元配列を返す。
 * 
 * @param {obj} data - 二次元配列
 * @param {obj} indexArray - 検索する場所(配列で複数指定可)
 * @return {obj} uniqueValues - 検索結果
 */
function dataDeduplication(data,indexArray){

  const sheetName = 'list' //作業用のシートの名前を指定
  const SPREADSHEET_ID = '***********' //作業用スプレッドシートのIDを指定


  const spreadSheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(sheetName);

  spreadSheet.clearContents();
  spreadSheet.getRange(1,1,data.length,data[0].length).setValues(data);

  const range = spreadSheet.getDataRange();
  range.removeDuplicates(indexArray)
  const uniqueValues = spreadSheet.getDataRange().getValues();
  return uniqueValues

}

本当はスプレッドシートを使わずにコード内の配列のみで処理を行いたかったのですが、
どうにも難しく、一度シートに貼り付けて、スプレッドシートの機能で削除したあとに、再度シートからデータを取得して重複の削除を行っています。