「reference」タグアーカイブ

EXCEL2:INDIRECT攻略したい

INDIRECTという風変わりな関数に興味があります。二次的な、という意味を持つINDIRECTは、間接的にセル参照する機能を持つ検索関数で、二次関数ではなく、OFFICE Onlineサポートサイトでは、INDIRECT関数は「指定される文字列への参照を返す」と書かれています。
つまり、INDIRECT関数の引数の括弧には、=INDIRECT(A1)などとセル番地が入ることになると思います。A1セルに、表のどこか「セル番地」を文字列で入力しているとき、INDIRECT関数は、引数の参照セルに書かれたセル番地のデータを参照しています。

普通セル参照といえば、A1の値を参照するB1セルに =A1 と入力しますが、
INDIRECT関数の参照元で =A1とすると、数式ですので結果はエラーになります。参照元は文字列で、引数のように「セル番地」を入力するという事です。

また、SUM関数と組み合わせて、セル範囲の合計を計算します。
=SUM(INDIRECT(A1))
A1に、B1:B10 と引数の様に入力したセル範囲の合計値を表示します。
このセル範囲に名前を定義すると、A1に名前で置き換えた選択範囲を計算します。

あるいは、「指定される文字列への参照を返す」ので =INDIRECT(“A1”) と解説している教本の方が多いです。
“A1” と表記するときは、引数が文字列のことですので、A1セルの内容をそのまま参照しています。A1セルが文字列でなくても、数値でも、数値は数値としてそのままA1セルの値が参照されるようです。

参照元表は別シートでも、開いている別ブックでも可能という事です。

=INDIRECT(“A1”)  の場合、セルの絶対参照のように、行列にコピーしてもA1を参照しています。

EXCEL◇リンク貼り付けのセル参照

A1セルの値を参照する

A1の値を、同じワークシートの他のどこかのセルで見たい場合、

セルをクリックしてアクティブにして、イコール記号(=)を入力

[A1]をクリックして[Enter]

別のシートで 、A1 の値を参照したい場合、

イコール記号(=) を入力

シートの切替え

「A1」クリックして[Enter]

[= Sheet1!A1 ]となります。

「リンク貼り付け」と同じことだと思いつくかもしれません。

A1のデータ値をどこか他のセルで参照したい場所にリンク貼り付けすると「=$A$1」となります。

別のシートにリンク貼り付けしても「= Sheet1!$A$1 」です。

いずれも、セルの値は同じですが、セルの数式が違っていますので、その後の操作には要注意です。

EXCEL◇列範囲を絶対参照SUMIF関数

たとえば、SUMIF関数で月別データの合計を集計するとき、関数の引数の参照列範囲を絶対参照(相対参照)するのを忘れていると、当然合計値はおかしくなります。数式を作成して何らかのデータが現れると、とりあえず信用してしまいがちですが要注意です。

参照列を[F4]キーで固定しておかなければなりません。

行の参照セルの値を計算しますが、絶対参照にすると列・行の参照元の値が変わりません。

リストを固定しないと、列方向に数式をコピーするとき参照元リストが下方向にずれてきますので、データの結果をよく見て、1月よりも12月の方向に合計値があまりに少なくなるのはおかしい、ということに気付かなければなりません。

ちなみに、SUMIF関数の参照範囲は1列ですから、正確にはF4キー2回で行固定の相対参照で充分なのですが、引数の範囲選択をしてF4キーを1度たたいて絶対参照でも結果は同じですので、この場合引数の範囲選択を絶対参照、相対参照どちらでも構わないと思います。