Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

エクセルでセルの位置を変えて差を求める

100日分のデーターがあり、 A2以下A列に日付。 B2以下B列に温度。 C1に、比較日を入力。 C列にて温度差を求める。 たとえば、C1に2と入れると、C4にB4とB2の温度差。C5以下同様。 C1の数値を変えて比較値を求めたい。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

C2に =IF(OR(B2="",ROW()-C$1<=1,ISERROR(INDIRECT("B"&ROW()-C$1))),"",B2-INDIRECT("B"&ROW()-C$1)) として、下方コピー+ペーストです。

Excel00
質問者

お礼

助かりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • fmajin
  • ベストアンサー率61% (75/122)
回答No.4

A列の「日付」にどんな値(シリアル値か、1~100「日目」のような値)を入力しているのか、不明ですが、このような場合は、「VLOOKUP」関数を活用するのが基本だと思います。もちろん、INDIRECTなどを利用するのもアリだと思いますが、途中の日付が抜けていた場合などは対応できないので、注意が必要です。 100日分のデータが、A2:B101セルに入力されているとしますね。 この場合、C2セルには =B2-VLOOKUP($C$1,$A$2:$B$101,2,0) のように入力して、下方向にコピーします。この際、VLOOKUP関数の第3引数に、「0」(もしくは「FALSE」)を指定することで、C1セルに入力されているデータと同じものを、A2:B101の左端列から「完全に一致する」ものを検索して、見つかった行の「2」列目(ここではB列の「温度」)を返してくれるようになります。日付が順不同だったりしてもかまいませんし、シリアル値で入力されていても、日数で入力されていても対応できます。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18944)
回答No.2

=B2-INDIRECT("B"&$C$1) でできます。 日付でやりたい場合は =B2-INDIRECT("B"&MATCH($C$1,$A$2:$A$101,1)) ただし日付で昇順に並べる必要があります。

すると、全ての回答が全文表示されます。
  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.1

C2に以下のように入れて、下にコピーしてみてはどうでしょうか? =B2-INDEX($B$2:$B$101,$C$1)

すると、全ての回答が全文表示されます。

関連するQ&A