• ベストアンサー

各区分ごとの最高値とその差を計算したいのですが

   [A列] [B列]     [C列]               [D列] [1行](天気) (気温)   (最高気温)           (気温差) [2行]  1   22.4  [3行]  2   20.5 [4行]  3   21.7  (B2~B4のうち最高気温)    [5行]  1   19.2 [6行]  2   17.0  (B5~B6のうち最高気温)  (直前最高気温C4との差) [7行]  1   19.8 [8行]  2   20.9  [9行]  3   20.1  (B7~B9のうち最高気温)  (直前最高気温C6との差) (以下省略) 上記のようにデータが並んでいるとします。 A列は同じ天気が続いた場合、その継続日数を順に入力しています。 例えばA列は上から順に晴れ1日目は1、晴れ2日目は2、晴れ3日目は3で、 次の日が雨で、雨1日目ということで1、雨2日目は2、次の日が 晴れで晴れ1日目だから1、晴れ2日目は2という具合です。 (但し、それぞれの天気が晴れなのか雨なのかはデータがないため 判別できません。分かるのはあくまで同一天気の継続日数だけです) そしてそれぞれの日の気温がB列に入力されています。 この場合における以下の2つの作業の処理方法を教えてください。 1)継続した同一天気の日の各区分ごとにそれぞれの最高気温を C列に出力する方法 2)D列に直前の最高気温との温度差を出力する方法 (上記の例で言うとD6にはC6-C4、D9にはC9-C6を求めたい) 実際にはデータ数が膨大なため、 回答はワークシート関数でお願いいたします。 OSはWindows2000、エクセルはExcel2000を使用しています。 よろしくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.2

質問の仕方が実に上手だなぁ(内容が必要かつ十分)!と感心してしまいました。 C2: =IF(A3-A2<0,MAX(OFFSET(B2,0,,-A2)),"") D2: =IF(A3-A2<0,IF(COUNT(C$2:C2)=1,"",C2-OFFSET(C2,-A2,)),"")

noname#128465
質問者

お礼

うまく処理することが出来ました。 大変助かりました。ありがとうございました。 PCの調子が悪くなって、修復に時間を取られてお返事が 遅くなってしまいました。申し訳ありません。

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

その他の回答 (1)

  • nekoron07
  • ベストアンサー率37% (69/184)
回答No.1

C2のセルには =IF(A3=1,B2,"") C3のセルには =IF(OR(A4=1,A4=""),IF(A3=1,B3,MAX(INDEX(B:B,ROW()-A3+1,1):B3)),"") と入力して下にコピー D3のセルには =IF(OR(A4=1,A4=""),IF(ISERROR(C3-OFFSET(A3,-A3,2)),"",C3-OFFSET(A3,-A3,2)),"") と入力して下にコピー でどうでしょうか。

noname#128465
質問者

お礼

うまく処理することが出来ました。 大変助かりました。ありがとうございました。 PCの調子が悪くなって、修復に時間を取られてお返事が 遅くなってしまいました。申し訳ありません。

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

関連するQ&A