Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

この記事では、Excelで列番号を英字(A、B、C…)に変換する方法を、誰でもすぐに使える3つの方法に分けてわかりやすく解説します。

練習用ファイルのダウンロード

本記事で使用している練習用のExcelブックは、こちらから無料でダウンロードできます。

Excelで列番号を英字に変換する3つの方法

ここでは、数式VBAコードExcelの標準機能(組み込みオプション)という3つのアプローチで、列番号を英字に変換する手順を順番にご紹介します。用途やスキルレベルに合わせて、最適な方法を選んでください。

1. 数式を使って列番号を英字に変換する

まずは、以下のデータセットを例に、数式だけで列番号を英字に変換する方法を見ていきましょう。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

手順:

  • 結果を表示したいセルを選択します。
  • 列番号を英字に変換するための基本形の数式は次のとおりです。

=SUBSTITUTE(ADDRESS(1,列番号,4),"1","")

  • 選択したセルに、実際のセル参照を当てはめて入力します。

=SUBSTITUTE(ADDRESS(1,B5,4),"1","")

引数の意味は以下のとおりです。

B5=変換したい列番号が入力されているセル参照

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

  • Enterキーを押します。

すると、列番号1に対応する英字Aが表示されます。

  • フィルハンドルを下方向へドラッグすると、残りのセルにも数式を一括で適用できます。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

数式の解説:

  • ADDRESS(1,B5,4)
    • 出力:A1
    • 解説:ADDRESS関数は、指定した行番号と列番号をもとにセルアドレス(文字列)を返す関数です。ここでは行番号に「1」、列番号にB5の値を渡してアドレスを作成しています。さらに第3引数(abs_num)に「4」を指定することで、$マークの付かない相対参照形式のアドレスを取得できます。
      • abs_num=4は固定値として覚えておきましょう。必ず「4」を指定してください。それ以外の値にすると、セルアドレスに$マークが付いた状態で表示されてしまいます。
  • SUBSTITUTE(ADDRESS(1,B5,4),"1","")SUBSTITUTE("A1","1","") として処理される
    • 出力:A
    • 解説:SUBSTITUTE関数は、文字列「A1」の中の「1」を空文字("")に置き換えます。その結果、行番号の部分が消えてAだけが残る仕組みです。

あわせて読みたい:[解決済み]Excelの列見出しが数字になったときの直し方(2つの解決策)

関連記事

  • Excel VBAで列番号を指定してRangeを使う方法(4つの方法)
  • Excelで列英字を番号に変換する早見表の作り方(4つの方法)
  • Excel VBA:行番号と列番号でRangeを設定する(3つの例)

2. VBA(ユーザー定義関数)で列番号を英字に変換する

VBAを使えば、オリジナルの関数(ユーザー定義関数:UDF)を作成し、通常のワークシート関数のように呼び出せます。変換作業を頻繁に行う方におすすめの方法です。

手順:

  • キーボードでAlt + F11を押すか、リボンの開発 → Visual BasicからVBE(Visual Basic Editor)を開きます。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

  • 開いたウィンドウのメニューバーから、挿入 → 標準モジュールをクリックします。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

  • 以下のコードをコピーして、コードウィンドウに貼り付けます。
Public Function NumToLetter(ColNum)
NumToLetter = Split(Cells(1, ColNum).Address, "$")(1)
End Function

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

これは実行するSubプロシージャではなく、ユーザー定義関数(UDF)を作成するコードです。そのため、入力後はメニューバーの実行ボタンを押さずに上書き保存を行いましょう。

  • Excelシートに戻り、先ほど作成した関数NumToLetter(コード1行目のFunction名)を通常の数式のように入力します。括弧内には、変換したい列番号が入ったセル参照を渡します(ここではB5を指定)。

完成形の数式は次のとおりです。

=NumToLetter(B5)

  • Enterキーを押します。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

列番号1に対応する英字Aが正しく取得できました。

  • フィルハンドルを下へドラッグすれば、UDFを他のセルにもまとめて適用できます。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

あわせて読みたい:Excel VBAでデータのある列数をカウントする方法(2つの例)

3. Excelの標準機能で列見出しを英字に戻す

実はExcelには、下の画像のように列見出しが数字(1、2、3…)で表示されている状態を、英字に戻すための標準機能が備わっています。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

手順:

  • ファイル → オプションの順にクリックします。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

  • 表示されたExcelのオプション画面で、数式 → 「R1C1 参照形式」のチェックを外す → OKの順に操作します。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

これで、列見出しが数字から英字(A、B、C…)に切り替わります。

Excelで列番号を英字(A・B・C…)に変換する3つの方法|数式・VBA・標準設定

あわせて読みたい:ExcelでVLOOKUP用の列数をカウントする方法(2つの方法)

まとめ

本記事では、Excelで列番号を英字に変換する3つの方法(数式・VBA・標準機能)を解説しました。単発の処理なら数式、繰り返し使うならUDF、表示形式そのものを直したいなら標準設定と、状況に応じて使い分ければ作業効率がぐっと上がります。この記事が皆さんのお役に立てば幸いです。内容について不明な点があれば、お気軽にお尋ねください。

関連記事

  • 別シートの列インデックス番号を使ってVLOOKUPを実行する方法
  • Excelで列インデックス番号を調べる方法(2つの方法)
  • Excelである列が条件を満たす場合に別の列をカウントする4つの方法
  • Excel VBA:セルアドレスから行番号と列番号を取得する4つの方法
  • Excelで一致する列番号を返す5つの便利な方法
  • Excelで列名をABCから1、2、3に変更する方法
  1. ExcelでXMLを列に変換する4つの方法|初心者でもできる完全ガイド

    このチュートリアルでは、ExcelでXMLデータを列に変換する4つの実用的な方法をご紹介します。いずれの方法も大規模なデータセットに対応しており、XMLデータから必要な値を効率よく抽出できます。さらに、本記事で解説するツールやテクニックは、その他のExcel作業全般にも役立つ内容となっています。 練習用ワークブックはこちらからダウンロードできます。 ExcelでXMLを列に変換する4つの方法 手順を分かりやすく説明するため、比較的シンプルなXMLデータセットを使用します。データセットは約7行×2列で構成され、すべてのセルは初期状態で「標準」形式に設定されています。列は「サイトURL」と「日付」

  2. Excelで列データを区切り文字付きテキストに変換する5つの方法

    Excelのシートで、縦方向(列)に入力されたリストを横並びのテキストとして整理したい場面はよくあります。その際、各項目をつなぐために区切り文字が必要になります。最も一般的なのはカンマ(,)ですが、セミコロンなどを使う場合もあります。残念ながら、Excelには列を区切り文字付きテキストへ一発で変換する専用機能は用意されていません。そこで本記事では、5つの簡単な方法で列データを区切り文字付きテキストに変換する手順を詳しく解説します。 Excelで列を区切り文字付きテキストに変換する5つの方法 この記事では、以下の5つのアプローチを順番に紹介します。 TEXTJOIN関数を使う方法 CONCAT