して含める値を表す追加の引数。セルの参照範囲を可変にする数式の解説では、実際に全合計(E3)開始日(E4)終了日(E5)期間合計(E5)それぞれの設定方法について、以下で順に説明します。今回セル範囲を可変にする方法の解説として、データ範囲だけをSUMするようにしてみました。=SUM(OFFSET($B$2,0,0,COUNTA($A:$A)-1,1))$B$2,0,0B2から、下に0、右に0移動、つまり、B2になります。COUNTA($A:$A)A列にあるデータの個数です。1行目が見出しになっていますので、1引いています。上の図では、11になります。従って11-1=10が、OFFSETの高さになります。B列でもよいです、ここでは日付を基準にしているだけです。B2から、高さ10、幅1のセル範囲になります。B2~B11になります。結局は、=SUM(B2:B11)となるわけです。COUNTAでデータの個数を取得し、セル範囲を決定していますので、データの追加・削除に自動で対応されるようになります。2007以降の場合、範囲は「ブック」、2003にはありません。「参照範囲」に「=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)」OK」=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)COUNTAでA列のデータの個数を取得し、A2からデータ個数分のセル範囲を決定しています。入力規則を設定します。F3を押すと名前定義の一覧から選択できます。期間合計(E5)の数式=SUM(OFFSET(B2,MATCH(E3,日付,0)-1,0,MATCH(E4,日付,0)-MATCH(E3,日付,0)+1,1))少々長い数式ですね。この一番外側のOFFSETは、B2のセルを、開始日までずらし、終了日までの高さのセル範囲を求めています。作成手順を詳しく見てみましょう。作る時は、以下のように順番に作成します。=SUM(B4:B8)まずは、手作業で、SUM関数を入れてみます。このB4:B8を可変にすれば良いわけです。B4:B8のセル範囲は適当で良いです、この範囲を可変にするのですから。=SUM(B4:B8)↓=SUM(OFFSET(B2,2,0,5,1))B4:B8をOFFSETに置き換えます。引数は、とりあえず定数で入れてみます。計算結果を見て、正しいことを確認しておきます。=SUM(OFFSET(B2,2,0,5,1))↓=SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0,5,1))OFFSETの引数で開始位置である2をMATCHに置き換えます。つねに、計算結果を見て、正しいことを確認します。=SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0,5,1))↓=SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0,MATCH(E4,A2:A11,0)-MATCH(E3,A2:A11,0)+1,1))OFFSETの引数で開始位置である5をMATCHに置き換えます。5=終了日の位置-終了日の位置+1=SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0,MATCH(E4,A2:A11,0)-MATCH(E3,A2:A11,0)+1,1))↓=SUM(OFFSET(B2,MATCH(E3,日付,0)-1,0,MATCH(E4,日付,0)-MATCH(E3,日付,0)+1,1))A2:A11を、日付の可変範囲指定に変更します。日付の範囲に名前定義を作成ここで、「日付」と名前定義してあります。A2:A11を日付に置き換えてやれば良いという事になります。これで期間合計(E5)の数式が完成です。数式を見やすくするために、絶対参照である$を省略しています。絶対参照は、最初から入れられれば良いですが、$をいれると、どうしても数式が見づらくなるので後回しにしても良いでしょう。数式が完成した後に、まとめて$を入れても良いでしょう。関数のネスト(入れ子)が多いだけで、一つ一つの関数は難しいものではありません。エクセルを使う一人一人にとって必要な関数は、そんなに多くないはずです。必要なことは、その関数をいかに組み合わせるかにかかっています。整理して、順序よく、考えれば、難しいく見える数式も作成できるようになります。難しく長い数式を作ったからと言って、決してそれがすごい事ではありません。本来は、難しい数式を作らなくても良いようにシートを工夫するべきことです。同じことを行っているのなら、なるべく短く易しい数式の方が良いはずです。作業列を使って数式を細かい単位で完成させる等の工夫をしてください。数式.作業セル、計算セル関数の引数に、さらに関数を入れ、関数をネスト(入れ子)にしますが、このネストが多くなると、数式が複雑になりすぎてしまい、他人が見たときに数式の意味するところが分からなくなってしまいます。数式を書いた本人であっても、時が経つと解読が困難になる場合もあります。Next)|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作ホームエクセル全般エクセル関数超技セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用ホームエクセル全般エクセル関数超技セルの参照範囲を可変にするこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。