Excelで関数を組んでいると関数を入力しているセルの場所(アドレス)を取得したい場面があります。先日必要になり意外とそんな時役立つ関数のコンビネーションをご紹介します。
はじめに
Excelではセルから見て関数を入力している現在位置を取得する単体の関数がありません。これを実現するために複数の関数を組み合わせることで現在位置取得を実現していきます。
必要な関数
ADDRESS関数
機能
行番号と列番号を指定して、ワークシート内のセルのアドレスを取得
書式
=ADDRESS(行番号, 列番号, [参照の型], [a1], [シート名])
引数で省略不可なのは行番号と列番号です。
参照の型については下記のテーブルで動作を確認してください。
参照の型 | 結果として返される参照形式 | 例 |
1または省略 | 絶対参照 | $A$1 |
2 | 行は絶対参照、列は相対参照 | A$1 |
3 | 行は相対参照、列は絶対参照 | $A1 |
4 | 相対参照 | A1 |
a1については省略するとデフォルトがTRUEになっており「A1形式」で返します。FALSEと指定すると「R1C1形式」で返します。
シート名については別シートを参照する場合に指定します。
ROW関数
機能
引数として指定された配列の行番号を返す
書式
=ROW([範囲])
引数である範囲は省略可能で、範囲を省略すると入力されているセルの行番号が返されます。ちなみにExcelの行番号は1からはじまります。
COLUMN関数
機能
指定された列の列番号を返す
書式
=COLUMN([範囲])
引数である範囲は省略可能で、範囲を省略すると入力されているセルの列番号が返されます。ちなみにExcelの列番号は1からはじまります。
セル自身のアドレスを取得
=ADDRESS(ROW(),COLUMN())
図はA1、B2、C3、D4、E5と全て同じ関数を入れてあります。
参照の型と形式は省略しているのでデフォルトである絶対参照である1とA1形式であるTRUE評価になっています。入力する場所に限らず、どこでも自分のアドレスを返してくれます。
さいごに
Excelの関数は奥が深くいろいろな組み合わせで様々な機能を実現できるようです。
ちょっとした機能の単体での関数がなかったとしても組み合わせることで実現は可能なのでいろんな応用がきくものだと考えます。
いっぱい覚えて面倒な仕事をちゃっちゃと終わらせてしまいましょう。