【Numbers】時間の計算 タイムカード 【その4】
今までの経過は
今までの経過は
その1[LINK]
その2[LINK]
その3[LINK]
その4[LINK]
その4+[LINK]
最終回[LINK]
を見てください。
iworkの関数一覧はこちら[LINK]
15分単位で集計する場合のヒントはこちら[LINK]
今回は深夜時間帯での『休憩』に対応します。
考え方は↑のように
時間帯を2つに分けて考えれば良いですね。
時間帯Aと時間帯Bでそれぞれ
『勤務時間』
と
『深夜時間』
を求めれば良い事になります。
そう逆の発想ですね。
『休憩時間を求めない』にしたわけです。
ポイントって言うか、なぜこんなに時間計算が変な事になるんでしょ。
Excelに目を向けてみても
Macintosh 版 Excel と Windows 版 Excel では、既定の日付システムが異なります。
Macintosh版でもExcelとNumbersでは関数に互換が無いものがあります。
先にも書きましたが
Mac版のExcelでは
=TIMEVALUE("24:00")=0
で
0(ゼロ)を返します。
でも
Numbersでは
=TIMEVALUE("24:00")=エラー
になってしまいます。
これが最も困ります。
エラーになるので『エラーの制御』をしなくてはなりません。
数字は『1バイト半角』入力にしても
区切り文字としての
『:』
コロンの入力について
『2バイト全角の:』と『1バイト半角の:』
を考慮に入れるだけでも
エラー制御が2重に必要になってしまいます。
この『文字列』の操作は次回やるとして
今回は前回同様
IF(時間が="24:00"ならTIMEVALUEとしての1, //『1バイト半角の:コロン』
IF(時間が="24:00"ならTIMEVALUEとしての1 //『2バイト全角の:コロン』
の2通りだけの制御をしておきます。
次に考えるのが
どんな『パターン』があるかな?
って事でしょうか?
ざっと考えただけでも
このぐらいの種類の入力パターンが想定されます。
(中にはありえない感じのもありますけど..w)
これらを考慮して計算式を作成していきます。
基本は前回の計算と同じ
(TIMEVALUE(終了時間)-TIMEVALUE(開始時間))/TIMEVALUE("1:00"))
で
時間を数字として定義できますね。
今回のサンプルファイルはこちらです。
numbersデータをダウンロード[Download]
参考にしてください。
(結構数式が横に長いので難解かもしれません....汗)
続く (続かないかもしれない...w)
| 固定リンク
「iWorkNumbersTimecard」カテゴリの記事
- 【Numbers】時間の計算 タイムカード 【15分単位】(2010.07.24)
- 【Numbers】時間の計算 タイムカード 【最終回まとめ】(2010.06.07)
- 【Numbers】時間の計算 タイムカード 【その4+】(2010.06.06)
- 【Numbers】時間の計算 タイムカード 【その4】(2010.06.04)
- 【Numbers】時間の計算 タイムカード 【その3】(2010.05.31)
この記事へのコメントは終了しました。
コメント