- PCソフトウェア
- 2019年6月5日
「数値」と「文字列」の違いとは?セルへの入力でエクセルの基本特性を考えてみましょう。
エクセルの基本特性を知る エクセルにおけるサポート対応対応で、新元号令和の表示に……
エクセルで時・分・秒の情報からTIME()関数を用いることで、時刻・時間情報(シリアル値)が求められることをタイムカード出勤状況を処理するイメージで掲載しました。
時刻関数は日付情報を取り扱うDATE()・YEAR()・MONTH()・DAY()関数と関係性が似ていることもあり、日付関数とともにエクセルでよく使われるものです。
時・分・秒の情報を引数としてTIME()関数【 =TIME(時,分,秒)】で計算を実行し、計算の結果となる時刻・時間情報(シリアル値)を求めました。
今回は逆で時刻・時間情報(シリアル値)が入力された情報から関数を使って時・分・秒の情報を取得する方法について書いてみます。
前回のTIME()関数の例では、12(時)、34(分)、56(秒)と3つのセルに値が入っている場合に、TIME()関数を使って、シリアル値となる【12:34:56】 を求めることができました。
今回はシリアル値【12:34:56】が入力されているセルから時・分・秒のそれぞれの値である時=12、分=34、秒=56を取り出すために、HOUR()・MINUTE()・SECOND()の3つの関数を使います。
時刻・時間情報(シリアル値)から時を取り出す関数はHOUR()関数です
=HOUR(シリアル値)と入力することで、シリアル値から時を取得することができます。
例では【12:34:56】の値である、シリアル値が【A7】セルに入力されているので、=HOUR(A7)と入力することで求めることができます。
WebDreamはセルへ直接数式・関数を入力することが多いのですが、エクセルの数式リボンから、【日付/時刻】を選んで入力する方法でも結果は同じです。
関数の一覧から選択すると、上記のように関数が必要とする引数や、求められる結果の説明が表示されます。
時刻・時間情報(シリアル値)から分を取り出す関数はMINUTE()関数です
=MINUTE(シリアル値)と入力することで、シリアル値から分を取得することができます。
例では【12:34:56】の値である、シリアル値が【A7】セルに入力されているので、=MINUTE(A7)と入力することで求めることができます。
時刻・時間情報(シリアル値)から秒を取り出す関数はSECOND()関数です
=SECOND(シリアル値)と入力することで、シリアル値から秒を取得することができます。
例では【12:34:56】の値である、シリアル値が【A7】セルに入力されているので、=SECOND(A7)と入力することで求めることができます。
HOUR()関数・MINUTE()関数・SECOND()関数の3つの関数を使用して時刻・時間情報(シリアル値)から時・分・秒の値を取得することができます。
これらの関数は時・分・秒を表す英単語そのままなので、関数としても覚えやすいのではないでしょうか。
Excelで帳票類のデータを入力する上で、日付関連の情報とともに時刻・時間の情報を取り扱う機会が多いと思います。シリアル値として取り扱うのか、時・分・秒の3つの値に分けて処理するのか場合にあった処理ができるようにすることが大事です。
ある時刻からある時間の経過は何時になるかや、指定時間前の時刻を必要に応じて求めたり、勤務時間や作業時間の合計を求めるといった時刻・時間の計算を行うことができます。
例えば開始時刻【12:34:56】から、経過時間10時間、90分、10:00:00時間後の時刻を求める計算を考えてみます。
上記例では加算結果のセルには【=A2+C2】と単純に足し算を行う式が入力されています。しかしながら加算結果を見てみると10時間・90分を加算したつもりですが、結果が【12:34:56】となっています。
加算時間に【10:00:00】と指定した行の計算だけ10時間後の【22:34:56】となっているようです。
時間・時刻の計算に限らず、計算を行うときには【単位】を意識することが重要です。開始時刻が【12:34:56】といったシリアル値であった場合に、加算する値も【シリアル値】であることが必要です。
2行目の【10】 時間の【10】は加算したい10時間を表しているでしょうか?
【C2】のセルには値【10】が入力されているため、シリアル値で考えると10は【10日間】にあたり、同様の考え方から【90】分は【90日間】となってしまいます。
開始時刻と加算結果のセルの表示形式を【yyyy/m/d h:mm:ss】と変更してみると、開始時刻は1900年1月0日12:34:56と認識されています。
一方加算結果は1900年1月10日、1900年3月30日となってしまっています。この結果から加算時間の10時間や90分が正しく加算されていないことになります。
10時間を足したいのであれば、C4セルのようにシリアル値【10:00:00】と指定するか、加算する際に単純にC2の値である10を加算するのではなく【=TIME(C2, 0, 0)】とTIME関数を用いてシリアル値としての【10時間】を加算します。
90分を足したい場合は【=TIME(0, C3, 0)】と加算する値をシリアル値の【90分】として加算します。
開始時刻に、正しく10時間・90分が加算され期待した加算結果をえることができました。
実際の業務ではもっと複雑な状況下の時刻・時間計算を行うことが多いと思いますが、本記事では関数の使用例としてかなり簡略化した例で説明をしています。
Excelでは時刻・時間の計算を簡単に求めることができますが、計算をするときに【シリアル値】を意識することが大切です。
今回の例のように10時間や90分を足したい場合に、その値がシリアル値として正しいものなのか?単位がそろっているか?など確認するようにしてください。
計算を実行した際に自分の意図しない結果となるのはどこかに原因があります。数式が間違っていないか、使用している関数は問題ないか?計算に使用している値の単位は妥当なのかといったことに今一度目を向けてみてください。
あせりからせっかく入力したものを削除してやり直してしまうとことなく、自分が入力したものを見なおす習慣づけをすることで、Excelを効率よく使えるようになっていただきたいと思っています。