• ベストアンサー

一つ上のセルを検索したい

エクセルの関数で教えてください。 エクセルで、一つ上のセルが0の場合はもう一つ上のセルを検索したいのですが、どのようにしたらいいのかわからないので、どなたか教えていただけますか。 具体的には、下のような表を作成しています。   A  B C 1 15日   10 2 16日  0 10 3 17日  2 12 4 18日  5 19日 6 20日 □ 13 計算式としては、C2-C1の値がB2に入るのですが、休日の日があると、前日は空白なので上の例だと20日の場合には□の部分に-13と表示されてしまいます。 実際は、17日の分と比較したいので、13-12で1と入れたいのです。今までは、手書きでなおしていたのですが、何か良い方法があればと思いまして。 たとえば、一つ上のセルを検索し、0ならば、もう一つ上のセルを検索のような方法がよいのかと思ったのですが、他に方法があるならば、全然構いません。 わかりづらい説明で大変申し訳ありませんが、どなたかご教授願います。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 B2に、 =IF(LEN(C2),C2-LOOKUP(MAX($C$1:C1)+1,$C$1:C1),"") と入力して、下の行へコピーします。 基本的にはNo.4の方と同じですが。

brustand
質問者

お礼

できました。ありがとうございます!

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

B2=IF(C2="","",C2-INDEX($C$1:$C1,MATCH(MAX($C$1:$C1)+1,$C$1:$C1,1))) をコピーしてみてください。

brustand
質問者

お礼

なるほど。MAXをうまくつかえば出来たんですね。 勉強になりました。ありがとうございます。

回答No.3

>できれば表示されないほうが嬉しいです。 でしたら、曜日を表示する列を作って、 (曜日も表示したくない場合はその列を非表示に) その列のデータをもとに、 「条件付書式」で休日の場合は文字色を白にするという方法もあります。 曜日の取得はもちろんWEEKDAY関数で。 式はできるだけ煩雑にならないほうがいいと思うのですが。

brustand
質問者

お礼

シフト制なので休みの日は、日祭日だけとは限らないんです。。。 すみません。

  • galoon
  • ベストアンサー率28% (38/133)
回答No.2

とりあえず3連休ぐらいまで対応とすると B5に入れる数式は、 =C5-IF(ISNUMBER(C4),C4,IF(ISNUMBER(C3),C3,IF(ISNUMBER(C2),C2,0))) でいかがでしょうか。 ちょっと煩雑で見辛いですけど・・・。

回答No.1

一番手っ取り早いのは、 C4もC5も引き算の式を入れてしまうことです。 そうするとC4もC5も式の結果(12)が表示されてしまいますが、 難しいことを考えなくてすみます。 これではだめなのでしょうか・・・

brustand
質問者

お礼

できれば表示されないほうが嬉しいです。すみません。

関連するQ&A