Excelで作業時間や勤務時間に単価を掛けて金額を計算したい場合、入力されている時間が単なる数字なのか、「1時間」のような文字付きデータなのかによって計算方法が変わります。
例えば「1時間×300円」のような計算をしたい場合、Excelは文字が含まれたセルをそのまま掛け算することができません。そのため、時間部分だけを取り出して数値に変換する処理が必要になります。
ここでは、TIMEVALUE関数やSUBSTITUTE関数を使う方法、さらに簡単な入力方法について解説します。
Excelでは「1時間」という入力はそのまま計算できない
Excelでは「1時間」という入力は、見た目では時間に見えていても、文字列として扱われる場合があります。文字列の場合、例えば「1時間」と入力されたセルに300を掛けても正しい計算結果は表示されません。
計算するためには、Excelが認識できる時間や数値の形式に変換する必要があります。
例えば以下のようなデータの場合を考えます。
| A列 | B列 | 結果 |
|---|---|---|
| 作業時間 | 単価 | 金額 |
| 1時間 | 300円 | 300円 |
このような計算をするには、A列の「1時間」という文字から数字の「1」を取り出す必要があります。
SUBSTITUTE関数で「時間」という文字を削除する方法
文字付きの時間を計算する場合、よく使われる方法がSUBSTITUTE関数です。SUBSTITUTE関数は、指定した文字を別の文字に置き換える関数です。
例えばA1セルに「1時間」と入力されている場合、以下のような式で「時間」という文字を削除できます。
=SUBSTITUTE(A1,”時間”,””)
この結果、「1時間」は「1」という数字だけになります。ただし、この状態では文字列として扱われる場合があるため、計算に使う場合は数値化する処理を追加します。
例えば以下のようにします。
=VALUE(SUBSTITUTE(A1,”時間”,””))*B1
A1が「1時間」、B1が「300」の場合、結果は「300」と表示されます。
TIMEVALUE関数を使う場合の注意点
TIMEVALUE関数は、文字列で入力された時刻をExcelの時間データへ変換する関数です。しかし、「1時間」のような単位付きの文字列をそのままTIMEVALUEに入れても、正しく変換できない場合があります。
TIMEVALUE関数が得意なのは「1:00」や「12:30」のような時刻形式です。
例えばA1セルに「1:00」と入力されている場合は、以下のような計算ができます。
=TIMEVALUE(A1)*24*300
Excelの時間は1日を1として管理しているため、1時間は1/24になります。そのため、時間数として計算したい場合は24を掛ける必要があります。
作業時間計算なら入力方法を変えるともっと簡単になる
請求書や作業時間管理で使う場合は、「1時間」のような文字付き入力よりも、最初から数値だけを入力する方法がおすすめです。
例えば作業時間を「1」、単価を「300」と入力しておけば、計算式は非常にシンプルになります。
=A1*B1
表示だけ「1時間」としたい場合は、セルの表示形式を変更する方法があります。これなら中身は数字のままなので、計算ミスが起こりにくくなります。
例えば、入力値は「1」のままにして、表示形式で「0時間」と設定すると、画面上では「1時間」と表示できます。
請求書や給与計算で使う場合のおすすめ設定
仕事で時間単価を計算する場合は、入力ルールを統一することが重要です。「1時間」「1h」「1.0」など入力方法がバラバラになると、関数が複雑になり管理が難しくなります。
おすすめは、時間数のセルには数字だけを入力し、単価セルと掛け算する形式です。
例えば以下のような表にすると管理しやすくなります。
| 作業内容 | 時間 | 単価 | 金額 |
|---|---|---|---|
| 作業A | 3 | 300 | 900 |
| 作業B | 2 | 500 | 1000 |
この形式なら、後から合計金額を出したり、請求書へ転記したりする場合にも便利です。
まとめ:文字付き時間を計算するなら数値化がポイント
Excelで「1時間×300」のような計算をする場合、「1時間」という文字をそのまま計算するのではなく、時間部分を数値に変換する必要があります。
SUBSTITUTE関数で「時間」を削除し、VALUE関数で数値化する方法なら、文字付きデータでも計算できます。
ただし、請求書や業務管理で継続的に利用する場合は、最初から時間を数字として入力し、表示形式で「時間」を付ける方法が最も簡単でトラブルが少ない方法です。

コメント