エクセル関数で列の番号でなく、列のアルファベットを取得する方法


関数で列のアルファベットを入力

関数で列のアルファベットを入力

エクセルで列番号を取得するのはCOLUMUN関数で簡単にできるが、数値じゃなくてアルファベットを取得する方法って分かりませんよね。。。

そこで、ネットでそんな関数がないか調べてみたところ、あるにはあるが結構面倒な処理が多かったので、仕方なく自分で考えてみた。

いい感じにできたと思ったのでブログに残します。
結構スマートな方法ではないかと思います。

 

セルの列をアルファベット(だけを)取得する関数

まず、汎用性は無いが簡単な方法

=LEFT(ADDRESS(ROW(),COLUMN(),4,1),1)

【解説】 ~セル”A17”に入力した場合~

  1. ADDRESS関数でセルの行列を取得
    ADDRESS(ROW(),COLUMN(),4,1)
    → 結果:A17
  2. LEFT関数で左から必要なアルファベット(1文字)のみ取得
    LEFT(ADDRESS(ROW(),COLUMN(),4,1),1)
    → 結果:A ※”A17”の左から1文字

今回のように列がA~Zなら最後の桁数を1にすればOKですが、列がAA~ZZなら最後の桁数を2にする必要があります。

アルファベットの文字数を決め打ちなので、もし列がZからAAに移動した場合などで対応できない弱さはありますが、移動しない前提ならこれでもOKだと思います。

次に、汎用性が高いが少し面倒な方法

=LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))

【解説】 ~セル”BN31”に入力した場合~

  1. ADDRESS関数でセルの行列を取得
    ADDRESS(ROW(),COLUMN(),4,1)
    → 結果:BN31
  2. 不要な行の数字(31)を削除するために、LEN関数で行の文字数を取得
    LEN(ROW())
    → 結果:2 ※ROW()の結果は”31”だから、LENの結果は2文字
  3. 行列(BN31)の文字数をLEN関数で取得
    LEN(ADDRESS(ROW(),COLUMN(),4,1))
    → 結果:4 ※ADDRESSの結果が”BN31”だから、LENの結果は4文字
  4. LEFT関数で左から必要なアルファベットのみ取得
    LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))
    → 結果:BN ※”BN31”の左からアルファベットの文字数(行列の文字数-行の文字数)

このように、LENで取得する文字列を行列の文字数に応じて変動するようにしてあげることで、汎用性の高い使い方ができると思います。

なお、EXCEL VBAでも列のアルファベットと簡単に取得する方法ないので、この関数と組み合わせてやると便利だと思います。

参考になれば嬉しいです。

 

※追記※

もっとスマートなやり方をHikaru Kiyunaさんが教えてくれたので、ご紹介します!

tmp00023

=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),)

不要な数字をブランクに置き換えることで実現しています。

【解説】 ~セル”BN31”に入力した場合~

  1. ADDRESS関数でセルの行列を取得
    ADDRESS(ROW(),COLUMN(),4,1)
    → 結果:BN31
  2. 不要な行の数字(31)を削除するために、SUBSTITUTE関数でブランクに置き換え
    SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),)
    SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),””) ←ブランクを””と明示化してもOK
    → 結果:BN ※”BN31”
    からROW()の結果である”31″を””に置き換える

実にスマートなやり方ですね。

Hikaru Kiyunaさん、ありがとうございます!





著書の紹介

俺とオレ ~さよなら大嫌いな自分~

自分をよく見せたくてつま先立ちで歩き続ける。そんな日常を送ることに限界がきた俺は、胡散臭い男の紹介で「おばあちゃん」と暮らしはじめる。これまで抑圧してきた自分の内面と向き合い、導き出された答えとは……。仕事も恋も上手くいかない23歳の新社会人を変えた一夏の田舎暮らし。

おすすめポイント:人の目ばかり気になる……。人間関係に疲れた……。自分なんて、大嫌いだ……。そんなつま先立ちの人生から解放されるようになります。
http://amzn.to/2FPl2eN

診断テストの紹介

自己分析診断テスト「ポテクト」で強み・弱みを徹底分析! 無料版あり

自己分析診断テスト「ポテクト」で強み・弱みを徹底分析! 無料版あり



Pocket

名古屋の難しい言葉を使わないIT・WEBコンサルタント 愛知県を中心に、初心者向けIT・WEB活用の支援をやっています。WEB・ITによる業務効率化、ホームページ作成、VBAマクロ作成、各種IT・WEBセミナーが得意です。

カテゴリー: Excel タグ: , , , ,