Microsoftアクセスを使って電力使用量を管理するシステムを製作しています。
集計する基となっているデータは
(1)CSVで出力されたファイル
(2)縦に時間が30秒刻みで入力(0:00:00~23:59:30)
(3)横にそれぞれの計測機器での計測値が入力
(4)1日1ファイルが生成され、日時を含んだファイル名で保存される
上の様なデータをアクセス上で管理&集計してグラフ化などを行いたいと考えています。
現状で機器が約100個あるので100列、30秒刻みで24時間なので2880行、1日で約300,000ものレコードが生成されています。
データの計測と出力はとあるメーカーの機器で行っているため、容易に仕様を変更することは出来ません。
このままだと長期使用を考えた際にデータ量が大きくなってしまうので、業務上必要なレベルまで集計して、外部ファイルとして保存し必要な際に取り込むという手法を検討中です。
具体的には、現在の30秒間隔でのデータを1分または2分間隔まで間引きしたいと考えています。
このデータを1ヶ月単位でまとめ外部ファイルに出力し、必要な際に取り込ませます。
それぞれのデータは30秒間隔の差分なので、1分または2分にまとめるには2行または4行分のレコードの和算をしなければなりません。
1日単位で出力されたデータを1ヶ月単位でまとめるのは単純に追加クエリを使って可能ですが、上記の様な集計は可能なのでしょうか?
1分間隔ならば、「時間」フィールドの「分」の桁まで一致するレコードをグループ化という方法もあるかと考えましたが「時」の桁が
1桁の場合(0時~9時まで)と2桁の場合(10時以降)があるので、上から○桁目まで一致するものをグループ化して合計を出すという方法も使えません。
(そもそもそんなグループ化の手段があるかどうか知りませんが...)
何かよい方法はありますでしょうか?
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
おやりになりたいことは2分単位に丸めるという計算ですね
丸めの一般式は
Int(数字/基数)*基数
です
この式で基数を2分にしてやればいいいのです
Int([時間]/#0:02:00#+0.00000001)*#0:02:00#
ただし、これでは
>一部5レコードと3レコードになってしまう部分がありますね。
こういう現象が出ます
これは日付時刻型というのが浮動小数点型の数値であることから生じる現象です
小数点型の数値はすぐに無限小数になってしまいますが
コンピュータではこれを有限のデータ型で扱う必要から丸めることになり
そのときに生じるわずかな誤差がInt関数を使用することにより大きく現れてしまうのです
これに対処すには丸めで生じるわずかな誤差分を補正してやります
Int([時間]/#0:02:00#+0.00000001)*#0:02:00#
ご返答ありがとうございます。
なるほど、一般的にはのようにして丸めるのですね。
他にも応用出来ますね!とても参考になりました。
実際にこの方法を使ってみたいと思います。
小数値の誤差発生に関しては聞いたことがありました。
No.5
- 回答日時:
#2、#3です。
Int(CCur(Nz([時刻]*24*30,0)))
Nzを使用して良いのですか?Nullが0でくくられては困るように感じるのですが。実際の仕様が判らないので何とも云えませんが。
それと誤差丸めにCCurを使用するのは(好みの問題ですが)私ならば使いません。#2、#4に提示されたような方法が、何が起きているか明快なので、問題が発生したときデバッグが楽です。
丸めて算出する部分は時刻を表すフィールドのみなのでNullが入ることはありません。そうなるとこれでも問題は無い様ですね。
ですがご指摘からするとCCurは後のことを考えると使わない方が良いみたいですね。
+0.00000001の様にアナログ的に対処するよりも関数で対処した方が良いものかとずっと思っていましたが単純にそうではないという事を認識しました。
大変ありがとうございました。
No.3
- 回答日時:
#2です
>このクエリでは時刻フィールドをどのような数字と捉えて演算をしているのでしょうか
クエリというかアクセス(そして多くのDBや言語)の日付時刻型の実体は、倍精度ぐらいの数字です。整数部が日付、小数部が時分秒以下を表現します。で
Int([時刻]*24*30)
のような発想が出ます。しかし少数で「分」を正確に表現できないため、
>一部5レコードと3レコード
が発生するようですね。Int([時刻]*24*30+0.1)
みたいな対策では如何でしょうか?
この回答への補足
ご返答ありがとうございます。
なるほど、日付以下を小数としていたんですね。
Int関数による小数値の誤差発生に関しては聞いたことがありました。
現在ご教授頂いた方法を参考に以下のような形で対処したのですがこれは問題は無いでしょうか?
ちなみに結果は正しく表示されております。
V: Int(CCur(Nz([時刻]*24*30,0)))
No.2
- 回答日時:
時間フィールドは「日付時刻型」でしょうか?そうでなければフィールドを追加し型を変換してください。
SQL文はUPDATE 時刻 SET 時刻.時刻 = [時刻文字];
みたいなので。で、日付時刻型であれば
Int([時刻]*24*30) AS T
のごとくすれば2分間隔で表示できます。下記のようなSQL文で確認しました。
SELECT 時刻.時刻文字, Int([時刻]*24*30) AS T FROM 時刻;
この回答への補足
ありがとうございます。
時間フィールドは日付時刻型になっております。
実際に試してみました。
たしかに4レコード毎に同じ数字が振られるようになりましたが、一部5レコードと3レコードになってしまう部分がありますね。
Int関数の影響でしょうか。
このクエリでは時刻フィールドをどのような数字と捉えて演算をしているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) 指定した値以上の中で最小値を出したい 7 2022/10/24 21:12
- IT・エンジニアリング 大規模言語モデルは今後どのように進化していくでしょうか? 1 2023/07/20 19:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付を昇順で並び替えし、空白...
-
word2007で日付挿入したら翌日...
-
エクセル→ワードへの差し込み印...
-
重複を除外したカウント方法を...
-
ファイルメーカーのレコード検索
-
ファイルメーカーで最終日+時刻...
-
FileMaker Ver.7で2つの日付間...
-
Word2010 フィールド内での和...
-
Access2000 クロス集計クエリで...
-
複数のクエリを結合して実行し...
-
日付を差し込み印刷で表示した...
-
日付自動入力のカスタマイズに...
-
ACCESS サブレポート パラメー...
-
Accessでテキストを日付に変更...
-
日付型のテキストボックスに数...
-
クエリで日付型のIIF関数の使用
-
ウィンドウィズ メモ帳で日付だ...
-
ファイルメーカーの自動計算に...
-
VBAでエクセルシートを更新...
-
「24日の0時」って・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付を差し込み印刷で表示した...
-
ウィンドウィズ メモ帳で日付だ...
-
日付を昇順で並び替えし、空白...
-
差し込み印刷で日付の曜日を表...
-
Word2010 フィールド内での和...
-
Accessで秒を時間で表示させる...
-
重複を除外したカウント方法を...
-
クエリで日付型のIIF関数の使用
-
Wordの日付変換ってできますか?
-
日付型のテキストボックスに数...
-
日付がインポートされない
-
ACCESSの自動連番について
-
【Tableau Desktop】文字列から...
-
Wordで、ヘッダーに印刷日付を...
-
accessで残業時間計算
-
ファイルメーカーPro7でカレン...
-
挿入した日付の自動更新を中止...
-
Accessで日付から曜日を自動で...
-
ファイルメーカーで検索結果を...
-
ファイルメーカーの日付の検索
おすすめ情報