![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在、Accessにて "mm:ss.0" 形式 の時刻データを秒数に変換する
クエリの作成を試みていますが、小数点以下の秒数の算出方法が
わからず困っています。
(MS-Access 2002)
Excelでsecond関数を使用し、秒数を算出した場合は以下の通り、
秒数により小数点以下の扱いが異なります。
<Excelにてsecond関数を使用して秒数を計算した結果>
・00:13.5 …… 14秒(少数が丸められる)
・00:14.5 …… 14秒(少数が切り捨てられる)
・00:14.6 …… 14秒(少数が丸められる)
Accessでは"mm:ss.0" というフォーマットが見当たらず、
Second関数も「抽出条件でデータ型が一致しません」と
エラーとなってしまいます。
参考までに試行錯誤の軌跡を載せますが、以下のようなクエリを
作成しても、小数点の丸め処理が秒数によって.5と.6の場合があり、
やはり誤差が出てしまいます。
**
Val(Left([時刻], 2)) * 60 + Val(Mid([時刻],4 , 2)) + Round(Val(Right([時刻], 1)) / 10, 0)
※[時刻]カラムは"mm:ss.0"形式の文字列
**
AccessのクエリにてExcelのsecond関数と同様の結果を
得るにはどのようにすればよろしいでしょうか。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
問題とされている点が良く判りません。
VBAのRound関数はMS-Access 2000で「最近接偶数への丸め」なので多分2002でも同様だと思います。するとDebug.Print Round(13.5), Round(14.5), Round(14.6)
の結果は
14 14 15
となりますが、それ以上にどのようになればよいのでしょうか?
ご回答ありがとうございます。
「最近接偶数への丸め」の知識が不足していました。
調査したところ、丸め処理を行うプロシージャの作成方法が公開されていたので、
記載内容に基づいて丸め処理を実装しましたが(BRound関数を利用)、結局、浮動小数点演算での誤差を吸収することができませんでした。
ExcelのRound関数と申しましたが違いました。
実現したいことはRound関数と同様の結果を求めたいのではなく、Excelが自動で丸め処理を行った結果とAccessでの丸め処理結果を合わせたいのです。
※タイトル文が不適切でした。申し訳ありません。
http://support.microsoft.com/default.aspx?scid=k …
以下の(A)と(B)はイミディエイトペイン内でBround関数を実行した結果です。
使用している数字、型は同じはずですが誤差が生じました。
やはりAccessにてExcelと同様の結果を再現するのは難しい、ということになりますね。
■"00:01:48.5"を秒数に変換する例
※Excelでは00:01:48.5をセルに入力すると自動的に00:01:49に丸められます
(A)
? bround((CDbl(TimeValue("00:01:48")) + 5 / 864000) * 86400)
108
(B)
? bround( 1.25578703703704E-03 * 86400)
109
(参考)
? CDbl(TimeValue("00:01:48"))
0.00125
? 1 / 864000
1.15740740740741E-06
? CDbl(TimeValue("00:01:48")) + 5 / 864000
1.25578703703704E-03
No.3
- 回答日時:
N0.2 です。
数値を間違ってました。2→4****
または
Val(Left([時刻], 2)) * 60 + Val(Right([時刻],4))
ご回答ありがとうございます。
NO1の方のお礼に書きましたが、ミリ秒の丸め処理をExcelとAccessで合わせたいのです。
※質問文が不適切でした。申し訳ありません。
No.2
- 回答日時:
Val(Left([時刻], 2)) * 60 + Val(Mid([時刻],4))
または
Val(Left([時刻], 2)) * 60 + Val(Right([時刻],2))
で、どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 2019で質問があります。 計測器のデータをExcelで記録したんですが、1秒刻みで記録 4 2022/09/07 22:46
- 英語 下のサイトページと同じ質問なのですが、1人目と2人目の英語圏の回答者さんが違う答えを出しているような 4 2023/05/31 06:09
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- C言語・C++・C# win10で、正確な待ち時間の作り方 6 2023/02/14 18:28
- Google Drive スプレッドシートの時間(分、秒)の足し算SUM関数がうまくいきません。 3 2022/09/08 16:39
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Excel(エクセル) Excel で分を抜き出すには お世話になります。C列にhh:mmで時間が入っております。このssを 2 2023/03/01 10:50
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
アクセスのクエリで秒→時間、時間→秒に変換したい
Access(アクセス)
-
Accessの数値から時間に変換する時点で困っています。
その他(データベース)
-
format関数について
Visual Basic(VBA)
-
-
4
[MS Access]クエリで変換 hhmm(数値型)⇒hh:mm(日付/時刻型)
その他(Microsoft Office)
-
5
新規レコード行を非表示にしたい
Access(アクセス)
-
6
Accessで秒を時間で表示させる方法って?
Access(アクセス)
-
7
Access サブフォームでの選択行の取得
その他(データベース)
-
8
Accessを使って日付を比較したい
その他(Microsoft Office)
-
9
VBAでミリ秒まで出力する方法
Visual Basic(VBA)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
12
クエリ上でフィールド名が2つあるときの見分け方
Access(アクセス)
-
13
アクセス2003で秒数削除
Access(アクセス)
-
14
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
15
レコードロック情報の解除方法を教えてください。
Access(アクセス)
-
16
ACCESSの24時間以上の表示について
その他(Microsoft Office)
-
17
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
18
Accessで割り算の余りを求める計算方法を教えてください
Excel(エクセル)
-
19
ACCESSの時刻の引き算
Access(アクセス)
-
20
Access「レコードが削除されました」のエラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PostgreSQLのtimestamp型で時間...
-
該当レコードなしでエラーを発...
-
SQL文の書き方
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
エラーを起こす方法
-
既存データをINSERT文にして出...
-
timestampのデータはどのように...
-
Accessの構成をコピーしたい
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
CSVファイルを読み込んでテーブ...
-
dumpでインデックスだけ抜きたい
-
Accessで今日から5日後
-
追加クエリで重複データなしで...
-
pythonでsqlight勉強中、クエリ...
-
Excelでしりとりを作る方法
-
テーブル名が可変の動的SQLをフ...
-
sqlに記述できない文字
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLのtimestamp型で時間...
-
Access にて "mm:ss.0" 形式の ...
-
SELECT の仕方 (今月のデー...
-
MySQLで期間のUNIQUEってできま...
-
Excelの外部参照と書式設定につ...
-
予約システムでの時間の設計に...
-
英単語の意味
-
ご覧ください、ご参照ください...
-
該当レコードなしでエラーを発...
-
SQL 文 日付範囲を指定したレコ...
-
NASAで働くにはどうしたらいい...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
スキーマ
-
sqlに記述できない文字
-
オラクルのUPDATEで複数テーブル
-
Accessで今日から5日後
-
timestampのデータはどのように...
-
UPDATEで既存のレコードに文字...
おすすめ情報