ここから質問投稿すると、最大4000ポイント当たる!!!! >>

標題の件についてお分かりの方、お手数ですが
ご教示くださいますようお願いいたします。

(1)秒を時間にする式
 14400 → 4:00:00

(2)時間を秒にする式
 4:00:00 → 14400

どうぞ宜しくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

14400


これは数値型ですね
求めたい時間というのは文字通り時間でいいのでしょうか
時間なら60の2乗で割ってやれば時間になります
14400/60/60=4

これを4:00:00のように表示したい(時間数値でなくていい)
というのなら方法は2つ
絶対に24時間を超えないのであれば、日付時刻数値に変換して時刻書式を流用します
日付時刻数値は日が単位ですから、時間数値をさらに24で割ります
14400/60/60/24
この数値に時刻書式を設定すれば4:00:00になります
24時間を超えることがあるのならそのような文字列を作成することになります

>4:00:00
これのデータ型は何でしょう
日付時刻型なら
上の逆で
*24*60*60
してやれば秒になります
    • good
    • 0

(1) =A1*"0:0:1" 書式 h:mm:ss


(2) =A2/"0:0:1" 書式 標準
    • good
    • 1

こんな感じで如何でしょうか。



> (1)秒を時間にする式 14400 → 4:00:00

TimeSerial(0, 0, 14400)


> (2)時間を秒にする式  4:00:00 → 14400

TimeValue("4:00:00") * 86400

つまり、フィールド名が、[時間]で 書式が、「時刻 (L)」であるとき、
クエリのグリッドのフィールド欄に

 秒数: [時間]*86400

この回答への補足

ご教示いただきありがとうございます。

> (1)秒を時間にする式 14400 → 4:00:00
TimeSerial(0, 0, 14400)

上記についてクエリで[時間(ss)]フィールドの合計値が
3915000と出た場合、TimeSerial(0, 0, [時間(ss)の合計])の
式でエラーが返ってきてしまいました。

式の入れ方が間違っているのか、申し訳ございませんが
再度お教えいただけますでしょうか?

補足日時:2006/11/06 10:32
    • good
    • 2

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessで秒を時間で表示させる方法って?

こんばんわ

Accessで秒を時間表示に変更させるためには
どうしたらよいのでしょうか??


例 秒が42579の場合時間にすると11:49:39
  秒が50.736の場合時間にすると00:00:51

クエリに式を入れて表示させるのでしょうか?

よろしくお願いします!

Aベストアンサー

秒を格納しているフィールド名が 秒数 だとして
クエリのデザインビューにて新たなフィールドを作成。
そこに
時間表示: CDate(Format([秒数]/3600/24,"hh:nn:ss"))
で出来ます。
秒数を一日の秒数(86400 = 3600*24)で割って
Format関数 で時間表示に加工、
このままではテキスト型になってしまうので
さらに、Cdate関数で日付時刻型に変更しています。

http://support.microsoft.com/kb/881854/ja
http://support.microsoft.com/kb/210276/ja

QAccessの数値から時間に変換する時点で困っています。

Accessの数値から時間に変換する時点で困っています。
仕事の作業上にて、フォームの計算式にて5.25という数値が出ています。
それを5.25→05:15という時間の数字に変換したいのですが、方法がわかりません。
書式設定で可能なものなのか、それとも別のボックスに関数を使用した式をいれればできるのか……ぜひとも教えていただけるよう、よろしくお願い致します。

Aベストアンサー

私自身はAccess上で日付の演算をすることが殆ど
ないのですが・・・(汗)

> 5.25→05:15という時間の数字に変換したい

テキストボックスの書式などでやってみたところ、どうも
「5.25→5:25」とされてしまうです。

ですので、KIG_4さんご自身が考えたとおり、
> 別のボックスに関数を使用した式をいれ
て、対応するしかないと思います。
(同じ数値を、書式設定だけで「5:15」と「5:25」という
 異なる意味の数値に切り替えられるとは考えにくいので)

但し、関数による計算結果を表示する場合、
そのテキストボックスは編集不可(=表示専用)となって
しまいますので、ご注意下さい。

新規テキストボックスに設定する式としては、
 =Format(CDate([元のテキストボックス]/24), "hh:nn")
になります。

【式の説明】
日付/時刻関連の関数は「整数の1」=「1日」の扱いと
なります。
そのため、まず「5.25」を24で割って「1日(=24時間)の
何分の1に当たるのか」を算出します。
次に、CDate関数を使用して、Accessに、この演算結果
の小数を日付/時刻として認識させます。
最後に、Format関数で、「05:15」の書式で表示させて
います。
(「hh」で時間(Hour)を2桁表示、「nn」で分(miNute)も
 2桁表示、と指定)

※「分」が「m」ではないのは、通常、月(Month)の方に
 割り当てるためです。
 但し、今回の場合は「"hh:mm"」と指定しても、一応
 正しく「分」として表示されます。
 (「時」と「月」のみを組み合わせて扱うことは通常はない
  ので、その場合は「m」を分として扱うロジックが上記
  関数の内部に組み込まれているものと思います)

私自身はAccess上で日付の演算をすることが殆ど
ないのですが・・・(汗)

> 5.25→05:15という時間の数字に変換したい

テキストボックスの書式などでやってみたところ、どうも
「5.25→5:25」とされてしまうです。

ですので、KIG_4さんご自身が考えたとおり、
> 別のボックスに関数を使用した式をいれ
て、対応するしかないと思います。
(同じ数値を、書式設定だけで「5:15」と「5:25」という
 異なる意味の数値に切り替えられるとは考えにくいので)

但し、関数による計算結果を表示する場合、
そのテキストボ...続きを読む

Q[MS Access]クエリで変換 hhmm(数値型)⇒hh:mm(日付/時刻型)

テーブル上で”930”や”1030”というように数値型になっているデータを、
クエリ上では”9:30”や”10:30”の日付/時刻型へ変換したいと考えております。
この場合、どのようなSQL文で記述をすればよろしいでしょうか?
テーブルやフィールは下記のようになっております。

■テーブル名
tbl_サンプルテーブル

■フィールド名
ID(オートナンバー型)
時刻(日付/時刻型)

Aベストアンサー

元の数値が入っているフィールド名を「数値時刻」と仮定します。

[数値時刻] \ 100 & ":" & ([数値時刻] mod 100)

で、930 → 9:30 の文字列になります。
(905 → 9:5)

日付/時刻型への変換は CDate( ※1 ) を使います。(※1は上記の式)

このままの状態で表示させると 09:30:00 になるので、必要なら Format で形式を指定します。


Format(CDate([数値時刻] \ 100 & ":" & ([数値時刻] mod 100)),"hh:nn")

とか。


※ただ単に hh:nn 形式の文字列を作るのであれば、以下でも大丈夫かと

Right("0" & [数値時刻] \ 100, 2) & ":" & Right("0" & ([数値時刻] mod 100),2)

Qアクセス クエリ 時間の合計

かなり初歩的な質問かと恐縮ですが、

フィールド名:時間
12:28
14:04
13:00
7:50

上記の様にアクセスのテーブルに時間が入力されている列をクエリの
集計で合計すると表示がおかしかったので、プロパティの書式に
時刻 (S)を指定しました。

そうすると時間の表示は正しい形となったのですが、
合計値がおかしな状態です。

エクセルでは[h]:mm:ssと書式を指定すれば縦列の時間合計値が
正しく表示されますが、アクセスではどういった指定をすれば
時間の合計をすることができるのでしょうか?

Aベストアンサー

日付時刻型で時間計算をしているのですね
Excelではこの方法が広く行われているので
[h]:mm:ssのような書式がサービスされていますがAccessにはありません

時刻は時間軸上の1点、時間は時刻と時刻の距離。数学的には全く異なるものです
時刻の足し算には意味がありません
本欄なら日付時刻型で時間計算をせずきちんと時間を表す数字で
計算する方がいいのですが

時刻を表す数値の正体が日を単位とする時間数値であるということを理解していれば
流用することが出来ないわけではありません
ただし、時刻書式には24時間以上はありませんから
結果を47:22のように表示するにはそのような文字列を自分で作成してやる必要があります

集計結果*24*60 \ 60 & ":" & 集計結果*24*60 MOD 60

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

Q秒を時分秒に変換する

EXCELで秒を時分秒に変換することは可能でしょうか?
19827635秒を何時間何分何秒に変換するもの

Aベストアンサー

A1に19827635秒が入っているとして
別のセルに
=TEXT(A1/24/60/60,"[h]時間mm分ss秒")
とすれば出きそうです。
5507時間40分35秒

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?

QAccessで24時間を超える時間の入力ができない。

時間を入力するときに、
25:00と入れると1:00と認識してしまいます。
24:00を超えると、自動的に切り替わるようですが、
これを「25:00」と表示させる方法はないでしょうか?

10進法で入力する方法も考えたのですが、
個々の値を10進法に変換して入力すると、
それらを合計したデータにわずかな差が生じてしまいます。

エクセルだと、25:00表示が可能なのは確認しましたが、
Accessでの方法がどうしても探せません。

環境→Access 2000
今までの設定方法→データ型:日付/時刻型,書式:時刻(S)

素人なので、詳しく教えて頂けると助かります。
よろしくおねがいします。

Aベストアンサー

> 最終的には「数値型で時間と分を分ける」方法を取りたいと思います。

テーブルには分単位でデータをもたせるようにすればいいと思います。

テキスト型(25:00) を分単位の数値(1500)としておけば、計算するのも
簡単ですね。
25:00 のように入力しているのであれば、Left 関数・InStr 関数で
時間を求めることができます。
分は、Mid 関数・InStr 関数で求めることができますね。
#必ず、5桁で入力するということであれば、もっと簡単ですが。


数値型(分単位)を、xx:xx の標記にするには、Mod 演算子・\ 演算子を
使えば簡単です。

QAccessで割り算の余りを求める計算方法を教えてください

Excelの関数には、MODという関数がありますが、Accessにはそのような関数がありませんね。
intやroundはあるのに。
皆様はどのようにして余りを求められているのでしょうか?
VBAでユーザー関数を作るのは面倒なので、関数だけで処理したいのですが。

Aベストアンサー

こんばんは。

MOD関数はありませんが、MOD演算子があります。

A MOD B 

の式で余りを求めることができます。




↓の参考URLを参照してください。

参考URL:http://www.accessclub.jp/vba/help/010.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング