[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『タイムカードの就業時間を「A」、「B」、「C]と判定したい』(よういち)
「就業時間基本5:30」なら「A」判定
「就業時間基本2:45」以上「5:29」なら「B」判定
「就業時間基本1:00」以上「2:44」ならば「C」判定
「修行時間基本1:00」未満なら「空白」
と判定させたいです。「就業時間基本」はワークシート関数で求めています。
例えば、2月1日から2月28日まで、VBAを使って「判定する」ならどうすれば良いでしょうか?
基本時間 If 関数で2:45 以上 5:29 「B」 判定としようとすると、おそらくは「シリアル値の問題」で簡単に「B」判定とは出てくれません。
どなたか、正しい判定方法を教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>「就業時間基本」はワークシート関数で求めています。
具体的にどんな関数なんですか?
>2月1日から2月28日まで
シートのどこ(セル)にそれらが入っているんですか?
>VBAを使って「判定する」ならどうすれば良いでしょうか?
数式ではダメなのですか?
(半平太) 2019/01/20(日) 19:49
細かい話だけど
誤 「修行時間基本1:00」未満なら「空白」 正 「就業時間基本1:00」未満なら「空白」
ですよね。
とりあえず、確認です。
(1)
>「就業時間基本」はワークシート関数で求めています。
どのように求めているのでしょうか?
関数(と結果)によってはその時点で文字列になっちゃってません?
(2)
>基本時間 If 関数で2:45 以上 5:29 「B」 判定としようとすると、おそらくは「シリアル値の問題」で簡単に「B」判定とは出てくれません。
どのような数式を組んでいて、どのような結果になってしまっているのでしょうか?
(3)
>例えば、2月1日から2月28日まで、VBAを使って「判定する」ならどうすれば良いでしょうか?
時刻の話だとおもって読んでいたら急に月日の話になってますけど、何をもとに何を判定したいのでしょうか?
(もこな2) 2019/01/20(日) 19:59
日 曜日 タイムカード時刻 休憩 就業時刻 就業時間
出社 退社 休憩取得時間 開始時刻 終了時刻 基本
1 金 8:15 15:46 1:00 9:15 15:45 5:30
2 土 8:10 15:45 1:00 9:15 15:15 5:00
3 日
4 月 9:10 14:15 1:00 9:15 14:15 4:00
2019年 3 月
1 =DATE(A1,D1,1) 9:15 15:45
就業時間基本を求める計算式
=IF(OR(E16="",H16=""),"",IF(N16>Q16,(Q16+$AG$16)-N16-K16,Q16-N16-K16))
この式で求めた基本時間 が 土曜以外は 5:30 で「A」土曜日は 5:00 で「A」
以下 2:45 以上 5:00 未満「B」
1:00 以上 2:45 未満「C」
0:00 以上 1:00 未満 ""
となります。
土曜日だけが最大就業時間が 5:00 でも「A」と判定します。
つまり、「土曜日」を見つけ出すのです。
(よういち) 2019/01/21(月) 22:57
列番号が不明確ですねぇ・・
A列に日付、T列に基本就業時間だとすると
16行の数式 =IF(T16="","",LOOKUP(ROUND(T16*1440,0),IF(WEEKDAY(A16)=7,{0,60,165,300},{0,60,165,330}),{"","C","B","A"}))
数式ではダメな場合は、他の回答者のレスをお待ちください。
(半平太) 2019/01/22(火) 07:50
なるほど、VBA案が必要なんですね。
この板での説明では、就業時間は数式で算出することになっているので、 小数演算誤差対策が必要だと思います。
私からはそれだけです。
(半平太) 2019/01/22(火) 08:28
結局、私には質問が理解できてませんし、マルチポストに頑張って回答つける気も起きないので、感想だけ。
(もこな2) 2019/01/22(火) 08:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.