- 締切済み
SUM関数で教えて下さい。
関数かマクロで教えて下さい。 シート1に日付が4/1~9/30があり、その下に売上数字があります。 シート2のセルA1に集計開始日、セルC1に集計終了日を入力すると セルB2にシート1の集計期間の売上合計が計算されるようにしたい のですが、わからなくて困ってます。 集計期間は、変動しますので集計開始日、集計終了日を入力した 期間で集計したです。 わかりにくい説明ですみませんが宜しくお願い致します。 シート1 日付 4/1 4/2 4/3 4/4 4/5 → 9/28 9/29 9/30 売上 10 21 3 9 6 → 4 6 7 シート2 5/1 ~ 5/15 売上合計 163
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
日付がSheet1!B1:GA1 売上がSheet1!B2:GA2 集計開始日がSheet2!A1 集計終了日がSheet2!C1 売上合計がC2として EXCEL2007であれば C2=SUMIFS(Sheet1!B2:GA2,Sheet1!B1:GA1,">="&A1,Sheet1!B1:GA1,"<="&C1) EXCEL95/97/98/2000/2002/2003であれば C2=SUMIF(Sheet1!B1:GA1,">="&A1,Sheet1!B2:GA2)-SUMIF(Sheet1!B1:GA1,">"&C1,Sheet1!B2:GA2) または C2=SUMPRODUCT((Sheet1!B1:GA1>=A1)*(Sheet1!B1:GA1<=C1),Sheet1!B2:GA2)
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =SUM(OFFSET(Sheet1!$A$1,1,MATCH(A1,Sheet1!1:1,0)-1,1,MATCH(C1,Sheet1!1:1,0)-MATCH(A1,Sheet1!1:1,0)+1))
#2です。 SUM関数を使うなら、こんな方法もあります。 B1の内容は何が入っているかわかりませんが、 もし、何か文言だけが入っているのでしたら、 B1に ="Sheet1!R2C"&DATEDIF(Sheet1!$B$1,$A$1,"D")+2&":R2C"&DATEDIF(Sheet1!$B$1,$C$1,"D")+2 として、表示書式に、その文言のみを指定します。 たとえば、B1に「期間合計」と表示したければ、表示書式に「"期間合計"」と設定します。 これで、B1の内容が何であっても、表示は「期間合計」と表示され、かつ、セルの実際の内容は保持されます。 これは、別途ワーク用セルを確保しにくい時に、表題などのセルを利用する手です。 この数式によって、B1には集計に必要となる期間に対応したセル範囲が文字列で取得されています。 ここで、B2に =IF(AND($A$1>0,$C$1>0,$A$1<=$C$1),SUM(INDIRECT($B$1,0)),0) とすれば、5/1-5/15なら、 B1は「Sheet1!R2C32:R2C46」(これは「Sheet1!$AF$2:$BJ$2」と等価です)となっていますので、 =SUM(Sheet1!$AF$2:$BJ$2) が計算されます。 ご参考まで....
=SUMPRODUCT((Sheet1!$B$1:$GB$1>=$A$1)*(Sheet1!$B$1:$GB$1<=$C$1)*(Sheet1!$B$2:$GB$2)) でダメですかね。 ただし、A1とC1に入れる日付のデータが、 Sheet1の日付の形式がすべてシリアル値でないといけません。
- izmlz
- ベストアンサー率55% (67/120)
=SUM(INDEX(Sheet1!2:2,MATCH(A1,Sheet1!1:1,0)):INDEX(Sheet1!2:2,MATCH(C1,Sheet1!1:1,0))) といった感じでしょうか。