• ベストアンサー

エクセルで時間の計算を簡単に

色々調べましたが、質問することにします。 エクセル2003です。 タイムカードの計算を手計算でなくエクセルでやろうと思うのですが、 フリーソフトも色々試してみましたが、一長一短があるので 自分で作ってしまおうかと思いました。 まず時間の入力で、書式設定で、時刻を設定したいのですが、うまくいきません。 たとえば、15:30  と表示したいときに、1530 と入れてenter したら、15:30 となるようにするには、どうすればよいでしょうか? そして、それが表示できたとして、退社時間から出社時間を引くというような計算もできるでしょうか? おわかりの方いらっしゃいましたらよろしくお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

>時間の計算を簡単に ◆ならば、「15:30」のように「シリアル値」で入力すべきです >たとえば、15:30  と表示したいときに、1530 と入れてenter ◆表示形式で、できなくはないですが、計算が難しくなります ◆「「1530」と入力したい、計算は簡単に」→無理ですね ◆「15:30」のようにシリアル値で入力することをおすすめします テンキーから簡単に「:」を入力する ■手順■ 1)メニューバーの[ツール]-[オートコレクトのオプション]-[オートコレクト]の「修正文字列」に、「. .」を入力し、「修正後文字列」に「:」を入力して、OK 2)これで、テンキーから簡単に入力できます

rocuchan
質問者

お礼

お世話になります。 オートコレクトという方法があったのですね。 そのあたりは知りませんでした。 その方法は実に的を得ています。すばやく入力し、しかもシンプル。 ありがとうございました!

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

エクセルやVBAを十分知らないから、そういうことを言うと思います。 たった:文字を省力化したいために、本質問のようなことは、VBAのイベントの考えを勉強してからにすべきだ。 ーー 質問の主張を通すなら、関数利用だが、隣の列に、邪魔でも下記を考える A列(原入力データ)の書式を文字列にして1530と入力 B列に=TIMEVALUE(LEFT(A1,2)&":"&RIGHT(A1,2)&":00") 書式を時刻にする。これで時刻シリアル値になる。 こうしないとエクセルの貴重な、時刻計算も、表示形式の設定も使えなくなるのだ。 結果 1530 15:30:00 上記の方法だと、1文字省力化のために時刻列は全て1列ずつ増えてわかりにくくなる A列を非表示にするにしても。 >退社時間から出社時間を引くというような計算もできるでしょうか? セル番地で引き算すればよい。これが時刻シリアル値のありがたいところ。 これで会社の(正確性を要する)システムを作ろうと言うのだから、 もっと勉強してからです。 このコーナーで数日に1回ぐらいエクセルで勤務時間の計算の質問が出てくる。 このコーナーで過去質問を引きにくいなら Googleで「エクセル 勤務時間」「エクセル タイムカード」などで照会すれば、たくさん(何十万?)記事が出ます。 この照会を思いつかないようでは、本質問で他に必要な関数など調べることなどできない。

rocuchan
質問者

お礼

お恥ずかしながら自分はエクセルの実務暦8年、VBAも簡単なものなら自分で作れます。Google検索も、こちらでの検索も慣れております。 フリーソフトもいくつか試しました。 今回の:の件は、私一人ではなく、実務経験のない従業員のために 簡単にエクセルを利用できる方法を求めてのことでしたので、 あえてわざわざ質問しました。 言葉足らずですみません。

回答No.6

シリアル値の入力を推奨しますが、こんな方法でも計算できますよ ということで =TEXT(B1,"00!:00")-TEXT(A1,"00!:00")+(B1<=A1)

rocuchan
質問者

お礼

いろんなやり方があるのですね、勉強になります。 ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

時間の計算をさせるのであれば、最初からシリアル値(15:30)と入力する方法をお勧めします。 会社の規定などで、時間は30分単位に入力とかありませんか? 別シートにでも 0:00 0:30 1:00 と入力できる時間の一覧表を準備しておいて 入力規則を設定すれば、キー入力ではなく、マウスで選択してもらえば 誤入力もなくなります。 同様に 1    1 2    2 3    3 ・・ 12 ・・     59 と準備して A列に時間の入力規則1~12 B列に分の入力規則 1~59 C列に=(A2&":"&B2)*1 表示形式を 時刻 に設定する方法もあります。

rocuchan
質問者

お礼

そのとおりです。 打刻時間はさまざまですが、端数処理を手計算でしている状況です。 そのあたりも、参考にしたいと思います。ありがとうございました。

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

A1セルに出社時刻を930と入力し、B1セルに1750と入力するとして表示形式で00":"00で09:30や17:50と表示できますね。 退社時刻から出社時刻を引くには次の式をC1セルに入力すればよいでしょう。 =VALUE(INT(B1/100)&":"&MOD(B1,100))-VALUE(INT(A1/100)&":"&MOD(A1,100))

rocuchan
質問者

お礼

ありがとうございます。 計算式を今後の参考にしたいと思います。

noname#99913
noname#99913
回答No.3

>たとえば、15:30  と表示したいときに、1530 と入れてenter したら、15:30 となるようにするには、どうすればよいでしょうか? ユーザー定義書式(0":"00)を使えば出来ますが、そうすると数値として扱われ、時間計算ができなくなります。 >そして、それが表示できたとして、退社時間から出社時間を引くというような計算もできるでしょうか? 上に書きましたように、できません。 時間計算するためには、セルの値がシリアル値である必要があります。つまり、「15:30」と入力しなければなりません。たった1文字の違いですから、大した手間ではないでしょう。 どうしても「1530」で入力したいのなら、複雑な計算式を書いて、時間に変換する必要があります。たとえばA1に出社時刻、B1に退社時刻があるとして、 C1:=INT(B1/100)*60+RIGHT(B1,2)-INT(A1/100)*60+RIGHT(A1,2) D1:=INT(C1/60)&":"&TEXT(MOD(C1,60),"00") これで、D1に勤務時間が求められます。

rocuchan
質問者

お礼

複雑な計算式は、数値を60進法で置き換える計算ですね、 よくわかりました。 先日フリーソフトを試してみましたが、 保護がかかっていてわからなかったのですが、 1530  とうつと、エンターすれば15:30 となるのは よくわかりませんがそういう数式が隠れているのかもしれないですね。 ありがとうございました。

  • cotton-3
  • ベストアンサー率34% (16/46)
回答No.1

初めまして、 時刻入力するセルの書式設定で分類(C:)”日付”の種類(T:)”13:30”と設定し、始業時間と終業時間を入力し、引き算する計算式を就業時間セルで実行すれば簡単に計算可能です。

rocuchan
質問者

お礼

さっそくのご回答ありがとうございました。 はい、その方法ならやってみました。 入力データが多いので、少しでも効率的に早く処理できないかと 思い 13:30 の表し方を簡単にできないかとご質問したわけです。

関連するQ&A

専門家に質問してみよう