関数 PR

【初心者向け】Excel 関数「INDIRECT関数」について超簡単解説!

記事内に商品プロモーションを含む場合があります

こんにちは!
今回はExcelの強力な関数の一つである
「INDIRECT関数」についてご紹介します

この関数は、他のセル参照や名前付き範囲を
動的に変更する際に非常に役立ちます。
初心者の方でも理解できるように、
丁寧に解説していきますので、ぜひ最後までお読みください。

今回は「INDIRECT関数」について
初心者でも理解できる様に
丁寧に解説をしていきます!

1. INDIRECT関数とは?

INDIRECT関数の概要

INDIRECT関数は、文字列として与えられた
セル参照を実際のセル参照として解釈し、
そのセルの値を返します

これにより、動的にセルの参照を変更することができます。

INDIRECT関数の構文

=INDIRECT(参照文字列, [A1])

  • 参照文字列: 参照するセルまたは範囲のアドレスを文字列として指定します。
  • A1: 省略可能。TRUE(省略時のデフォルト)はA1形式、
    FALSEはR1C1形式の参照を使用します。

2. INDIRECT関数の基本的な使い方

例1: 基本的な使用例

例えば、セルA1に「B2」という文字列が入力されている場合、
INDIRECT関数を使ってB2セルの値を参照することができます

セルA1: B2
セルB2: 100

この場合、セルC1に次のように入力します。

=INDIRECT(A1)

この式は、セルA1の値を参照し、
その文字列「B2」をセル参照として解釈し、
セルB2の値である100を返します。

例2: 名前付き範囲を使用

名前付き範囲を動的に参照することもできます。
例えば、範囲「Sales」がA1からA10までの範囲に設定されている場合、
INDIRECT関数を使用して動的に参照することができます。

セルB1に次のように入力します。

=INDIRECT("Sales")

この式は、名前付き範囲「Sales」を参照し、その範囲内の値を取得します。

3. INDIRECT関数の応用例

応用例1: 複数シートのデータを動的に参照

複数のシートに分かれたデータを動的に参照する場合、
INDIRECT関数を使用すると便利
です。
例えば、シート名が「Sheet1」「Sheet2」「Sheet3」で、
それぞれのシートに同じ構造のデータがあるとします。

セルA1: Sheet1
セルA2: Sheet2
セルA3: Sheet3

各シートのセルB2の値を参照するには、次のように入力します。

セルB1:

=INDIRECT("'" & A1 & "'!B2")

セルB2:

=INDIRECT("'" & A2 & "'!B2")

セルB3:

=INDIRECT("'" & A3 & "'!B2")

この式は、それぞれのシート名を参照し、そのシートのセルB2の値を返します。

応用例2: 動的な範囲選択

動的に範囲を変更する際にもINDIRECT関数は役立ちます
例えば、月ごとのデータを参照する場合、
月を指定するセルを使用して動的に範囲を選択します。

セルA1: 1(1月) セルA2: 2(2月) セルA3: 3(3月)

セルB1: 10 セルB2: 20 セルB3: 30

セルC1に次のように入力します。

=INDIRECT("B" & A1)

この式は、セルA1の値(1)を参照し、セルB1の値(10)を返します。
セルA1を変更することで、参照するセルも動的に変更されます。

4. INDIRECT関数を使用したVBAコード

VBAを使用してINDIRECT関数を実行する方法も紹介します。
VBAを使うことで、さらに自動化が進みます。

Sub DynamicRangeReference()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' 月を指定するセルを設定
    Dim monthCell As Range
    Set monthCell = ws.Range("A1")

    ' INDIRECT関数を使用して動的に範囲を参照
    Dim dynamicValue As Variant
    dynamicValue = Application.WorksheetFunction.Indirect("B" & monthCell.Value)

    ' 結果を表示するセルを指定
    ws.Range("D1").Value = dynamicValue
End Sub

このスクリプトは、シート「Sheet1」のセルA1の値に基づいて
動的にセルB1からB12までの値を参照し、結果をセルD1に表示します。

5. まとめ

INDIRECT関数は、Excelの中でも特に柔軟性の高い関数です。
動的にセル参照や範囲を変更できるため、
複雑なデータ操作や分析に非常に便利です。
ぜひ、この記事を参考にしてINDIRECT関数を活用してみてください。

これからも一緒に学んでいきましょう!

【お使いのパソコンにExcelをインストールする】

created by Rinker
¥14,899 (2024/12/23 20:26:25時点 楽天市場調べ-詳細)
マイクロソフト Excel 2021

【オススメExcel書籍はこちらから購入可能!】

created by Rinker
¥1,738 (2024/12/23 21:53:02時点 楽天市場調べ-詳細)

この記事を書いている人

◉てるパパ(telpapa)
本業でExcelを駆使して業務改善を行う
30代会社員