その他

GASでスプレッドシートの表の項目とその値を連想配列にして操作する[No108]

スポンサーリンク

GAS(Google Apps Script)でスプレッドシートの表の1行目の項目と、任意行数の値をペアにして扱う方法を紹介します。

"1行目の項目名"を「キー」、扱いたい行の値を「値」として、連想配列を作成し扱います。

画面イメージ

スプレッドシートで下図のように表を用意します。表は「シート1」に作成してください。

プログラムで項目名とペアを組むのは、3行目(項目の1行目を含まず)と指定する。実行後、下図の「実行ログ」に表示されている連想配列が手に入ります。

また「object["項目A"]」として、「項目A」をキーにすると「3行目1あ」が表示できることを確認しています。期待通りですね。

ソースコード

「targetRow = 3」のように3と記載がありますが、配列に対してなので表では4行目のことです。

「// let datas・・・」始まりのところでは、A1 形式で扱うように「getColName(lastCol) + lastRow」としていますが、この方法でなくても大丈夫です。ソースではコメントアウトしています。

表の縦の行数はlengthで取得でき、横の列数の取得は「datas[0].length」で行っています。


function myFunction() {
  const spSheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spSheet.getSheetByName('シート1');

  let lastRow = sheet.getLastRow();
  let lastCol = sheet.getLastColumn();

  let targetRow = 3;

  // let datas = sheet.getRange('A1:' + getColName(lastCol) + lastRow).getValues();
  let datas = sheet.getRange(1, 1, lastRow, lastCol).getValues();
  let object = {};
  for (let i = 0; i < datas[0].length; i++) {
    let key = datas[0][i];
    let value = datas[targetRow][i];
    object[key] = value;
  }

  console.log(object);
  console.log(object["項目A"]);
}

function getColName(x) {
  let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  let ret = str.slice(x - 1, x);
  return ret;
}

参考サイト/関連サイト

【未経験でも出来る!】GoogleAppsScript(GAS)|スプレッドシートの表データを連想配列に変換する方法

【Google apps Script】数字をアルファベットに変換するとか

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他