数値から列文字を調べる


3列目って何列ですか?C列ですよね。誰でも分かります。じゃ、13列目は?正解はM列です。私はこれ覚えています。VBAのベーシックセミナーで、ワークシートを横方向に操作するという練習問題を出します。そのとき、右端の列がM列なんです。いつもみんな指を折って数えますので「M列は13ですよ」と教えてあげます。じゃ、52列目は?98列目は?5,762列目は?今のワークシートは、XFD列まであります。これ16,384列目です。これだけの大きさになると、n列の列文字(AとかBとか)なんか、一発で分からないですよね。これ、VBAでやる方法を書きましたので、ついでにワークシート関数で調べる方法も書いておきます。ちなみにVBAでやるのは「数値から列文字を調べる」をご覧ください。

さあ、同じことをワークシート関数で調べてみましょう。VBA版と同じように、キリのいい数値ということで1,024列目が何列か調べてみます。

こんなときは、ADDRESS関数を使います。ADDRESS関数は「N行、M列のセルのアドレス」を取得できます。

今回は1,024列目ですから ADDRESS(1, 1024) です。行はどこでもいいです。さて、ADDRESS関数は、行と列に対して、相対参照にする($をつけない)か、絶対参照にする($をつける)かを指定できます。

今回は「2 - 行(絶対参照) / 列(相対参照)」を指定します。

このアドレスの、$から左側を抜き出します。何文字あるか分かりません。VBAのSplit関数みたいな便利なのはありませんから、まずは$の位置を調べます。

$の1文字手前まで抜き出すのですから、LEFT関数で、この数値マイナス1まで抜き出します。

さあ、お待ちかね。1,024列目は…

だそうです。