• ベストアンサー

EXCELで時間給料計算をするには。

長文にて失礼いたします。教えてください☆ 勤務総時間をSUM関数で計算し、合計:28Hとなりました。こちらは表示形式より[h]にて大丈夫でした。 ですが、その後の処理で[計算結果25H]となっている[A1]セルに@800を計算しようと思い下記の処理をしてみました。 =hour(A1)*800 とです。でも、結果は(800)です。24Hは計算より除外されてしまいました。 参考書を見ると  =A1*24*800 でいいと。 ですが、そんな方法ではなくなるべく関数やスマートな式で組みたいのです。できればhour関数を駆使したいです。 普段の皆さんの処理を教えていただけないですか? もしくはいろいろな方法をご教授ください。

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

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.6

こんにちは  質問者さんの意向からは180度異なると思いますが、エクセルの日付時刻(シリアル値)システムを使わないで独自方式(整数1を1分として扱う)で構築する方法もあります。  どのように実現するかは、エクセルを使う方のアイデア次第ということです。  興味がおありでしたら参考URLをどうぞ。

参考URL:
http://oshiete1.watch.impress.co.jp/qa4742860.html
wakudo
質問者

お礼

ありがとうございました。 みなさんのアドバイスを順に追って最後にA88No8さんのを参考にさせていただくと しっくりいきました。 ありがとうございます。 単位の概念に対しては理解しています。 あえてその上で数式を単純に利用するのではなく 何か良い方法がないものか考えておりました。 時間を集計した後その集計を元に別の計算をする可能性もあるので。 本当にありがとうございました。

その他の回答 (5)

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.5

参考資料がありました 式としては =(DAY(A1)*24+HOUR(A1))+(MINUTE(A1)/60) になるようです。

参考URL:
http://support.microsoft.com/kb/881211/ja
wakudo
質問者

お礼

本当にありがとうございます。いろいろな角度でアドバイスをいただけて感謝です。 私が利用するというよりも利用する側に説明を行うという仕事も担っております。 ですのでこのようにアドバイスを沢山いただくことにより相手を納得させる材料にもなります。 本当にありがとうございます。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.4

24を掛ける意味がわからないから嫌なんだと思います。 日時形式のデータは見た目で 2009/5/28 や 09:10:35 のような形式に見えますが、実態は24:00:00=1とする数値になっています。 その仕組みについて詳細な説明はできませんが、例えば25時間の場合 25:00:00 と表示されていると 1日 + 1:00:00 となっているので =hour() では 1:00:00 を返してきています。 #1さんが「時間」「時刻」と表現していますがその違いはご存知でしょうか? 2時間と3時間は足して5時間といえますが、朝の8時と夕方の5時は足せませんね。 エクセルでは時刻しか扱いません。 実務上では100時間などの概念がありますが、これをエクセルに入れても100時間=4日の4時になります。 時給を支払うには100時間でなれば計算できないから、時間計さされた結果が時刻形式なら24を書ける必要があります。

wakudo
質問者

お礼

ごめんなさい。24を掛ける意味がわからないとは書いたつもりはなかったので。少し驚いています。 他の人の自分の考えを伝えるのはなんとむずかしいことかと 改めてみなさんのアドバイスから感じている次第です。 勉強不足でした。 ですが、別の意味でいいヒントをいただいた気がします。 本当にありがとうございます。

noname#99913
noname#99913
回答No.3

時刻と時間の違いを理解していないと、誤解のもとになります。 HOUR関数は時刻を返す関数です。HOUR関数の引数に指定した時点で、25時間は25時と解釈されます。25時は1時です。 つまり、「=HOUR(A1)*800」は「=1*800」となり、答えは800です。

wakudo
質問者

補足

ご意見ありがとうございます☆ すみません。私の記入方法がまわりくどいのでしょうね。 私がお聞きしたかったのはHOURのストレートな結果25H=1 ということではなく、25H=25と取り出し、その値を元に 給与計算をしたいということです。 演算子(+-*/^)の利用を最小限にて、なるべくHOURやほかの関数を用いてということでございます。 スマートな給与計算が目的です。 ですが、簡潔なご説明改めてうんうんって感じでした。 ありがとうございます。

  • FEX2053
  • ベストアンサー率37% (7995/21381)
回答No.2

HOUR関数は要するに 「=int(A1)*24」をやってるだけなので、[h]表示 の数字は計算できません。=A1*24*800 以外の計算方法は無いです。 まあ、複雑に日付計算とかすれば出ては来そうですけどね。 Excel使いとしては「参考書の式」の方がずっと分かりやすいです。

wakudo
質問者

お礼

ありがとうございます。 FEX2053さんのおっしゃる通りですよね。 う~ん。わかってはいるのですが、 なんか格好いい方法が、EXCELらしいやり方? があるといいなぁと思ってしまいました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

HOUR関数は「時刻」を得る為の関数です。あなたが扱いたいのは「時間」ですよね。 HOUR関数は使いません。=A1*24*800 で良いと思います。

wakudo
質問者

お礼

ありがとうございます。 そしてすみませんでした。まっさきにアドバイスをいただいていたにもかかわらず一番最後になってしまいました。 なぜか最初のアドバイスを見落としておりました。本当に申し訳ありません。 mt2008さんのご指摘とおりですよね。 がんばります!ありがとうございます(*^_^*)