« [Glee] Season Finale Faithfully | トップページ | 【Numbers】時間の計算 タイムカード 【最終回まとめ】 »

【Numbers】時間の計算 タイムカード 【その4+】

今までの経過は
その1[LINK]OpenNewWindow
その2[LINK]OpenNewWindow
その3[LINK]OpenNewWindow
その4[LINK]OpenNewWindow
その4+[LINK]OpenNewWindow
最終回[LINK]OpenNewWindow
を見てください。
iworkの関数一覧はこちら[LINK]OpenNewWindow
を見てください。

15分単位で集計する場合のヒントはこちら[LINK]OpenNewWindow


 

ここ数回で問題になっているのは

24:00

を超える時間の指定についてです。

今回は『文字列を操作〜分割』
する事で
24時以降の時間にも対応する事を考えてみます。


 

まずは
作りかけの途中のファイルを見てください。

「timecard_v3a.numbers.zip」をダウンロード

 
まずは
時間を



に分

HH:MM

で時間を表示しますので
497x285_timecard_10_2

カスタムフォーマットを使って

9:00

入力しても
09:00

とゼロサプレス[LINK]OpenNewWindow表示するようにしておきます。

 

=LEFT(F11,2)


時間を
から』『文字』取得します。

このままだと
半角1バイト』と『全角2バイト』
の判定がややこしいので

=VALUE()で包んで

文字列→数値 をしておきます。

前回等でも問題になって『:』の区切り文字は『VALUE』で変換出来ないので
この方法は使えませんでした。

425x91_timecard_06


 

続いて『分』側の整形にうつります。

先の『時』部分と同じ発想で

=RIGHT(F11,2)

HH:MMの時間文字列を

から』『文字』を取得して

=VALUE()で包んで

数値としておきます。

405x99_timecard_07

 

この=VALUE()の処理は
入力される時間が
23:59までなら必要無い処理です。

セルのカスタムフォーマットで『時間』指定しているので
23:59までの入力は
『かな』で入力しても『時間』に自動的に変換されます。

しか〜し

カレンダーの回で[LINK]OpenNewWindow書いたように

Numbersは
『必ず日付時刻形式』で時間を持つ
時間には必ず日付が必要
なので
26:00は翌日なので
日付が変わるわけです
同日とは処理出来ない。

1月1日の26:00時は 1月2日の2時
としてしか表示出来ない
そうなんです
Numbersでは
24:00は『翌日』
なのです。

エクセルでは先に書いたように
日付や時間は
『日付連番』+『TIMEVALUE値』です。
エクセルでは36時等のTIMEVALUE値がありますので
このような事にならないわけです。

 
脱線しましたが

HH:MM形式の時間の入力を

HHとMM
に分割しました。

では
この分割されたHHとMMを元に
TIMEVALUEの値にすれば良いわけです。

HH:MM

単純にTIMEVALUEに戻すなら
TIMEVALUE(HH&":"&MM)

十分なわけですが

24時以降の場合は

SUM(1,TIMEVALUE((HH-24)&":"&MM))

このように
24:00のTIMEVALUE値である『』を
例だと
36-24=の12のTIMEVALUEに足す

事で
36時のTIMEVALUE値『1.5』を求める事が出来るわけです。

636x102_timecard_08

 

これで
■深夜勤務時間中の休憩に対応する
■24時を超える勤務時間の集計に対応する
■残業時間に対応する

タイムカード計算
が出来そうですね。

454x152_screen_01


■【時間帯A】労働時間
■【時間帯A】深夜時間
■【時間帯B】労働時間
■【時間帯B】深夜時間

■それぞれの合計

■労働時間が8hを上回った分を残業時間

を計算すれば良いですね。

続く (続かないかもしれない...w)

|

« [Glee] Season Finale Faithfully | トップページ | 【Numbers】時間の計算 タイムカード 【最終回まとめ】 »

iWorkNumbersTimecard」カテゴリの記事

コメント

この記事へのコメントは終了しました。