Excel97を使用しています。
時刻の表示についての質問です。
秒数で135.2222と入っている値を別のセルに2:15と表示させたいのですが可能でしょうか??(小数点以下は無視したいです。)

現時点では<INT>や<MOD>の関数を使用して、表示させていますが、数式が長くなってしまい大変なので良い方法があったら教えてください。宜しくお願いします。

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

A 回答 (3件)

A1に135.2222が入力されていてB1に2:15と表示させるなら


B1に =A1/86400 と入力(1日の秒数)
で、B1のセルの書式設定で表示形式→ユーザー定義 mm:ss
でどうでしょう。
小数点以下無視が切捨ての意味なら
=int(A1)/86400
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
回答のように入力したら!!できました!!
びっくりしました。どうもありがとうございます。

お礼日時:2001/09/19 16:10

日時はシリアル値と云う概念で処理されます。


シリアル値では、1日が1に対応します。
従って1時間は1/24、1分は1/24/60=1/1440、1秒は1/1440/60=1/86400になります。
で、表示形式mm:ssはシリアル値に対応する分:秒の表示をしてくれます。
hh:mm:ssなら時:分:秒、等にも出来ます。
(135.2222のままでは135日5時間20分になってしまうわけです。)

端数は四捨五入の様ですので、下の式ではintで小数点以下を切り捨てて135にしています。
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございます。
シリアル値についていままで良くわかっていなかったので大変ためになりました。
説明どうりに実際表示させてみて納得しました。どうもありがとうございました。
またなにかありましたら宜しくお願いします。

お礼日時:2001/09/20 09:59

こんばんは!



#1 HitomiKurose さんの式より多少長いですが

 =INT(A1)*"0:0:1" 表示形式 m:ss

でもOKです。

時刻表示の 0:0:1 は シリアル値の 1/86400
なので 実は同じ意味です。^^;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。#1 HitomiKuroseさんと同じ意味なのですね。
HitomiKuroseさんの回答をすぐ実行して表示できたことに感動してしまい、
なんでそうなるかがよく(まったく)わかっていません^^;
どうしてそうなるか説明頂けると助かります。
もし、お時間あれば説明よろしくお願いします。

お礼日時:2001/09/20 00:20

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

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

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

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

Q【エクセル】角度表示で秒を小数点以下も表示したい

エクセル2007を使用中です。

[h]mmssで、たとえば10°25′34″の表示ができるのは分かったのですが、秒を34.234″まで表示したいです。

どのようにすれば、セル1個の中で10°25′34.234″と表示させられるでしょう?

この角度は計算結果なので、文字列としての表示はNGなんです。

Aベストアンサー

こんにちは!
一例です。

セルの書式設定のユーザー定義から
[h]°mm'ss.000''
としてみてはどうでしょうか?

尚、この数値がちゃんとシリアル値になるかどうかは判りません。
表示だけは希望に近いものにならないでしょうか?

以上、参考になれば幸いですが
的外れなら読み流してくださいね。m(__)m

QExcel97小数点以下の表示

いつもお世話になってます。
小数点以下の表示についてご存知の方がいらしたら教えてください。
x=round(a/b,0)とします。

0.5>x>0
の四捨五入して0になる場合は0を表示させたいのですが
x=0
のときは値を表示させたくないときはどのような書式設定をすればよいのでしょうか。よろしくお願いします。

Aベストアンサー

こんばんは!

>0.5>x>0
>の四捨五入して0になる場合は0を表示させたいのですが

これは、a/bの計算結果が0より大きく0.5未満の時
との意味だとは思いますが、何れにしろROUND()関数数式
での結果は0なのですからa/bが0となる(a=0)の
時との違いを表示形式で判断するのは確実に無理です。

代替案としては
案1.数式を =a/b 表示形式を [=0]#;0 とする。
  表示だけは、少数点以下を四捨五入した整数になり
  ます(実際の計算結果は少数点付きです)

案2.数式は現在のままで
  メニューの書式 条件付き書式設定で
  数式が▼ =a=0 書式ボタン フォント色 白
  見かけ上セルと同色となり見えない状態です。

ところでbが0の時は、0での除算となり当然エラーと
なりますがその回避式は不要なのでしょうか?

Qエクセル関数(現時点もしくは死亡時の年齢を表示させる)

エクセルの関数で、出生年月日と死亡年月日(健在者は、契約年月日)は入力済みです。

別の列に死亡(契約)年月日から出生年月日をひいて、契約(もしくは現時点)時の年齢や死亡時の年齢を表示させる関数を教えてください。

また、明治38年以降が、自動的に計算されて西暦になおせますが、それ以前(文化や弘化など)も西暦になおせる関数があればおしえてください。

セルC4に死亡年月日(健在者は、契約年月日かまだ未契約の方はTODAY)
セルC3に出生年月日(死亡・健在問わず)

印刷範囲外で、セルJ4に死亡年月日の西暦表示
同様にセルJ3に出生年月日の西暦表示

セルK3とK4をあらかじめ結合させておいて、そのセルに年齢を表示させたいと思います。

アドバイスをお願いします。

Aベストアンサー

こんばんは。

ユーザー定義関数を作ってみました。
以下で分かるように、慶長からです。

A1:
天明2年
=HenkanYear(A1)  →1782年

となります。

A1 : 慶応
 
=HenkanYear(A1,0)

1866 という数字になります。

また、

1993/3/2 とシリアル値か文字列を入れれば、

→平成5年3月2日

どちらでも変換が可能です。

M2年 →1869年

A2 : M2年
=HenkanYear(A2,0)

とすれば、1869 という数字になります。

(ただし、シリアル値-数字の場合は、すべて元号付きに変わりますから、表示形式には関係がありません。)

なお、私製 DATEDIF関数も作れますが、この関数は、もともと、ナンセンスな部分があるので、できれば、一般関数で行えばよいと思います。

また、年号の変換を関数で、MS-DOS時代に作りました。そのときは、大化からですが、南北朝時代がうまくいきません。


標準モジュールでお試しください。
'-----------------------------------------------

Private Const NENGO As String = "慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成"
Private Const HAJIME As String = "1596,1615,1624,1644,1648,1652,1655,1658,1661,1673,1681,1684,1688,1704,1711,1716,1736,1741,1744,1748,1751,1764,1772,1781,1789,1801,1804,1818,1830,1844,1848,1854,1860,1861,1864,1865,1868,1912,1926,1989"
Private Const OWARI As String = "1615,1624,1644,1648,1652,1655,1658,1661,1673,1681,1684,1688,1704,1711,1716,1736,1741,1744,1748,1751,1764,1772,1781,1789,1801,1804,1818,1830,1844,1848,1854,1860,1861,1864,1865,1868,1912,1926,1989"

Public Function HenkanYear(arg As Variant, Optional flgNen As Boolean = True)
 '年号変換関数, flgNen オプションは、年を数値にする
 v.2662865.01
 Dim arNengo As Variant
 Dim arHajime As Variant
 Dim arOwari As Variant
 Dim yFing As Integer
 Dim i As Integer
 Dim mYear As Integer
 Dim gYear As String
 Dim yFig As Integer
 Dim buf As String
 arNengo = Split(NENGO, ","):  arHajime = Split(HAJIME, ","): arOwari = _
 Split(OWARI, ",")
 If IsDate(arg) And Not (arg Like "[一-龝][一-龝]*") Then arg = CDate(arg)
 Select Case VarType(arg)
  Case vbString
   If InStr(arg, "日") > 0 Then
    arg = Replace(arg, "日", ""): arg = Replace(arg, "年", "/"): arg = Replace(arg, "月", "/")
   End If
   If InStr(1, arg, "m", 1) = 1 Or InStr(1, arg, "t", 1) = 1 Or InStr(1, arg, "s", 1) = 1 Or InStr(1, arg, "h", 1) = 1 Then
    arg = Replace(arg, "m", "明治", , , 1): arg = Replace(arg, "t", "/", , , 1): _
    arg = Replace(arg, "s", "昭和", , , 1): arg = Replace(arg, "h", "平成", , , 1)
   End If
   ReDim Preserve arOwari(UBound(arOwari) + 1)
   arOwari(UBound(arOwari)) = Year(Date)
   If Left(arg, 4) Like "[一-龝][一-龝]#*" Then
    For i = LBound(arNengo) To UBound(arNengo)
     If StrComp(arNengo(i), Left(arg, 2)) = 0 Then
      yFig = i
      Exit For
     End If
    Next i
    mYear = CInt(arHajime(yFig)) + CInt(Val(Mid(arg, 3, 2))) - 1
    
    If InStr(arg, "/") > 0 Then
     buf = Mid$(arg, InStr(arg, "/"))
    Else
     buf = "年" & Mid$(arg, 5)
    End If
   End If
   If flgNen = False Then
     HenkanYear = mYear
   Else
    HenkanYear = mYear & buf
   End If
  Case vbDate
   mYear = Year(arg)
   For i = UBound(arHajime) To LBound(arHajime) Step -1
    If mYear >= arHajime(i) Then
     gYear = arNengo(i)
     If mYear = arHajime(i) Then
      gYear = gYear & "元年"
     Else
      gYear = gYear & CStr(mYear - arHajime(i) + 1)
     End If
     HenkanYear = gYear & "年" & Format(arg, "m月d日")
     Exit For
    End If
   Next i
 End Select
End Function

こんばんは。

ユーザー定義関数を作ってみました。
以下で分かるように、慶長からです。

A1:
天明2年
=HenkanYear(A1)  →1782年

となります。

A1 : 慶応
 
=HenkanYear(A1,0)

1866 という数字になります。

また、

1993/3/2 とシリアル値か文字列を入れれば、

→平成5年3月2日

どちらでも変換が可能です。

M2年 →1869年

A2 : M2年
=HenkanYear(A2,0)

とすれば、1869 という数字になります。

(ただし、シリアル値-数字の場合は、すべて元号付きに変わりますから...続きを読む

Q時刻表示を秒数に換算する関数を!!

失礼致します。

時刻同志を引き算した値「03:15」=「3分15秒」を
(3*60)+15=180+15=195秒という風に
「03:15」の列の隣に秒数列を設けたいのですが
どうしても「03」と「15」を区分けして抽出できません。

仕事柄,3:15よりも195SECの方が親しみやすいもので^^;;。
ご教授下さい。

Aベストアンサー

今晩は。
時間データーをどのように使うか分かりませんが。
単純に秒表示したいのなら、「セルの書式設定」の「ユーザー定義」で
『[ss]SEC』(SECは秒でも良いです)を指定すれば、できますが。
こらは、入力されて時刻データーを秒間換算で表示します。
0:3:15と入力すれば195SECと表示されます。
関数は使いません。

Qエクセルでの時刻表示を「時分秒」にし、且つ「0時」「0分」は表示せず、また「0分38秒」は「38秒」

エクセルでの時刻表示を「時分秒」にし、且つ「0時」「0分」は表示せず、また「0分38秒」は「38秒」と表示したい。

エクセル2010を使用しています。

   A     B      C
  終了    開始    経過時間
1 17:38:25  17:37:47  0:00:38
2 10:21:01  10:13:55  0:07:06

このように、終了時間から開始時間を引き、経過時間を出す表を使っていますが、経過時間の表示を
C1 38秒
C2 7分6秒
としたいと考えています。

時間は全てシリアル値で、現在の書式設定は「時刻」の「13:30:55」です。
これをユーザー設定で「m"分"s"秒"」にすると
0分38秒
7分6秒
となりますが、0分の場合は表示したくありません。
ただし、0秒は表示したいと考えています。

色々なワードで検索しましたが、解決策を見付けることが出来ませんでした。
経過時間を私が望む表示にする方法があるのかどうか分かりませんが、何か方法をご存じの方がいらっしゃれば、ご教示願います。

エクセルでの時刻表示を「時分秒」にし、且つ「0時」「0分」は表示せず、また「0分38秒」は「38秒」と表示したい。

エクセル2010を使用しています。

   A     B      C
  終了    開始    経過時間
1 17:38:25  17:37:47  0:00:38
2 10:21:01  10:13:55  0:07:06

このように、終了時間から開始時間を引き、経過時間を出す表を使っていますが、経過時間の表示を
C1 38秒
C2 7分6秒
としたいと考えています。

時間は全てシリアル値で、現在の書式設定は「時刻」...続きを読む

Aベストアンサー

C1に表示された結果を用いてD1に表示させる式を書きますね。
1行目がタイトル行であれば2行目から使ってください。
Cを省略したければDの式のCを参照している部分にCの内容を代入してください。

D1=IF(HOUR(C1)=0,"",C1&"時間")&IF(MINUTE(C1)=0,"",C1&"分")&IF(SECOND(C1)=0,"",C1&"秒")
(1時間以上になることがないのであれば最初の部分は不要ですが)
これにより、時間部分が0でない場合のみ「○時間」、分部分が0でない場合のみ「○分」、秒部分が0でない場合のみ「○秒」と表示されます。
01:01:01であれば1時間1分1秒
00:01:00であれば1分
00:00:01であれば1秒
00:00:00であれば空白
と言った具合で、0でない部分のみが表示されるわけです。


このカテゴリの人気Q&Aランキング

おすすめ情報