- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 仮にD1に基準値が入力されているとします。 D2に=IF(COUNT(C2),C2+INDEX($D$1:D1,MATCH(MAX($D$1:D1)+1,$D$1:D1,1),),"")として下方向にコピー
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
例データ C列 D列 ーー 31<--D1 <--D2セル。ここに下記の式を入れて、下方向に式を複写 6 37<-D3 -37 0 <ーーD7 11 11 3 14 D2セルの式 =IF(C2="","",LOOKUP(10^15,$D$1:D1)+C2) 10^15は、普通使う数では、ありえないほど大きい数の例として使っている。 === 同列の上方向行で最も近い「空白でないセル」を求める式が技巧的。 過去のそういう質問回答がヒントとなっているが、普通の人には難しい。 VBAが判ればVBAでやると素直な考え方で出来るが。 >そのセルから行内の一番近い数字と計算する 行内で無く同一列内で考えて、やっているがそれで良いのだろうね。
- KURUMITO
- ベストアンサー率42% (1835/4283)
ご質問通りの式を作るとしたら例えば1行目は空の行としてD2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OFFSET(D2,0,-1)<>"",OFFSET(D2,0,-1)+IF(COUNT(D$1:D1)=0,0,LOOKUP(10^10,D$1:D1)),"")
- mshr1962
- ベストアンサー率39% (7417/18945)
D1=31 として D2=IF(ISNUMBER(C2),SUM(C$2:C2,D$1),"") D2を下方にコピーしてください。 上記は単純にC列に数値がある場合に、D列にD1とC列のその行までの合計を表示します。
- kybo
- ベストアンサー率53% (349/647)
ちょっと発想を変えれば簡単に出来ます。 緑色の列がB列、最初の数字「31」がD1にあるとした場合、 6+31のセルは、(D2のセルと仮定) =SUM($B$1:$B2,$D$1) といれます。 -37+37=0の所はD2のセルをコピーし、D9に貼り付けます。 以下同様にすれば出来ます。
お礼
ありがとうございます。とても複雑な式になるのですね。 確認してみます。