プロが教えるわが家の防犯対策術!

初めて質問を投稿します。

私は仕事でよくExcelを使うのですが、
Excelで時刻入力する際、通常は”15:00”というように入力しますが、
時刻の入力数が多過ぎて、毎回わざわざ”:(コロン)”を入れるのに手間がかかってます。
”1500”と入力するだけで時刻を入力できる方法ってあるんでしょうか?
その入力した時刻データを使って、別セルに関数で計算をさせてるんですが、
シリアル値で入ってないと当然計算ができないので困ってます。
セルの書式設定とかでどうにかできたりするんでしょうか?
いい方法をご存知の方、どなたか教えて頂ければ嬉しいです。

A 回答 (7件)

セルA1に "1500" と入力


セルA2には式 =TIME(MID(A1,1,LEN(A1)-2),RIGHT(A1,2),0)
とするとA2にはシリアル値で時刻が得られると思います。
3桁でも4桁でも対応していますので "245" と入力すると 2:45 となりますよ。

必要に応じてセルA1での入力ミスを防ぐために入力規則で値の制限や
別セルを使って値チェックなどをしておくといいでしょう。
あとはA2の書式設定をお好みの時刻書式にしてください。
    • good
    • 0
この回答へのお礼

ほんとだ!出た…( ̄□ ̄;)
MID?LEN?RIGHT?
使っている個々の関数の意味がよくわかんないけど。そんなややこしい組み合わせをしないといけなかったんですね。

ほんとありがとうございます!m(__)m
これで仕事がはかどります!効率UP!
こういうのって皆さんどうやって勉強されるんでしょう…。

お礼日時:2005/06/10 03:07

私も試しに「1500」「1330」と入力し、別セルに「15:00」「13:30」と関数を使って表示させ、そのセル同士で引き算をしてみましたが、結果は「1:30」と表示され、きちんと計算できてるみたいです(--)?



差し支えなければ、その「別セルに関数で計算」の具体的な例を提示頂けると何かわかるかもしれません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
『別セルに「15:00」「13:30」と関数を使って表示させ』ってのはどんな関数を使うのでしょうか?
ちなみに、私が関数を使った計算は単に二つの時刻を引き算して、差は何時間かを出しているだけです。
初心者なもんですみません…(^^;

お礼日時:2005/06/10 02:57

仮にA1に「1500」と入っていたとして、私のやり方は



=CONCATENATE(LEFT(A1,LEN(A1)-2),":",RIGHT(A1,2))

とやりました。各関数の説明は・・・

・CONCATENATE関数というのは文字を連結させる関数
・LEFT関数は左から指定文字数を取り出す関数
・LEN関数は文字の長さを取り出す関数
・RIGHT関数は右から指定文字数を取り出す関数

・・・といったところでしょうか。流れとしては「1500」の左から「15」を取り出し、右から「00」を取り出し、間に「:」を挟んで結合させるという流れです。

LEN関数は「300」など文字数が3の場合に「30:00」とならないための細工です(3文字の場合は左から1文字、4文字の場合は左から2文字取り出すです)。

・・・と書きましたけど、#1さんのやり方がスマートでいいですね(^^;)>。
    • good
    • 0
この回答へのお礼

なるほど!!
関数の組み合わせによって、いろんな方法でできるんですね。
文字を連結させる関数もあるのか…。
Excelって便利☆

私からするとdac203さんも十分すごいですよ!!
すごく参考になりました!
これからそういう関数が自分で作れるようもっと修行します!
ありがとうございました。m(__)m
何かの折にはまたよろしくお願いします(笑)

お礼日時:2005/06/10 03:35

=TEXT(A1,"00"":""00")


でも15:00の表示(文字列)になります。
時刻形式のシリアル値とする場合は
=TEXT(A1,"00"":""00")*1
=TEXT(A1,"00"":""00")+0
で表示形式をユーザー定義で[h]:mmの様にしてください。
    • good
    • 0

こんにちは。

maruru01です。

入力の手間をなくす、という観点での別回答です。
オートコレクトの機能を使います。
やり方は、
メニューの[ツール]→[オートコレクト]で、
[入力中にオートコレクト]にチェックを入れておき、変換候補に、
「..」(ピリオド2個)

「:」(コロン)
を追加します。
これで、セルに、
「15..00」
と入力すると、自動的に
「15:00」
という時間(もちろんシリアル値)に変換されます。
「.」(ピリオド)はテンキー群の中にあり、「:」よりも入力しやすいと思います。
なお、変換する文字列を「..」と、ピリオド2個にしているのは、ピリオド1個で普通に小数点などを使用するためです。

ところで、No.4の方の回答の数式は、

=TEXT(A1,"0!:00")

という書き方も出来ますね。
    • good
    • 0

回答は出尽くしていますが質問者に一言言いたいことがあります。


>入力した時刻データを使って、(後に)別セルに関数で計算をさせてるんですが
関数を使うとは、セルの見た目でなく、「値」を使って加工するものです。
だから表示形式で時刻のように見せても、「値」が時刻シリアル値にならないと、時刻の足し算引き算計算しても思ったとおりになりません。
だから後半に「>セルの書式設定とかでどうにかできたりするんでしょうか」を付け加えるのはおかしいです。回答に「単純な」書式による回答が出るのはおかしいです。
ただ#4のご回答は工夫があって正しいですが。
    • good
    • 0

#4の方はスマートですね。



>=TEXT(A1,"00"":""00")
>でも15:00の表示(文字列)になります。
>時刻形式のシリアル値とする場合は
>=TEXT(A1,"00"":""00")*1
>=TEXT(A1,"00"":""00")+0
>で表示形式をユーザー定義で[h]:mmの様にしてくださ>い。

ここでもう一工夫させてください。
たとえば#4の方の式がセルA2だとしたら
A2は関数のままですよね、そこで関数ではなくて
セルに値として返すために、例えばA3に表示させるとして

A2を選択→「コピー」→A3を選択→「形式を選択して貼り付け」→「値」→OK

こうしておけばA3には値が入ります。
もちろん、いちいちコピー&ペーストは大変ですから
入力の最後にコピー&ペーストをしてもいいし、マクロを作るなりしてもいいと思います。

もう一つ、貼り付け先を同じセルにしておけば余分な作業セルを作らなくてすみます。

私の考えですが関数のままより値にした方がいいと思いますがどうですか?
今回のコピー&ペーストは当たり前のことで蛇足だったですか?
  
    • good
    • 0

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