重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

日の出から日の入までの範囲の平均温度を求めたいのですが、日の出時刻と日の入り時間はVLOOKUP関数によって求めています。
A列に時刻、B列に温度が並んでいます。
求めた時刻が例えば、日の出6:00(セル番号 A360)、日の入18:00(セル番号 A1080)となっている場合。
当然ながら、=AVERAGE(A360:A1080)と入力すれば可能ですが、
=AVERAGE(VLOOKUP関数数式:VLOOKUP関数数式)はエラーとなります。
=AVERAGE(VLOOKUP関数数式,VLOOKUP関数数式)は2点のみの平均温度となってしまいます。
どのような方法で解決できるでしょうか?
あるようで見つからないのですが、指定した範囲内に一致する数値があった場合にそのセル番号を返すような数式はあるのでしょうか?

A 回答 (2件)

例えばOFFSET関数とMATCH関数を組み合わせる方法があります


D1に日の出時刻、D2に日の入時刻を関数で求めておくと

=AVERAGE(OFFSET($B$1,MATCH(D1,A:A,1)-1,0,MATCH(D2,A:A,1)-MATCH(D1,A:A,1)+1,1))
で平均気温(?)が求められます

>指定した範囲内に一致する数値があった場合にそのセル番号を返すような数式
それがMATCH関数です。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
とりあえず教えて頂いた数式を入力してみますと目的どおりの結果となりました。ただ、私にとっては複雑で内容を理解できていないのでもう少し勉強してみます。

お礼日時:2008/03/19 20:01

これは配列数式(多分SUMPRODUCTでも可能か、未確認)で解くのが適した方法かと思う。


例データ ちょっと勝手な例に簡素化している。
F1:H6に
日日の入り日の出(24時を越える例になってすまない)
11120
22030
32431
42833
53036
ーーーー
A1:B3
A列  B列
1日
日の入り日の出で
1120
ーー
A3は =VLOOKUP($A$1,$F$2:$H$6,2,FALSE)
B3は =VLOOKUP($A$1,$F$2:$H$6,3,FALSE)
で求める。
ーーー
D列 E列 D1:E16
時刻(に当たるもの)    計数
12
33
56
75
94
112
137
153
172
194
215
235
256
277
292
313
ーー
関数
=AVERAGE(IF((D1:D16>=$A$3)*(D1:D16<=$B$3),E1:E16,""))
ト入れてShift、Ctrl,Enterの3つのキーを同時押しする。
結果
3.6
ーーー
検算 
D列とE列の一部(=D列で条件に合致するもの)
時刻の間隔のつもり。
11より大で20より小のもの
112
137
153
172
194
計18
平均3.6ーー>一致
===
これも
>私にとっては複雑で内容を理解できていないのでもう・・
言われそうだが、質問の内容が難しいタイプなんです。身に過ぎた
課題にぶつかったということです。
少し易しくする方法は中間列などを多用するしかないようにおもう。
しかし日の数が多くなると収拾付かない。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。大変参考になりました。
結局、データロガーの値を貼り付けのみで解決したかったので、OFFSETとMATCHを使うことにしました。
えーと、はい、完璧に理解しましたのでご心配なく。

お礼日時:2008/03/22 08:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!