[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1列に並んでいる各日付の平均値の求め方』(かりん58)
すいません。調べ方もわからず、関数でも、VBAでも、できるのであれば教えてください。
よろしくお願いします<(_ _)>
ExcelのA列の上から下に、月の1日から最終日までの日付と大体5分おきの時間が入っており、その横B列に値が入っています。毎月前月のデータを使って処理します。
どのセルにでもいいのですが、その各日付の平均値を求めたいと思ってます。
ここで問題なのが、5分おきと書きましたが、たまにデータが欠落していて、各日付の数が一致しません。
以下の場合、2019/7/1から7/31まで各日付のB列の平均値を求めたいです。
求めた値は、例えば同じシート内D列上から31日分入る形とできますか。別のシートでも大丈夫です。
例
2019/7/1 0:01 8.1234
2019/7/1 0:06 65.7637
2019/7/1 0:11 92.5293
2019/7/1 0:16 53.1329
・
・
2019/7/1 23:51 0.5744
2019/7/1 23:56 0.6116
2019/7/2 0:01 0.7233
2019/7/2 0:06 18.2355
・
・
・
2019/7/31 23:51 0.5588
2019/7/31 23:56 0.6299
※時間は必ず1分からとは限らないのです。
恐れ入りますが、よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:unknown >
Dim dic As Object, dic2 As Object, k As Variant, c As Range, r As Range Set dic = CreateObject("Scripting.Dictionary") Set dic2 = CreateObject("Scripting.Dictionary") For Each c In Range("A:A").SpecialCells(2) dic(Split(StrConv(c.Value, vbNarrow), Space(1))(0)) = dic(Split(StrConv(c.Value, vbNarrow), Space(1))(0)) + Val(c.Offset(, 1).Value) dic2(Split(StrConv(c.Value, vbNarrow), Space(1))(0)) = dic2(Split(StrConv(c.Value, vbNarrow), Space(1))(0)) + 1 Next c Set r = Range("D1") r.EntireColumn.Resize(, 2).ClearContents For Each k In dic r.Resize(, 2).Value = Array(k, dic(k) / dic2(k)) Set r = r.Offset(1) Next k End Sub (mm) 2019/08/02(金) 17:01
ありがとうございます!!やりたい結果となりました!!!
すごいです。。
すいません、、お時間あればもう一つ教えてください。
次は1日全部の平均ではなく、各日付の8:00から20:00までの各日付の平均値を求める事は可能でしょうか?
以下の場合だと、8:01から19:56までです。20:00ぴったりがあった場合は含まなくていいです。
これを例えばD列の横、E列に並べられたいしますでしょうか。
2019/7/1 7:51 0.8158
2019/7/1 7:56 0.5916
2019/7/1 8:01 0.8729
2019/7/1 8:06 0.5911
2019/7/1 8:11 0.6049
・
・
・
2019/7/1 19:51 4.0677
2019/7/1 19:56 3.9475
2019/7/1 20:01 4.6667
2019/7/1 20:06 3.918
恐れ入りますがよろしくお願いします。<(_ _)>
(かりん58) 2019/08/02(金) 17:13
C列に数式で、8:00から20:00かどうか判定するフィールドを追加し
レポートフィルターに配置するとよいです。
(マナ) 2019/08/02(金) 18:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.