【GAS】見出しを除くデータを配列として取得したい

GAS(Google Apps Script)を用いて、データのうち見出しを除く部分を配列として簡単に取得する方法を説明したいと思います。
使用するのは、getDataRange、getValues、sliceです。興味のある方はこちらの記事を見ていってくださいー。

記事を書いた人

こんにちは。当ブログの管理人の『くろん』です。
30代サラリーマン、新規事業推進室に所属。ブラック企業努め時代に身に着けた業務効率化ノウハウをアウトプットしていきます。
読んでくれた方の業務が一秒でも早く終わりますようにの精神で記事書いてます!!

スポンサーリンク
目次

見出しを除くデータを配列として取得

疑似個人情報データ生成サービスを用いてサンプルデータを作成しました。

このようなデータで、見出しをいれずに残った部分を配列に格納したい場合に、こちらのGASが使えます。

function myFunction() {
  // コンテナバインドされてるスプレッドシートを取得
  let spreadsheet1 = SpreadsheetApp.getActiveSpreadsheet();
  // シート名指定でシートを取得
  let sheet1 = spreadsheet1.getSheetByName('データ');
  // 『getDataRange』を用いて入力されているデータ範囲を取得し、それをすべて配列とし、1行目を削除
  let data = sheet1.getDataRange().getValues().slice(1)
}

getDataRangeメソッドは、セル範囲において、データがある最終列と、データがある最終行を抽出して、この範囲だったらデータがすべて入るという範囲領域をひっぱってきてくれます。
簡単に触れた記事があるので、興味ある方はこちらをどうぞ。

getValuesはデータを配列に収納するメソッド、sliceは配列のうち開始位置と終了位置を定めその部分を抽出するメソッドです。今回は開始位置を『1』とし、終了位置を省略としましたので、要素の2番目(配列の要素は先頭が『0』扱いなので)以降を抽出するといったものになります。逆に言えば、先頭行を取り除くということになりますね。

正しく動いているかの検証

動いているかの検証のため、抽出した内容を別シートに貼り付けるところまでやってくれるGASを作成しました。

function myFunction() {
  // コンテナバインドされてるスプレッドシートを取得
  let spreadsheet1 = SpreadsheetApp.getActiveSpreadsheet();
  // シート名指定でシートを取得
  let sheet1 = spreadsheet1.getSheetByName('データ');
  let sheet2 = spreadsheet1.getSheetByName('貼り付け'); 

  // 『getDataRange』を用いて入力されているデータ範囲を取得し、それをすべて配列とし、1行目を削除
  let data = sheet1.getDataRange().getValues().slice(1);
  // 配列『data』を『貼り付け』シートのA2セル以降に貼り付け
  sheet2.getRange(2, 1, data.length, 8).setValues(data);
}

このように見出しが綺麗サッパリなくなって、貼り付けられていることが確認できます。
データを加工するときなど、見出しが必要じゃないときも多々あるかと思うので、ぜひ覚えておいてくださいー。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次