可変な範囲に名前を定義する
毎月、ピボットテーブルを使った集計をしています。
集計対象のデータ数が毎回変わるので、
ピボットテーブルのデータソース範囲を
毎回更新するのが面倒でした。
色々と調べていくうちに、
「可変な範囲に名前を定義できる」ということが分かりました。
やり方としては、名前を定義する際、
OFFSET関数とCOUNTA関数を組み合わせて、
参照範囲を指定します。
考え方
OFFSETの引数は、以下の通りです。
- 第1引数:基準となる参照
- 第2引数:行数
- 第3引数:列数
基準となるA1セル(範囲の左上端)から、
「A列に記載されているデータ数 - 1」だけ下へ
「1行めに記載されているデータ数 - 1」だけ右へ
進んだ箇所が、範囲の右下端となります。
設定
「名前の管理」から、「新規作成」を選択し、
「参照範囲」に以下の数式を指定してみます。
=Sheet1!$A$1:OFFSET(Sheet1!A$1,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!1:1)-1)
- Sheet1!$A$1:左上端
- OFFSET(Sheet1!A$1,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!1:1)-1):右下端
左上端から右下端を、数式で表現することができました。
仕上げ
作成した名前を、ピボットテーブルのデータソース範囲に指定します。
これで、データが増減しても、データソース範囲は最適化されます。