こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

   [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を使用しています。
よろしくお願いします。

投稿日時 - 2007-11-06 08:50:28

QNo.3493454

困ってます

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

質問の仕方が実に上手だなぁ(内容が必要かつ十分)!と感心してしまいました。

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,)),"")

投稿日時 - 2007-11-06 10:23:21

お礼

うまく処理することが出来ました。
大変助かりました。ありがとうございました。

PCの調子が悪くなって、修復に時間を取られてお返事が
遅くなってしまいました。申し訳ありません。

投稿日時 - 2007-11-12 00:15:14

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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)),"")
と入力して下にコピー

でどうでしょうか。

投稿日時 - 2007-11-06 09:36:48

お礼

うまく処理することが出来ました。
大変助かりました。ありがとうございました。

PCの調子が悪くなって、修復に時間を取られてお返事が
遅くなってしまいました。申し訳ありません。

投稿日時 - 2007-11-12 00:15:29

あなたにオススメの質問