COLUMN関数を使用すると、セルの数値列を簡単に判別できます。このような数式をセルに入れるだけで、結果はA = 1、B = 2などの値になります。

=COLUMN()

数値ではなくアルファベットの値が必要な場合はどうなりますか?これは、いくつかの異なる方法のいずれかで行うことができます。たとえば、次の式は、最初の26列のAからZに対して非常にうまく機能します。

=CHAR(COLUMN()+64)

これは、文字AからZが文字コード65から90を使用するために機能します。COLUMNが列AからZ(1から26)の値を返す場合、これを64に追加して、これらの列の文字65から90を取得できます。

||||もちろん、このソリューションは、Zを超える列の文字指定を知りたい場合は機能しません。Excelの列は最大3桁である可能性があるため(ExcelはXFDまでの列を使用できます)、列を見つけるための別のアプローチ文字は順番に並んでいます:

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

ADDRESS関数は、特定のセルのアドレスを返します。この場合、現在の列の最初の行にあるセルのアドレスを返します。したがって、数式がセルBF27にある場合、BF1を返します。

この数式は、LEFT関数を使用して、アドレスの左端の正しい文字数から行の1を引いた数を返します。

式のさらに短いバージョンは、LEFT関数ではなくSUBSTITUTE関数に依存しています。

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

もちろん、必要に応じて、マクロベースのソリューションを使用することもできます。次のマクロは、1文字、2文字、または3文字の列で機能します。

Function AlphaCol(c As Range) As String     Dim sTemp As String     Dim ad1 As String

ad1 = c.Address     sTemp = Mid(ad1, InStr(ad1, "$") + 1, InStr(2, ad1, "$") - 2)

AlphaCol = sTemp End Function

マクロはユーザー定義関数です。つまり、これを任意のセルに追加するだけで、ワークシートで使用できます。

=AlphaCol(J12)

関数呼び出しで参照されるセルは、文字を知りたい列内のセル(任意のセル)です。この関数は、そのセルのアドレスを見つけて、列の指定を除くすべてを取り除きます。列指定で構成されるテキスト文字列が返されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9240)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Alphabetic_Column_Designation [Alphabetic ColumnDesignation]