>>127
『小計』『税』『合計』をもともと書いておくのなら、
>>130>>136 さんの言うように、あらかじめ小計より上のセルまでを指定しておけばいい
んで、いらない行の部分は、Excelの数字が書いてある部分を選択して行ごと削除すればいい。
そうしたら自動的にSUMの範囲も削除した行の分は減らしてくれるよ。
 
 
もしその担当の人が、行ごと削除とかうまくできないだとか怖いとか言うけど
都度『小計』『税』『合計』の文字をD列に書いてくれるっていうなら、
↓E1に張り付けて、使いそうな行の範囲までオートフィルで下までコピーすればいい。
※長すぎるために改行してある部分は、繋げてね。

■結果のみVer.
=IF(D1="","",IF(D1="小計",SUM(INDIRECT("E$1:E"&ROW()-1)),IF(D1="税",ROUND(INDEX(INDIRECT("E$1:E"&ROW()-1),MATCH("小計",D:D))*0.08,0)
,IF(D1="合計",ROUND(INDEX(INDIRECT("E$1:E"&ROW()-1),MATCH("小計",D:D))*1.08,0),C1*D1))))

■おせっかいVer.
=IF(D1="","",IF(D1="小計",SUM(INDIRECT("E$1:E"&ROW()-1)),IFERROR(IF(D1="税",ROUND(INDEX(INDIRECT("E$1:E"&ROW()-1),MATCH("小計",D:D))*0.08,0)
,IF(D1="合計",ROUND(INDEX(INDIRECT("E$1:E"&ROW()-1),MATCH("小計",D:D))*1.08,0),C1*D1)),"D列内に『小計』『税』『合計』の順で記入してください。")))
 
 
>>131
>>42 はあなたの事でしたかw(口調に関してね)
まぁでも式は、全部関数でやって可変となる作業列を減らそうとするとそんな感じに長くもなるよね・・・。
一旦作業列で通し番号つけてOFFSETでってのも考えたけど、作業列も可変になってしまうし。