キンコミ kintone user community

みんなの投稿

2024/08/08 14:18

勤務時間を算出する計算式について

以下の事について解決できる計算式はありませんか
部門が工事チーム
勤務時間が8:30-17:30として
休憩時間が10-10:30、12-13とします
早退の勤怠の場合、出退勤が8:30-11時の場合休憩時間を引いて
勤務時間が2時間としたいです。

様々な式を入れてみましたがVALUEとなります。
JavaScriptを使用しない形で解決できる方法はありませんか。
ご教示願います。

1件のコメント (新着順)

様々な式を入れてみましたが

例えばどんな式を入れてみたか教えてもらうことはできますか?
#VALUE!が出ているということは、ヘルプを見ると「計算する値の型や演算子が適切ではない場合」とありますね。


nagi
2024/08/08 15:12

コメントありがとうございます!

IF(Aフィールド="工事チーム",IF(AND(Bフィールド<>"",Cフィールド<>""),IF(AND(Bフィールド<="10:00",Cフィールド>="10:30"),30,0)+IF(AND(Bフィールド<="12:00",Cフィールド>="13:00"),60,0)+IF(AND(Bフィールド<="15:00",Cフィールド>="15:30"),30,0),0),0)

このような式です。
Bには出勤時間、Cには退勤時間が入るといった形です。

ありがとうございます。

IF(AND(Bフィールド<="10:00",Cフィールド>="10:30"),30,0)

①ダブルクォーテーションで囲むと「文字」になってしまうので「"10:00"」や「"10:30"」という書き方だと文字なので大小の比較ができません。なので「Bフィールド<="10:00"」の計算ができないことになります。

②ではダブルクォーテーションを取ればいいのかというと、「Bフィールド<=10:00」という書き方にしても「10時以前」という計算式にはならないと思います。

解決策としては、「10:00」や「10:30」などの時刻を一度「数値」に変換し、その数値でIF関数を書いてみればエラーはなくなるかと思います。
お試しください。

nagi
2024/08/08 16:02

時刻を数値に、、というのはどういった方法で変えれるのでしょうか、、
Kintoneをほとんど触った事がないので教えていただけたら幸いです。

お手数おかけしますがお願いいたします

まずはヘルプを参考に、kintoneの日時や時間の表示を覚えてください
日付、時刻、日時の計算

こう書いてあります。

kintoneでは、日付や日時は秒単位で扱います。

ここを理解できないと少し難しいかもですね。

時間を数値に、は平たく言うと「秒にする」というイメージです。
「10:00は0:00から何秒経過したか」という計算をするということになります。
①0:01は0:00から60秒
②1:00は0:00から60分(つまり60秒×60 = 3600)
ということは
③10:00は0:00から・・・ということですね。

※一つ一つ計算するのも面倒ならば、計算フィールドでBフィールドなどの時刻フィールドを数値にしてみてそれを使用するといいかもしれませんね。

nagi
2024/08/08 16:50

試してみたところできました!

ありがとうございます。
時間を使用する時はあくまでも秒単位で表記しなければいけないという事ですね。