リストを対象に計算を行うことは多々あります。
しかしそのリストにデータが増え続けると、その範囲を再度指定しなおす必要があります。
これは面倒なので、入力データが増えると自動的に参照範囲も更新される方法をご紹介します。
|
OFFSET関数 |
OFFSET関数はセル範囲を返す関数です。常に更新された範囲を対象とすることが可能です。
(※OFFSET関数についてはこちら )
-
OFFSET (基準値
, 行数
,
列数
, 高さ
, 幅 )
OFFSET(基準とするセルを指定
, ○行移動
, ○列移動
,セル範囲の高さ(行数)
, セル範囲の幅(列数))
|
例(1) 随時データが追加されるリストの合計金額を出す |
=
SUM
(OFFSET (A1 , 1 ,1 ,
COUNT(B:B),
1 )
A1を基準値として1行1列移動し(→B2に移動)、COUNT関数でB列にあるデータの個数を出し(→行数が出る)その範囲を合計する。
つまり、B2から5行(データ個数)1列分の範囲を合計する
答え 2251 (A1から1行1列移動し、5行1列分のセル範囲の合計を返す)
こ
れにより今後データが増えてもCOUNT関数によって対象セルの範囲も更新されるので、合計金額も更新される。 (もし、COUNT関数で常に数えないセルなどがある場合は、COUNT(B:B)-1 などとしてください。)
|
例(2) 随時データが追加されるリストをVLOOKUP関数で参照するには |
D列にNO.を入力すると、E列に商品名、F列に価格が表示されるよう、E列/F列にVLOOKUP関数を設定します。
= VLOOKUP (D2,
OFFSET ($A$1 , 0 , 0 ,
COUNTA(A:A), 3 ) , 2 , 0 )
参照先範囲として、A1を基点に0行0列の位置から、A列に入力されたデータ数(行):3(列)分を常に対象範囲とする。
この式により、E列はVLOOKUPの参照先範囲として、『A列に入力されている個数分の行』と『3列』の範囲を常に指定できます。 追加でデータが入力されれば参照範囲も更新される為、数式を変更する必要がなくなります。
|
例(3) 随時更新されるデータを入力規則の「リスト」として使用したい |
↑例(2)のようにD列にNo.を入力する場合、ドロップダウンリストから選択した方が素早く入力できます。
入力規則の「リスト」も、随時更新されるデータを参照元にすることが可能です。
-
ドロップダウンリストとして設定したい範囲(D列のセル)を選択
-
「データ」−「入力規則」をクリックし、「入力値の種類」=「リスト」とする
-
元の値ボックスに「=OFFSET ($A$2 , 0 , 0
, COUNTA (A:A)
-1
, 1) 」と入力し、「OK」をクリック
この式により、A2を基点とし、A列にある個数分だけの「行」(※
「−1」はA1セルの「No.」を数えないようにする為)と、1列分を常にリストの参照元とすることができます。
|