2016-10-01 11 views
0

"dd/mm/yyyy hh:mm"という形式の時刻を持つ列が1つあり、別の列にその時刻の温度があります。私は毎月の昼と夜の平均気温を別々に計算しようとしています。私。 5月の06:00〜18:00と5月の18:00〜06:00の間のすべての温度を平均し、3月の同じように続きます。私は現在、次の式を使用しています特定のdatetimeに関連付けられた値による平均列

Time Celsius(C) 
06/05/2016 10:49 28 
06/05/2016 11:49 29 
06/05/2016 12:49 31 
06/05/2016 13:49 27.5 
06/05/2016 14:49 24 
06/05/2016 15:49 25 
06/05/2016 16:49 24.5 
06/05/2016 17:49 23.5 
06/05/2016 18:49 23 
06/05/2016 19:49 22.5 
06/05/2016 20:49 22.5 

:試してみて、日が月以内に、日中であれば平均値を計算するには

=AVERAGEIFS(C2:C3643,B2:B3643,">=01/05/2016",B2:B3643,"<=31/05/2016",B2:B3643,">=01/05/2016 06:00",B2:B3643,"<=31/05/2016 18:00") 

を - しかし、それが働いてたときにしていないと思われます私は同じ数(今月の平均)を吐き出している時間帯を変更します。

答えて

1

あなたは長いSUMPRODUCT式使用することができます。月に1800年に600のために

を:

=SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*(MOD($A$2:$A$12,1)>=TIME(6,0,0))*(MOD($A$2:$A$12,1)<=TIME(18,0,0))*B2:B12)/SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*(MOD($A$2:$A$12,1)>=TIME(6,0,0))*(MOD($A$2:$A$12,1)<=TIME(18,0,0))) 

あなたは常にすべてのDATE()およびTIMEを()セル参照の代わりに、と一部置き換えることができますそれらをハードコーディングする。

enter image description here

は、取得するには、我々が *するのではなく、時間ブールの間 +ORにそれをシフトする必要がある1800と600の間:

=SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*((MOD($A$2:$A$12,1)<=TIME(6,0,0))+(MOD($A$2:$A$12,1)>=TIME(18,0,0)))*B2:B12)/SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*((MOD($A$2:$A$12,1)<=TIME(6,0,0))+(MOD($A$2:$A$12,1)>=TIME(18,0,0)))) 

enter image description here

+0

これをありがとう - あなたが06の間で行うときに動作しているように見えます:00-18:00ではなく、あなたが18の間に周りにそれを交換するとき:00-06:00、あなたはなぜこのことを知っていますそうだろうか? – PaulBarr

+0

@PaulBarr編集を参照してください。 –

0

これはあなたに依存しています次のような月と時間の表を作成します。

enter image description here

この式をE2に入力し、必要に応じてドラッグします。

=AVERAGE(IF(
((MONTH($A$2:$A$101)=MONTH(E$1&1))* 
((MOD(HOUR($A$2:$A$101)-LEFT($D2,2),24))>=0)* 
((MOD(HOUR($A$2:$A$101)-LEFT($D2,2),24))<12)), 
$B$2:$B$101)) 

注:

  • MONTH(E$1&1)の部分はあなたが のようなテキストから月数を取得することができます - Shiftキーからを入力します。これは、配列数式なのでCtrlキーで入力する必要があります"Jan"
  • 私はMODを使用して、時間範囲の左側の部分を減算して これにより、1〜11の間の値をフィルタリングすることが可能になりました。
  • Barry Houdiniがまだ周囲の半分のスペースにある場合、私は確信しています。
0

datetimeを使用していて、実際の日が翌日の18時間から6時間のように真夜中を超えて計算されているときは、時間を戻して計算すると便利です。

6:00から18:00 =(平均($ A $ 2:$ A $ 12-0.25)= D2)*(MOD($ A $ 2:$ A $ 12-0.25,1)< 0 。

18:00から6:00 =平均($($ A $ 2 $ A $ 12-0.25)= D2)*(MOD(5)、$ B $ 2:$ B $ 12、 $ B $ 12、 ""))

これらは、Ctrl-Shift-Enterで入力された配列式です。

ここでは、私は0.25時間(6時間)を相殺しています。

enter image description here

関連する問題