• ベストアンサー

時間単位の変換for Excel

2:59:00(hh:mm:ss)を2:59(mm:ss)に変換する関数や方法をご教授頂いてもよろしいでしょうか? 2分59秒と入力していたつもりが2時間59秒00秒になっていました、、、 書式の変更や、値に変換などしてますがプロセスが導けていません。。。 何卒よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばA1セルに2:59:00と入力されていたらB1セルには =A1/60 と入力すればよいでしょう。 0:02:59のように表示されますね。セルの表示形式のユーザー定義でm:ssにすれば2:59と表示されます。 A1セルのデータそのものを2:59のように変換する場合にはどこか関係のないセルに60を入力してそれをコピーし、その後にA1セルを選択して右クリックし、「形式を選択して貼り付け」で「除算」にチェックをして貼り付けます。シリアル値で表示されますのでセルの表示形式のユーザー定義でm:ssにすればよいでしょう。

noname#232103
質問者

お礼

ありがとうございます。 助かりました!!

その他の回答 (2)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

Excelでは 1日を1 1時間を24分の1        ※1/24 1分を(24×60)分の1     ※1/1440 1秒を(24×60×69)分の1  ※1/86400 で、管理、計算しています。 だから何だというのだ!! と、云われそうなので、もう少し解説です。 一般論として、 分や秒は60で上の単位に上がりますよね? これって60進数というのですが、 数学的な話しを云うと 60進数の1桁が各々「分」「秒」に当たります。 狐につままれた感じですかね、 我々が使っている0から9までが1桁の物、 これを10進数というのですが、 仮に0から4までしか使えない事を考えて下さい そう、5進数ですね。 5進数で10進、我々の常時使っている「9」を 表そうとすると どうなるか… 5進数の世界では 1桁の中に4より大きい数字は出てきません、使えません。 9なんて数字はあり得ません、 よね? なので まず9を5+4に分解して 5が出てきたので桁上がりさせて10に 残った4と足して14に なる訳です。 では、これを踏まえて 我々が常に使っている10進数 これで60進数の内の1桁「40」を表してみたいと思います。 休憩入れた方が良いですか?             ∬∬∬ ふにゃふゅ ふ~  旦_ お茶どうぞ 再開しますよ? 40ですから 9まででは表せません。 9の方が圧倒的に小さいですよね? なので さっきと同じように 10を桁上げしちゃいます。 10は4つ有りますよね? 4つ桁上げして「40」 今回は、これで全部なので何も足さず このまま40、ですね 「そのままやんけ!!」て、突っ込みは無しですよ。 要するに、 59も40も23も、60進数では1桁なのです。 やっと本題に入れそうですね では、ご質問の 分や秒を取り出すにはどうすれば良いか ですが、 もう1度 10進数で説明しますね、 23758の1桁目を、文字を読まず知るには どうすれば良いでしょうか? こうします まず23758の求めたい桁より小さい部分を省きます。 これは10進数で、今回は1桁目を取り出す訳ですから 10の(1-1)乗で割って、小数点を省きます。 関数はROUNDDOWNやINTを使います。 例としてはこうです =ROUNDDOWN(23758/POWER(10,1-1),1-1) ですね、 次に、 2桁目以上が要りません、ので省きます 10以上を省くという事は 色々なやり方がありますが 10で割り切れる物が要らない とも、言えます。 今回はこれを使います。 とある数で割り切れなかった余りだけを返して 割り切れた部分については無視する計算 これを除数と云い、 MODと表します。 Excelではこうです。 =MOD(調べたい数,割る数) 今回は10進数なので10で割り、その余りを求めます。 こうなります =MOD(23758,10) 得られる値は23750が省かれる訳ですから、 「8」ですね。 ちゃんと8が求まりました。 ではご自身で此所で3桁目を取りだしてみて下さい。 ちゃんとできましたか? いよいよです。 秒の桁、60進数で云うところの1桁を取り出してみます。 秒の桁の1がちゃんと1桁目に来るようにするには 今、86400分の1に、既にされてしまっている訳ですから、 86400倍してあげます。 この時、 小数点以下を取り出せば コンマ何秒の値に、 60進数として1桁を取り出せば秒の値になります。 1以下の値を取り出すのは… そう! 1で割る時のMODでしたね、 もうお判りだと思いますので コンマ何秒の値を取り出す説明は省きますね。 秒の桁を取り出します。 いきなり行きますよ? =MOD(ROUNDDOWN(元の値*86400,0),60) 同様に、 分は最初に上げた通り、1440分の1に 時は最初に上げた通り、24分の1に 各々されていますから、 分は1440倍して、 時は24倍して、 先程の計算をします。 こうです 分 =MOD(ROUNDDOWN(元の値*1440,0),60) 時 =MOD(ROUNDDOWN(元の値*24,0),60) 余談ですが、この時 MODしなければ、「何日何時」ではなく「トータル何時間なのか」が解ります。 如何でしょうか? お役に立てて… 更に余談ですが、 何時間かは、 =HOUR(元の値) 何分かは =MINUTE(元の値) 何秒かは =SECOND(元の値) でも、求まります。 と、長々とExcelや一般知識としての解説をしてきましたが、 2時間59分0秒を2分59秒に直すには 時間の値を取り出して分に 分の値を取り出して秒にすれば良いでしょう。 =TIME(0,HOUR(元の値),MINUTE(元の値)) ですね。 でも 面倒なので60で割っちゃって下さい。 これでExcelはちゃんと認識してくれますよ 如何でしょうか? お役に立てていたならば幸いです。

noname#232103
質問者

お礼

ありがとうございます! 大変参考になります!

回答No.2

=A1/"1440:0"

noname#232103
質問者

お礼

ありがとうございます。

関連するQ&A