マーケティングのためのExcel(6) – INDIRECT,ADDRESS関数

excelロゴ

INDIRECT関数はセルの参照を返すことができます。例えば、INDIRECT(A1)と指定すれば、A1セルに記入されている文字列を取得します。ADDRESS関数は行番号、列番号、参照方法、参照形式、シート名を指定するとセルのアドレス場所(A1、R1C1など)を取得することができます。実務ではINDIRECT、ADDRESSに加えROW(現在の行を取得)、COLUMN(現在の列を取得)関数を組み合わせて串刺し集計なども容易に行うことができます。

関数

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

*[参照の種類]
1.絶対参照 $A$1 2.行は絶対参照、列は相対参照 $A1 3.行は相対参照、列は絶対参照 A$1 4.相対参照 A1

*[参照形式]
0.R1C1形式 1.A1形式

例えば、以下のような販売推移表で、別シートに販売数の表示方法を変更して表示したい場合。
=INDIRECT(ADDRESS((ROW()-1)*7-2,COLUMN()-2,1,1,”商品ごと販売数”))

と全てのセルに入力すると、自動的に”商品ごと販売数”シートから販売数を串刺し入力することができます。複雑な計算式に見えますが、要は販売数を表示させたいセルからどれだけ参照先のセルが離れているかを数式で表せばいいわけです。ADDRESS関数の第一引数の行の取得のところを簡単に説明します。販売推移表において、販売数が入力されているセルの行数は5→12→19→26→33と7行の間隔を開けて入力されています。しかし、最初が5で始まっているので7-2 → 14-2 →21-2 と7の倍数から2を引いてやれば求める数になります。そして、今回変数として使用するROW()関数で取得される数は2→3→4→5→6です。これも、1から順に変動させたいので-1をして1→2→3→4→5と変異させるようにします。よって、(ROW()-1)*7-2 を赤枠内に入力してやるとROW()が変数の役割を果たし、串刺し集計を行うことができるのです。

indirect関数説明画像

indirect関数説明画像

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする