Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
セルの参照を返すADDRESS関数の使い方:Excel関数
Home »
エクセル関数一覧表 »
Excel関数の目次 »
Excel関数の目次 »
セルの参照を返すADDRESS関数の使い方
行番号と列番号を指定してADDRESS関数でセルの参照を文字列で返します。
ADDRESS関数はセル番地を返しますので、セルの値を求めるときはINDIRCT関数と組み合わせて使います。
更新:2024/1/18;作成:2009/3/22
アドレス
=ADDRESS(行番号,列番号 [,参照の種類,参照形式,シート名] )
この関数はセルの位置を返すことができます。つまり、セル番地を返します。
さらに、そのセル番地のセルの値を返すにはINDIRECT関数との組み合わせにする必要があります。
行番号: セル参照に使用する行番号を指定します。
列番号: セル参照に使用する列番号を指定します。
参照の種類: セル参照を絶対参照にするか相対参照にするかを指定します。
関数のヒントを利用すると、下図のようにヒントが表示されます。
引数
意味
例
1 または省略
絶対参照
=ADDRESS(1,2,1 ) は $B$1 となります。
2
行は絶対参照、列は相対参照
=ADDRESS(1,2,2 ) は B$1 となります。
3
行は相対参照、列は絶対参照
=ADDRESS(1,2,3 ) は $B1 となります。
4
相対参照
=ADDRESS(1,2,4 ) は B1 となります。
参照形式:セル参照を A1 形式にするか R1C1 形式にするかを指定します。
関数のヒントを利用すると、0 または 1 が選択肢として表示されます。
0 がFALSE、1 がTRUE に相当します。
引数
意味
例
TRUEまたは省略
A1形式のセル参照
=ADDRESS(1,2,4,1 ) は B1 となります。
=ADDRESS(1,2,4,TRUE )でもOKです。
FALSE
R1C1形式のセル参照
=ADDRESS(1,2,4,0 ) は R[1]C[2] となります。
=ADDRESS(1,2,4,FALSE )でもOKです。
シート名:外部参照として使用するワークシートの名前を文字列で指定します。
この引数を省略すると、シート名は返されません。
例:=ADDRESS(1,2,4,1,"Sheet2" ) は Sheet2!B1 となります。
問題1
【問題1】ADDRESS関数を使って、C11セルに運賃を求めなさい。
B
C
D
E
2
運賃表
3
東京
名古屋
大阪
4
鹿児島
50,000
40,000
35,000
5
宮崎
45,000
35,000
30,000
6
熊本
40,000
30,000
25,000
7
福岡
30,000
20,000
15,000
8
9
到着地
名古屋
10
出発地
熊本
11
運賃は
30,000
問題1の解答例
条件に合うセルの行番号、列番号を求めるためにMATCH関数 の検索範囲をそれぞれB1,A3からとしています ←ここがポイントです。 ADDRESS関数ではセル参照を返しますので、INDIRECT関数を組み合わせてセルの値を返すようにします。
数式は =INDIRECT(ADDRESS( MATCH(C10,B1:B7,0) , MATCH(C9,A3:E3 ,0))) としました。
数式を分解すると以下のようになります。
MATCH(C10,B1:B7,0):C10の値と同じ値がB1:B7のどこにあるかを探します。この例では「6」となります。
(行番号を求めるために、1行目から7行目のどの行に求める県名があるかを調べています)
MATCH(C9,A3:E3,0):C9の値と同じ値がA3:E3のどこにあるかを探します。この例では「4」となります。
(列番号を求めるために、A列からE列のどの列に求める県名があるかを調べています)
ADDRESS(6,4)となるので、「$D$6」となります。
ADDRESS関数の参照の型、参照形式を省略しているので、A1形式の絶対参照のセル番地が返されます。
よって、INDIRECT関数と組み合わせて、INDIRECT($D$6)でD6セルの値「30,000」が返されます。
または、=INDIRECT(ADDRESS(MATCH(C10,B:B ,0),MATCH(C9,3:3 ,0))) とすることもできます。
C11セルに =INDIRECT(ADDRESS(MATCH(C10,B1:B7,0),MATCH(C9,A3:E3,0))) と入力します。
なお、INDEX関数 で数式を作成することもできます。
例えば、 =INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)) といった数式で求めることができます。
この数式での MATCH関数 の引数はB4:B7 と C3:E3 といった具合にADDRESS関数の場合とは異なりますのでご注意ください。
問題2
【問題2】B列の最下行の値をE1セルに求めなさい 。
問題2の解答例
ADDRESS関数でセル位置を求め、INDIRECT関数と組み合わせて そのセルの値を返します。
A列は1行目からセルにデータが入力されていますので、COUNTA関数でデータ数を求めると行数と一致します。 (途中に空白セルがないので)
COUNTA(C:C)で行数を求めることができます。 ADDRESS(COUNTA(C:C),3) でC8セルを指定することができます。 A8セルの値を返すためには INDIRECT関数 を使って、=INDIRECT(ADDRESS(COUNTA(C:C),3)) とします。
なお、INDEX関数 を使って求めることもできます。
例えば、 =INDEX(C:C,COUNTA(C:C)) といった数式にすることもできます。
問題3
【問題3】E3セルに月を入力すると、月名と読みが表示されるようにしなさい。
↓のデータをコピーして利用してください。
月
旧暦の月名
読み仮名
1月
睦月
むつき
月
旧暦の月名
読み仮名
2月
如月
きさらぎ
7月
文月
ふみづき
3月
弥生
やよい
4月
卯月
うづき
5月
皐月
さつき
6月
水無月
みなづき
7月
文月
ふみづき
8月
葉月
はづき
9月
長月
ながつき
10月
神無月
かんなづき
11月
霜月
しもつき
12月
師走
しわす
問題3の解答例
F3セルには =INDIRECT(ADDRESS( MATCH($E3,$A$1:$A$13,0) , MATCH(F$2,$A$1:$C$1,0) ) ) と入力します。
行番号は MATCH($E3,$A$1:$A$13,0) E3セルの値がA1:A13と一致する位置を計算しています。
列番号は MATCH(F$2,$A$1:$C$1,0) タイトル行でF2セルの値がA1:C1と一致する位置を計算しています。
F3セルの数式を右方向へオートフィルでコピーします。
ちなみに、XLOOKUP関数を使うと、=XLOOKUP(E3,A2:A13,B2:C13) で求めることができます。
スポンサードリンク
Home »
エクセル関数一覧表 »
ADDRESS関数の使い方
PageViewCounter
Since2006/2/27