LANG SELRCT

コードを書く場所についてはこちら

2019年1月10日木曜日

指定した文字に一致するヘッダの列のアルファベットを返したい


このようなシートがあって
一行目が「カタカナ」の列のアルファベット(B)を取得したい




コード.gs
function getColStr() {
  var str = "カタカナ";
  var sheet = SpreadsheetApp.getActiveSheet();
  var headers = getSheetHeaders(sheet)[0];
  var col = headers.indexOf(str) + 1;
  var range = sheet.getRange(1, col);
  var a1 = range.getA1Notation();
  var colStr = a1.replace(/[0-9]/g, '');
  Logger.log(colStr);
}

function getSheetHeaders(sheet) {
  var last_col = sheet.getLastColumn();
  var range = sheet.getRange(1, 1, 1, last_col);
  var headers = range.getValues();
  return headers;
}
意訳
この機能がやること
探す文字列を決めて
シートを取得して
getSheetHeadersに渡して返ってきた二次元配列の0番目を取得して  [[ひらがな, カタカナ, 半カナ]]の[ひらがな, カタカナ, 半カナ]を取得する
一致する文字のindexに+1して indexは0始まりなので+1する
1行目のその列を取得して
A1 の形にして
数値を削除して
アルファベットだけログに出す
}

この機能がやること
受け取ったシートで値が入力されている最終列を取得して
1行目から1行、1列目から最終列までを範囲選択して
値を取得して
返す



getColStr()を実行すると B を取得できます



参考

getA1Notation()
https://developers.google.com/apps-script/reference/spreadsheet/range#getA1Notation()