[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1つのセル内での秒から時分秒計算+α』(ユウ)
10万100万の秒単位(123456sec)を、〜時〜分〜秒の形に表示できるようにしたいです。尚、〜時まで(3600sec)以上いかなければ、〜分〜秒。〜分(60sec)以上いかなければ、〜秒。のみの表示とさせたいです。完成型としては、あるセルに数値を入れるだけで〜時〜分〜秒と表示されるのが望ましいです。
やはりVBを用いるしか手はないですよね??
A1に3600としてB1に1時間0分と表示させる、と言う事でよいのでしょうか?それなら B1に=A1/86400としてB1の表示形式をユーザー定義で [<0.00069]s"秒";[<0.04166]m"分"s"秒";h"時間"m"分"s"秒" とします。やりたい事が違うようでしたらゴメンなさい。 (ケン)
いえ、だいぶ参考になります。有り難うございます。 ただ、出来ればですが、同一セル内では無理でしょうか? 仮にA1セルに3600を入力した時点で1時間0分0秒や、 61を入力したら1分1秒といった形に… やはりエクセルのみでは出来ませんよね? (ユウ)
VBAでなく一般機能で解決したいというご質問なのですよね?
(INA)
(ユウ)
一般機能でなら61なら0:0:61の様に入力しないと、出来ないと思います。(ケン)
秒数の数値を入力していって、 「86400」を入力したセルに表示形式でケンさんの [<0.00069]s"秒";[<0.04166]m"分"s"秒";h"時間"m"分"s"秒" を設定したセルをコピー、数値を入力したセルに 「形式を選択して貼り付け」「全て」「除算」ではだめ? (これとて即座じゃありませんよねぇ) 「整数値」をエクセルに「時間」であると認識させるのは ワンステップでは無理があります。 (KAMIYA)
(ユウ)
いまさらで申し訳ありませんが、 [<0.00069]s"秒";[<0.04166]m"分"s"秒";h"時間"m"分"s"秒" の意味を詳しく説明してもらえないでしょうか? 分かっていたつもりがじょじょに??になってきてしまいました。 [<0.00069]s"秒";[<0.04166]m"分"s"秒";h"時間"m"分"s"秒" 全体の意味と、[<0.00069]s、[<0.04166]mの意味を詳しく説明願います。 お願い致します。 (ユウ)
エクセルを扱っていて「シリアル値」という言葉を目にしたことはないでしょうか。 数値なのですが「日付と時間を表すものである」とエクセルに認識させたときの呼び方です。 数値の整数部分が日数、小数部分を一日に満たない時間部分であると仮定しています。 整数部分は1900年1月1日を「1」として起算します。 小数部分は1/(24*60*60)を一秒として換算します。 セルに 0:00:60 と入力しセルの表示形式を「数値」にすると「0.000694444444444」 セルに 0:60:00 と入力しセルの表示形式を「数値」にすると「0.041666666666667」
・・・これでだいぶ察しがつくのではないでしょうか。 (KAMIYA)
1.00000… →1日=24時間 0.04166666… →1時間=60分 0.0006944444… →1分=60秒 ということですね?では1秒単位はどう計算されて表示されているのですか?? (ユウ)
別なセルに表示させるのでしたら、
=IF(INT(A1/86400)>0,INT(A1/86400)&"日","") &IF(HOUR(A1/86400)>0,HOUR(A1/86400)&"時間","") &IF(MINUTE(A1/86400)>0,MINUTE(A1/86400)&"分","") &IF(SECOND(A1/86400)>0,SECOND(A1/86400)&"秒","")としますと、
36020 → 10時間20秒 などともできますね。 (LOOKUP)
(ユウ)さんの聞きたいことと違うかもしれませんが、 セルに 0:00:01 と入力するとエクセルは「これは時間として入力された」と判断し、 入力された本来は文字列としての「0:00:01」を「1/(24*60*60)」の数値に 変換し、なおかつ表示としては「0:00:01」にしてくれます。 逆に、「1/(24*60*60)」の数値を入力してやるとエクセルは「0.000011574074074」の ように数値として認識しますが、これをユーザーのほうが「表示形式」を時間に設定して やると「0:00:01」のようになります。 だいたいこんな関係だと思いますが。 (KAMIYA)
そのようなやり方もあるのですね!勉強になります^^ 有り難うございます。 >(LOOKUP)さん だいぶ理解できて来ました!ただ数値を時間に変換するということは まず始めにExcelが時間処理だと認知できるような形に持っていかなければ ならないという感じのことですよね?? >(KAMIYA)さん (ユウ)
私もそう思います。私も入力を簡単にと思った事が有りましたが、結局計算が出来ず 面倒にしてしまった、と言う事が以前ありました。それからは時間は時間として、 日付は日付として1つのセルに入力するようにしています。(ケン)
ほぼ理解できた?(自分的に)と思われるので最後に単純な質問なんですが、 ただ普通に何万秒、表記されているものを86400で割って小数で表記されたものが シリアス値ですか? (ユウ)
そう思って頂いてかまわないとおもいます。 その数値を表示形式をユーザー定義で [S] としてみて下さい、元の数値になりますよね。 (ケン)
本当ですね!これはシリアル値を通常表記するような意味合いですか? (ユウ)
60秒以上表示させる表示形式です。[h]:mm:ssなどが最初からある表示形式では分かりやすい と思いますが、24時間以上表示させる表示形式です。 表示形式については https://www.excel.studio-kazu.jp/lib/e3g/e3g.html こちらを見てください。(ケン)
[h]:mm:ssで表記指定するとExcel内では、まず秒の計算処理をするのでしょうか? それで繰り上げ分を分へ、時間へ…時間は24時間以上関係なく表記。ということに なるのでしょうか?? (ユウ)
内部でどのように計算しているのかは分かりませんが、考え方としてはそれで良いと 思います。(ケン)
そうですか。ご丁寧に有り難うございました!本当に勉強になりました^^ また何か疑問等あった時には宜しくお願いします! (ユウ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.