• ベストアンサー

【Excel】 範囲が変わる小計の求め方。

こんにちは。 画像の様な表を作成中です。 B列は、A列の品番の個数を VLOOKUPでSheet2(便宜上Book5に表示)の値を表示しています。 ただし、A列が、"小計"の行は、上の小計の直下の値からの小計を 求めるようにしたいのです。 Book3や、Book4の様に、小計の位置が変るため、 予めセル範囲を指定したSUMでは、上手く行きません。 この様な場合は、どのようにすると良いでしょうか。 Excel2003です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

作業列なしで遊んでみました。 B2セル =IF(A3="小計", SUM(INDEX(B:B,MAX(3,IF($A2:A$3="小計",1+ROW($A2:A$3)))):B2), VLOOKUP(A3,$D$3:$E$7,2,FALSE)) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) 下へオートフィル 参考まで

その他の回答 (4)

noname#262398
noname#262398
回答No.5

B3は、そのままVLOOKUPの式を使用。 B4=IF(A4="小計",SUM(B$3:B3)-SUMIF(A$3:A3,"小計",B$3:B3)*2,VLOOKUPの式) 下へコピー。

hee1
質問者

お礼

いろいろな、やり方があるので感心しました。 どちらの方法でも、思っていた表になりました。 有難うございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

商品番号に文字列を付ける。 例えば「A0001」 Sheet2のB2に =VLOOKUP(A2,Sheet1!$A$1:$B$9,2,FALSE) 下方にオートフィル これでうまくいくと思いますが

回答No.3

No1の修正m(_ _)m B4セルに =IF(A4="小計", SUM(INDEX(B:B,MAX(3,IF($A$3:A3="小計",1+ROW($A$3:A3)))):B3), VLOOKUP(A4,$E$3:$F$7,2,FALSE)) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) でしたm(_ _)m 合計は=SUM(B3:B9)/2 となります

hee1
質問者

お礼

いろいろな方法を教えて頂き、有難うございました。 作業列は設けにくい表でしたので、 大変役立ちました。 有難うございました。

回答No.2

遊びはやめて作業列版 B3セル =IF(A3="小計",C2,VLOOKUP(A3,$E$3:$F$7,2,FALSE)) C3セル =IF(A3="小計",0,SUM(B3,C2)) B3:C3セル範囲を下へオートフィル C列非表示