- 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;
}
}