【Excel】ADDRESS関数で行列番号からセル参照文字列を作る方法

【Excel】ADDRESS関数で行列番号からセル参照文字列を作る方法
🛡️ 超解決

業務でExcelを使っていると、行番号や列番号からセルの番地を求めたい場面に遭遇するでしょう。特にVLOOKUP関数やINDIRECT関数と組み合わせて、動的な参照を作りたいと考える方も多いかもしれません。ADDRESS関数を使えば、数値からセル参照文字列を簡単に作成できます。

この記事では、ADDRESS関数の基本的な使い方から、絶対参照と相対参照の指定方法、さらにはシート名を含めた参照の作成までを解説します。数式や機能の制限についても触れながら、業務効率化に役立つADDRESS関数の活用術を習得できます。

【要点】Excel ADDRESS関数でセル参照文字列を効率的に作成

  • ADDRESS関数: 指定した行番号と列番号から、セルの参照文字列を生成します。
  • 参照の種類指定: 絶対参照、相対参照など、出力する参照文字列の種類を細かく制御できます。
  • シート名結合: 別のシートにあるセルへの参照文字列も、シート名を加えて作成できます。

ADVERTISEMENT

ADDRESS関数とは?行と列の番号からセル番地を作る機能

ADDRESS関数は、指定された行番号と列番号に基づいて、セル参照をテキスト形式で返すExcelの関数です。例えば、「5行目の3列目」という情報から、「$C$5」のようなセル番地を文字列として生成します。この機能は、VLOOKUP関数やINDIRECT関数などの他の関数と組み合わせて、柔軟なデータ操作や動的な範囲参照を作成する際に非常に有効です。

引数で参照の種類 絶対参照や相対参照 を指定できるため、用途に応じたセル参照文字列を生成できます。また、シート名を加えることで、異なるシートのセルを指す参照文字列も作成できます。Excel for Microsoft 365はもちろん、Excel 2019やExcel 2021でも同様に利用できる標準的な関数です。

ADDRESS関数でできること

ADDRESS関数は、主に以下の用途で活用できます。

  • 数値を元にセル参照文字列を生成し、別の関数 INDIRECT関数などでその文字列を実際の参照に変換する
  • マクロVBAを使わずに、動的に変化するセル範囲への参照文字列を作成する
  • レポート作成やデータ集計において、特定のセルへのリンクテキストを自動生成する

ADDRESS関数の構文と引数

ADDRESS関数の構文は次の通りです。

ADDRESS(行番号, 列番号, [参照の種類], [A1形式], [シート名])

各引数の意味は以下の通りです。

  • 行番号: 必須引数です。セル参照文字列に使用する行番号を数値で指定します。
  • 列番号: 必須引数です。セル参照文字列に使用する列番号を数値で指定します。
  • 参照の種類: 省略可能な引数です。出力されるセル参照の種類を数値で指定します。
    • 1: 絶対参照 $A$1
    • 2: 行絶対、列相対 A$1
    • 3: 行相対、列絶対 $A1
    • 4: 相対参照 A1
  • A1形式: 省略可能な引数です。セル参照の形式を論理値で指定します。
    • TRUEまたは省略: A1形式 例: A1
    • FALSE: R1C1形式 例: R1C1
  • シート名: 省略可能な引数です。セル参照の前に含めるシート名を文字列で指定します。
お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

ADDRESS関数でセル参照文字列を作成する基本手順

ここでは、ADDRESS関数を使って様々な形式のセル参照文字列を作成する手順を解説します。実際にExcelシートで操作しながら確認しましょう。

A1形式の絶対参照を作成する手順

最も一般的な「$A$1」のような絶対参照文字列を作成します。

  1. 関数を入力するセルを選択
    セルA1に「5」、セルB1に「3」と入力してください。これらの数値を行番号と列番号として使います。
  2. ADDRESS関数を入力
    別のセル 例: C1 に次の数式を入力します。
    =ADDRESS(A1,B1)
    この数式では、A1セルの値を行番号 5 、B1セルの値 列番号 3 を指定しています。「参照の種類」と「A1形式」は省略すると、既定値の絶対参照 A1形式が適用されます。
  3. 結果を確認
    数式を入力後Enterキーを押すと、セルC1に「$C$5」という文字列が表示されます。これは5行目3列目の絶対参照を表しています。

相対参照を作成する手順

絶対参照ではなく、「A1」のような相対参照文字列を作成するには、「参照の種類」引数を「4」に設定します。

  1. 数式を入力
    先ほどの例で、セルC2に次の数式を入力します。
    =ADDRESS(A1,B1,4)
    ここで「4」は相対参照を指定する値です。
  2. 結果を確認
    セルC2に「C5」という文字列が表示されます。これは5行目3列目の相対参照を表しています。

行絶対/列相対参照および行相対/列絶対参照を作成する手順

「A$1」や「$A1」のような複合参照文字列も作成できます。

  1. 行絶対/列相対参照の数式を入力
    セルC3に次の数式を入力します。
    =ADDRESS(A1,B1,2)
    「2」は行絶対、列相対参照を指定します。
  2. 結果を確認
    セルC3に「C$5」という文字列が表示されます。
  3. 行相対/列絶対参照の数式を入力
    セルC4に次の数式を入力します。
    =ADDRESS(A1,B1,3)
    「3」は行相対、列絶対参照を指定します。
  4. 結果を確認
    セルC4に「$C5」という文字列が表示されます。

シート名を含んだセル参照を作成する手順

異なるシートへの参照文字列を作成するには、「シート名」引数を指定します。

  1. シート名を準備
    新しいシートを作成し、「データシート」という名前に変更してください。
  2. 数式を入力
    元のシートのセルC5に次の数式を入力します。
    =ADDRESS(A1,B1,1,TRUE,"データシート")
    ここで「”データシート”」は、参照したいシート名を指定しています。
  3. 結果を確認
    セルC5に「’データシート’!$C$5」という文字列が表示されます。シート名にスペースが含まれる場合、自動的に単一引用符で囲まれます。

ADDRESS関数利用時の注意点とよくある間違い

ADDRESS関数は便利ですが、使用方法を誤るとエラーが発生することがあります。ここでは、よくある間違いとその対処法を説明します。

行番号や列番号が範囲外の場合に#VALUE!エラーが発生してしまう

ADDRESS関数の「行番号」や「列番号」引数に無効な数値を指定すると、「#VALUE!」エラーが表示されます。例えば、列番号に「0」を指定したり、行番号にExcelの最大行数 1,048,576を超える数値を指定した場合にこのエラーは発生します。

対処法: 入力する行番号と列番号がExcelの有効な範囲内にあることを確認してください。通常、行番号は1以上、列番号は1以上の整数です。また、COUNTA関数などで数値の範囲をチェックし、有効な値だけが渡されるように数式を調整しましょう。

参照の種類を間違えてしまい意図しない形式の参照が出力される

「参照の種類」引数を適切に指定しないと、絶対参照「$A$1」や相対参照「A1」など、期待と異なる形式の参照文字列が生成されてしまいます。特にVLOOKUP関数やINDIRECT関数と連携させる場合、参照の種類は非常に重要です。

対処法: 目的の参照形式に応じて、適切な「参照の種類」の数値 1, 2, 3, 4 を指定してください。既定値は絶対参照 1 です。また、数式を組み立てる際は、どの参照形式が必要かを事前に確認しておきましょう。

シート名引数を省略すると現在のシートの参照になってしまう

ADDRESS関数の「シート名」引数を省略すると、現在作業しているシートのセル参照文字列が生成されます。もし、別のシートのセルを参照する文字列を作成したい場合、この引数の省略は意図しない結果を招きます。

対処法: 別のシートのセルを参照する文字列を生成したい場合は、必ず「シート名」引数に目的のシート名を文字列で指定してください。シート名にスペースや特殊文字が含まれる場合でも、Excelが自動的に単一引用符で囲んでくれるため、そのまま入力して問題ありません。

ADVERTISEMENT

ADDRESS関数とINDIRECT関数の機能比較

ADDRESS関数とINDIRECT関数は、どちらもセル参照に関連する関数ですが、その役割は大きく異なります。ここでは、それぞれの機能と使い分けについて比較します。

項目 ADDRESS関数 INDIRECT関数
主な役割 行番号と列番号からセル参照文字列を「作成」する セル参照文字列を実際の参照として「評価」する
引数の種類 数値 行番号、列番号 とオプションの参照タイプ、シート名 セル参照文字列 例: “A1” やセルへの参照
出力結果 テキスト文字列 例: “$A$1” セル参照または範囲参照 例: A1セルの値
得意な場面 VLOOKUP関数などで動的に参照先を決定する際の文字列生成 作成された参照文字列を使って、実際のデータを取り出す
バージョン依存性 Excel for Microsoft 365, 2019, 2021で利用できる Excel for Microsoft 365, 2019, 2021で利用できる

ADDRESS関数は「セル参照の住所」を文字列として生成し、INDIRECT関数はその「住所」を基に実際のセルや範囲からデータを取得する、という使い分けが基本です。両者を組み合わせることで、非常に強力で柔軟な動的参照システムをExcelで構築できます。

まとめ

この記事では、ExcelのADDRESS関数を使って行列番号からセル参照文字列を作成する方法を詳しく解説しました。絶対参照、相対参照、シート名を含む参照など、様々な形式のセル番地を文字列として生成できるようになりました。

ADDRESS関数は、INDIRECT関数やMATCH関数、INDEX関数といった他の関数と組み合わせることで、より高度なデータ集計やレポート作成に活用できます。特に、動的に参照先を変更したい場面で真価を発揮するでしょう。

今回習得したADDRESS関数の知識をぜひ業務でのデータ操作に活用し、作業効率を向上させましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】