#48: GAS で列名で index を取得する

  • Google Spreadsheet & GAS でテーブル形式のデータを扱う際に列を指定する場面が出てきます。
  • 単純なものであれば const fooColIndex = 3; と変数名に受けて書いていましたが、途中で列を追加したりするとメンテナンス&デバッグに時間がかかる場合がありました。
  • 今後は以下のように列名で引いてくるようにしようと思います。
// 1 行目は列名
const columnLabels = sourceSheet.getDataRange().getValues()[0];

/**
 * 指定した列名の array index を取得する。
 * シートのデータを getValues() で 2 次元配列として処理する場合に使用する。
 * @param {Array} labels
 * @param {String} label
 * @returns {Number}
 */
function getColIndex(labels, label) {
  const i = labels.indexOf(label);
  if (i < 0) {
    Browser.msgBox(`label: "${label}" が見つかりません。シートの列名が変更されていないか確認して下さい。`);
  } else {
    return i;
  }
}