• ベストアンサー

エクセル-セルから一番近い数字と計算

セルの左隣に数字がある場合、そのセルから行内の一番近い数字と計算する 関数ご存じないですか。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 仮にD1に基準値が入力されているとします。 D2に=IF(COUNT(C2),C2+INDEX($D$1:D1,MATCH(MAX($D$1:D1)+1,$D$1:D1,1),),"")として下方向にコピー

pp500
質問者

お礼

ありがとうございます。とても複雑な式になるのですね。 確認してみます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

例データ 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)
回答No.4

ご質問通りの式を作るとしたら例えば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)
回答No.3

D1=31 として D2=IF(ISNUMBER(C2),SUM(C$2:C2,D$1),"") D2を下方にコピーしてください。 上記は単純にC列に数値がある場合に、D列にD1とC列のその行までの合計を表示します。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

ちょっと発想を変えれば簡単に出来ます。 緑色の列がB列、最初の数字「31」がD1にあるとした場合、 6+31のセルは、(D2のセルと仮定) =SUM($B$1:$B2,$D$1) といれます。 -37+37=0の所はD2のセルをコピーし、D9に貼り付けます。 以下同様にすれば出来ます。

関連するQ&A