当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。「INDIRECT関数」完全理解!別シートやセルを参照するメリットと使い方【Excel】2019-10-31「INDIRECT関数」完全理解!別シートやセルを参照するメリットと使い方【Excel】ExcelINDIRECT(インダイレクト)は、もともと英語で「間接的、遠回り」という意味です。直接的という意味のダイレクトDirectの反対語です。ExcelのINDIRECT関数も、直接セルを指定すればよいものを、わざわざ回りくどい言い方をしてセルの参照をするので、使い方を理解するのが難しい関数の一つと言えます。このようなセルの参照の仕方をするのには理由があり、メリットがあります。デメリットもあります。別のシートを参照するときに数式が長くなったり、メンテナンスが面倒だったりすることがあります。たくさんのシートがあってデータを集約するのにシートを切り替えるのが面倒だったりします。そこで、今回は、INDIRECT関数の基本的な使い方について出題します。問題セル範囲A3:A7に10~50の整数を入力した。INDIRECT関数を用いてセルA5を参照しなさい。解説セル参照は通常、イコールを入力してA5をクリックするか、または直接入力します(参考:【Excel数式】セルの「参照」が分からなければ相対参照は理解できない)。セルA5の値を変えると、連動してセルA1の値が変わります。このように連鎖的に計算結果を求めていく仕組みが「参照」です。今度はINDIRECT関数を用いて参照してみましょう。「=INDIRECT("A5")」と入力します。A5の前後にはダブルクォーテーションが必要です。このときINDIRECT関数挿入の画面を用いてもかまいません。これはセルA5の値と同じです。セルA5の値を変えると、連鎖的にセルA1の値も変わります。のどの方法を用いても同じです。「="A"&"5"」と入力したが30と表示されなかった。30と表示するにはどうすればよいか。解説セルに「="A"&"5"」と入力します。この&は文字列連結演算子です(参考:【Excel】文字列結合、スペース・改行・ダブルクォーテーションの連結)。Aと5を連結することによって、「A5」という文字列を作っていますが、これはセルA5ではありません。A5用紙やA5書類のA5です。「="A5"」であって、「=A5」ではないのです。セルA5の値を変えても連動しません。固定の文字列ではなく、セル参照として認識させるにはINDIRECT関数を使います。INDIRECTで囲んで「=INDIRECT("A"&"5")」とします。これで30になります。セルA5の値を変えると連動します。(3)文字列をセル範囲に変換する問題INDIRECT関数を用いて、セル範囲A3:A7の合計を求めなさい。通常は合計を求めるにはオートSUM(SUM関数)で良いです(参考:【Excel】合計はオートSUMボタンを押すだけ~!で済めば苦労はしない)。このとき、数式は「=SUM(A3:A7)」となります。これにダブルクォーテーションをつけて、「=SUM("A3:A7")」とするとエラーになります。文字列を足し算することができないからです。文字列をセル参照に変換して足し算するにはINDIRECT関数を使います。A3:A7の部分を「INDIRECT("A3:A7")」とします。「=SUM(INDIRECT("A3:A7"))」となります(この違いについては後述)。別解セルB1に「A3:A7」と入力したとします。=SUM(INDIRECT(B1))とすると、「A3:A7」がセル範囲に変換され合計を求めることができます。INDIRECT関数の引数は「文字列」ですが、その文字列をどこかのセルに入力した場合はそれを参照しても良いです。2.なぜ、INDIRECTを使うのか?問題セル範囲A3:A7の合計を求めてから、5行目を削除するといくつになるか。解説まずはSUM関数を用いて合計を求めます。「=SUM(A3:A7)」です。数式が「=SUM(A3:A6)」となっています。このように合計する範囲が削除によって減ると自動的に数式内のセル範囲が狭くなります。次に、F4キーを用いてセル範囲を絶対参照にします。「=SUM($A$3:$A$7)」です。数式が「=SUM($A$3:$A$6)」となっています。絶対参照でセル範囲を固定したはずなのにセル範囲が変わります(後述)。今度は、「=SUM(INDIRECT("A3:A7"))」と入力します。