目次
このチュートリアルでは、Excelで数式を使って列番号を返す方法と、列の番号を自動的に付ける方法について説明します。
先週は、列番号をアルファベットに変換する最も効果的な公式について説明しました。 もし、逆の作業を行う場合は、以下に列名を番号に変換する最も良いテクニックを紹介します。
Excelで列番号を返す方法
Excelで列の文字を列番号に変換するには、この一般的な数式を使用します。
column(間接( 書簡 & "1"))例えば、F列の数を求めるには、次のような式になります。
=COLUMN(INDIRECT("F"& "1")))
そして、あらかじめ定義されたセル(ここではA2~A7)に入力された文字で列番号を特定する方法を紹介します。
=COLUMN(INDIRECT(A2& "1"))
B2に上記の数式を入力し、列の他のセルにドラッグダウンすると、このような結果になります。
この処方の仕組み
まず、セル参照を表す文字列を作成します。 文字と数字の1を連結します。 次に、INDIRECT関数に渡して、実際のExcel参照に変換します。 最後に、COLUMN関数に渡して列番号を取得します。
列の文字を数字に変換する方法(不揮発性式)
INDIRECTは揮発性の関数であるため、ワークブック内で広範囲に使用するとExcelの動作が著しく遅くなります。 これを避けるために、もう少し複雑な不揮発性の代替手段を使用して列番号を特定することができます。
MATCH( 書簡 & "1", ADDRESS(1, COLUMN($1:$1), 4), 0)動的配列のExcel(365、2021)では完璧に動作します。 古いバージョンでは、配列の数式として入力(Ctrl + Shift + Enter)しないと動作しないようです。
例えば、こんな感じです。
=MATCH(A2& "1", ADDRESS(1, COLUMN($1:$1)), 4), 0)
または、すべてのバージョンのExcelで、この非配列式を使用することができます。
=MATCH(A2& "1", INDEX(ADDRESS(1, INDEX(COLUMN($1:$1), ), 4), ), 0)
この処方の仕組み
まず、A2の文字と行番号「1」を連結して、「A1」形式の標準的な参照を作成します。 この例では、A2に文字「A」があるので、結果として「A1」という文字列が作成されます。
次に、1行目の「A1」から「XFD1」までのすべてのセルアドレスを表す文字列の配列を取得します。 これには、一連の列番号を生成する COLUMN($1:$1) 関数を使用し、この配列に、1行目の「A1」から「XFD1」までのすべてのセルアドレスを表す文字列を渡します。 列番号 の引数を指定します。
アドレス(1, {1,2,3,4,5,..., 16384), 4)
ということを考えると 行番号 (第1引数)に1をセットし abs_num (第3引数)を4に設定すると、ADDRESS関数はこの配列を送出します(相対参照したいことを意味します)。
{"A1","B1","C1","D1",…,"XFD1"}
最後に、上記の配列の中から連結された文字列を検索し、見つかった値の位置を返すMATCH式を作りますが、これは探している列番号に相当します。
match("a1", {"a1", "b1", "c1", "d1",..., "xfd1"}, 0)
カスタム関数を使用して、列の文字を数字に変更する
「シンプルであることは究極の洗練である」と偉大な芸術家であり科学者であるレオナルド・ダ・ヴィンチは述べています。 文字から列番号を簡単に取得するために、独自のカスタム関数を作成することができます。
上記の原則に完全に沿って、この関数のコードは可能な限りシンプルに作られています。
Public Function ColumnNumber(col_letter As String ) As Long ColumnNumber = Columns(col_letter).Column End FunctionVBAエディタに、ここで説明したコードを挿入して、新しい関数名 列番号 が使えるようになりました。
この関数は引数を1つだけ必要とします。 カラーレター は、数値に変換される列文字である。
コラムレター(col_letter)あなたの実際の計算式は次のようになります。
=列番号(A2)
私たちのカスタム関数とExcelのネイティブ関数が返す結果を比較すれば、それらが全く同じであることが確認できるはずです。
指定したセルの列番号を返す
特定のセルの列番号を取得するには、単にCOLUMN関数を使用します。
COLUMN( セルアドレス )例えば、セルB3の列番号を特定する場合、数式は次のようになります。
=COLUMN(B3)
明らかに、結果は2です。
現在のセルの列文字を取得する
現在のセルの列番号を調べるには、COLUMN()関数の引数を空にして、数式があるセルを参照するようにします。
=COLUMN()
Excelで列番号を表示する方法
Excelのデフォルトでは、A1参照スタイルが使用され、列の見出しに文字、行に数字が表示されます。 列に数字が表示されるようにするには、デフォルトの参照スタイルをA1からR1C1に変更します。 その方法は、次のとおりです。
- Excelで、以下をクリックします。 ファイル > オプション .
- での エクセルオプション ダイアログボックスで 計算式 を左ペインに表示します。
- アンダー 数式を使った作業 を確認します。 R1C1参照スタイル をクリックします。 よっしゃー .
列のラベルが文字から数字にすぐに変更されます。
このオプションを選択すると、列のラベルが変更されるだけでなく、セルのアドレスもA1からR1C1参照に変更されます。 例えば、R1C1は1行目1列目のセルを指し、これはA1参照に相当します。 R2C3は2行目3列目のセルを指し、これはC2参照に相当します。
既存の数式では、セル参照は自動的に更新されますが、新しい数式では、R1C1参照スタイルを使用する必要があります。
Tip. To A1スタイルに戻す のチェックを外してください。 R1C1参照スタイル のチェックボックスがあります。 エクセルオプション .
エクセルで列に番号を振る方法
R1C1参照スタイルに慣れておらず、数式にA1参照を使用したい場合は、ワークシートの最初の行に数字を挿入して、列文字と数字の両方を使用することができます。 これは、オートフィル機能を使用して簡単に行うことができます。
以下、詳しい手順を説明します。
- A1では、1番を入力します。
- B1では、2番を入力します。
- セルA1、B1を選択します。
- セルB1の右下にある小さな四角にカーソルを合わせます。 フィルハンドル カーソルが黒い太い十字に変わります。
- 塗りつぶしハンドルを右側にドラッグして、必要な列まで移動します。
その結果、列のラベルが文字として残り、文字の下に列の番号が表示されることになります。
ヒント:ワークシートの下の領域にスクロールするときに列番号を表示したままにしておくには、一番上の行をフリーズさせることができます。
以上、エクセルで列番号を返す方法でした。 読んでいただきありがとうございました!来週のブログでお会いできるのを楽しみにしています。
練習用ワークブック(ダウンロード
Excelの列番号 - 例 (.xlsm ファイル)