[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『5秒毎のデータの平均を1分値にまとめる方法』(yuki18888)
質問内容 WindowsXP Excel2003を使用しています。
5秒毎のデータの平均を1分値にしてまとめなければいけないのですが、 量が膨大すぎて、よいやり方をご存知であれば、教えて下さい。 8時間分が一週間分あります。
日付 A B 2009/5/1 7:00:00 0.6 1.5 2009/5/1 7:00:05 0.8 1.2 2009/5/1 7:00:10 0.3 3.2 2009/5/1 7:00:15 1.5 1.5 2009/5/1 7:00:20 0.8 1.5 2009/5/1 7:00:25 0.8 1.5 2009/5/1 7:00:30 0.8 1.2 2009/5/1 7:00:40 0.3 1.5 2009/5/1 7:00:45 0.8 1.2 2009/5/1 7:00:50 0.3 1.5 2009/5/1 7:00:50 0.8 1.2 2009/5/1 7:00:55 0.8 1.2
上記の平均を1分毎にして別シートにて書き出します。 2009/5/1 7:00 0.7 1.5 2009/5/1 7:01 0.5 1.2 ・ ・ ・
エクセルは簡単な演算ぐらいしか使用したことがありません。 まわりにも詳しい方がおらず、よいやり方をご存知の方がいらっしゃれば 教えて下さい。
このようにするのは、どうでしょう? (PENSIONER)
E1に=A1、 F1に=B1、 G1に=ROUND(AVERAGE(C1:C12),1)、 H1に=ROUND(AVERAGE(D1:D12),1)と入力して、
空白行11行を含めE1:H12を選択してH12セルの右下隅の+印を下にフィルドラッグします。
下まで選択した状態のまま、メニューから編集、ジャンプ、セル選択、空白セルをON、OKとし、 右クリック削除上方向にシフトをON、OKとします。EからH列に1分単位の表ができます。
== 途中図 ==
A B C D E F G H 2009/5/1 7:00:00 0.6 1.5 2009/5/1 7:00:00 0.7 1.5 2009/5/1 7:00:05 0.8 1.2 2009/5/1 7:00:10 0.3 3.2 2009/5/1 7:00:15 1.5 1.5 2009/5/1 7:00:20 0.8 1.5 2009/5/1 7:00:25 0.8 1.5 2009/5/1 7:00:30 0.8 1.2 2009/5/1 7:00:40 0.3 1.5 2009/5/1 7:00:45 0.8 1.2 2009/5/1 7:00:50 0.3 1.5 2009/5/1 7:00:50 0.8 1.2 2009/5/1 7:00:55 0.8 1.2 2009/5/1 7:01:00 0.6 1.5 2009/5/1 7:01:00 0.7 1.5 2009/5/1 7:01:05 0.8 1.2 2009/5/1 7:01:10 0.3 3.2
こんばんは(くぅ) ピボットテーブルも使えますが、ABを列に並べる方法がわかりません。 こういった形か、A・B別のテーブルになりそうです。
7時 0分 平均 : A 0.716666667 平均 : B 1.516666667 1分 平均 : A 0.599184149 平均 : B 0.803379953 2分 平均 : A 0.481701632 平均 : B 0.09009324 3分 平均 : A 0.403379953 平均 : B -0.385431235
Aのみ表示の場合こんな感じ 7時 0分 0.716666667 1分 0.599184149 2分 0.481701632 3分 0.403379953
時とか分は表示設置で変えることができます。
もしやってみようと思われたら、
メニューのデータの中にあります
グループとアウトラインの設定で、分単位に集計し、
フィールドの設定で平均を選びます。
質問の文章では、時間情報がどの列にあるかわからなかったので、 PENSIONER さんの回答のように A〜D列にデータがあることを想定した回答です。
計算式でもできるかと思いましたが、数万行のデータでは時間がかかりそうでした ので、マクロにしてみました。
WorkSheet1 にデータがあった場合、WorkSheet2に平均を計算する式を設定します。
(1)ALT+F11を押して表示されるウィンドウで、挿入⇒標準モジュールをクリックし、 そのウィンドウに下記をコピーしてください。 (2)先頭の 「Sub SetAverage()」の行をクリックし、F5を押してください。 これで、シート2に計算結果ができているかと思います。
Sub SetAverage() Dim ws1 As Worksheet Set ws1 = Worksheets(1)
Dim ws2 As Worksheet Set ws2 = Worksheets(2)
Dim averageFormulaC As String Dim averageFormulaD As String averageFormulaC = "=AVERAGE(" & ws1.Name & "!C@S@:C@E@)" averageFormulaD = "=AVERAGE(" & ws1.Name & "!D@S@:D@E@)"
Dim i As Long Dim lastRow As Long lastRow = ws1.Cells(Rows.Count, "A").End(xlUp).Row
ws2.Columns("A:D").Clear ws2.Range("B1").Resize(lastRow, 1).NumberFormatLocal = "hh:mm;@"
Dim startRow As Long startRow = 1 Dim currentMin As Long currentMin = Int(ws1.Range("B1").Value * 1440.001) Dim r As Long r = 1 For i = 1 To lastRow If currentMin <> Int(ws1.Cells(i + 1, "B").Value * 1440.001) Then ws2.Range("A" & r).Value = ws1.Cells(i, "A").Value ws2.Range("B" & r).Value = CDbl(currentMin) / 1440# ws2.Range("C" & r).Formula = Replace(Replace(averageFormulaC, "@S@", startRow), "@E@", i) ws2.Range("D" & r).Formula = Replace(Replace(averageFormulaD, "@S@", startRow), "@E@", i) r = r + 1
currentMin = CLng(ws1.Cells(i, "B").Value * 1440.001) startRow = i + 1 End If Next End Sub (Mook)
集計という機能でも可能です。ピボットとは別(くぅ)
集計もデータのところにあります。このほうが簡単かも 日付の列を、セルの書式設定で、時刻の13:30とあるものにし、 「グループの基準」で日付、「集計の方法」で、平均を選び、 A、Bともチェックをいれます。 行番号の左にグループ化表示がでるので、2を選択して、詳細を非表示にすると 下記のように表示されます。あと、可視セルのみコピーします。 7:00 平均 0.716666667 1.516666667 7:01 平均 0.599184149 0.803379953 7:02 平均 0.481701632 0.09009324 7:03 平均 0.403379953 -0.385431235
ピポットも集計も、列の先頭に、タイトルが日付、A,Bという感じで必要です
ピボット:便利ですが、設定がわかりにくいことも http://www11.plala.or.jp/koma_Excel/contents3/mame3028/mame302801.html
集計 http://www.eurus.dti.ne.jp/~yoneyama/Excel/syukei.html
>くぅ様 >PENSIONER様
こんばんは。早々の返信ありがとうございます。 おかげで、何とか作業を終了することができました。
まさか、こんな複数のやり方があるとは知らずエクセルの奥深さを知った気分です。
最初に全てを記載しなかった私が悪いのですが、 時間がA列でそれ以降C列からY列まで項目があり(B列は空白です)、 PENSIONER様に教えて頂いたマクロは使うことが出来ませんでした。 中身を少しいじったりしたのですが、「コンバットエラー」と表示されてしまいました。 残念です。
今回はくぅ様にご教授いただきました集計で何とか作業が出来ました。 また、マクロとかも覚えてみたいです。
本当にありがとうございました。
お役に立てたようでよかったです(くぅ) あまり丁寧な説明でないので、余計だったかもと思ってました。 日付を書式設定で秒切捨て表示にできないようなデータだったらとか思ったのですが、 無事終了のようでよかったです。
マクロを使用されるにしてもマイクロソフトが用意してくれている機能を活用する方が、 同じ処理なら早いと聞いています。 すでになさってるかもしれませんが、このような処理がよく発生してくるようなら、 マクロの記録をして編集されるといいかもしれません。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.