列番号のアルファベット列名変換

エクセルやGoogleSpreadsheetの関数で、なんで未だに存在しないのか不思議で仕方ない関数です。

ずばり、列番号のアルファベット列名変換です。

結構困るんですよ。INDIRECT関数やQUERY関数を活用していると、列名をアルファベットで記載せねばならずにね。

COLUMN関数では、単に数値としてしか返ってこないので、「違う。。。そうじゃない。。。」となるんですよ。マジで。

てなわけで、作りました。

要はCOLUMN関数で列の座標を取得して、アルファベット列名(AとかBとか)に変換すればイイだけの話ですね。

言っている事がよくわからないという方は、↓を見てみてください。 https://docs.google.com/spreadsheets/d/1cZEcksKbcWj4ofbh73bC-XFfEUtqwughN4l6uvg9Yw4/edit#gid=0
※セキュリティの都合上、編集はできません。閲覧権限のみの設定としています。

具体的なソースコードはこんな感じです。
github

ソースコード


//列番号のアルファベット列名変換
function wmap_column_convert(colmun_number) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var result = sheet.getRange(1, colmun_number);
  result = result.getA1Notation();
  result = result.replace(/\d/,'');
  return result;
}

列番号を取得してgetA1Notation()で座標を取得。その後に邪魔になる行番号を正規表現で除去しているだけですね。

にしても、なぜエクセルのデフォルト関数としてこの手の関数が無いのでしょうか。不思議で仕方ないです。

GoogleSpreadsheetであれば、GoogleApps Scriptの関数を駆使する事で解決できますが、そもそもデフォルトの関数として設定してほしいなぁと思う次第です。

結構困っている人が多いと思うんだけどなぁ。