2017-08-25 7 views
2

現在の週に開始時間が2回ある学生(開始時間は午前8時から午前4時、午前11時から午前4時)が5人あります。VBA Excel_Compare and Count:2枚のシートのセルを比較して遅れをカウントする

AIMフィールドで始まり、各学生のための到着時間フィールドと比較し、選択された日付の上に遅刻回数のカウントを行います。このカウントは、「週の間、NO NO LATENESS」フィールドに表示されます。

  • 私は、2枚のシート: 'マスター'と 'planning_and_lateness tracker'を持つ1つのワークブックで作業します。

Masterシートmaster sheet

Student DATE   Arrival time 
Paul  2017-08-22 08:10:21 
Paul  2017-08-23 08:11:52 
Paul  2017-08-24 13:17:06 
Lola  2017-08-22 08:04:50 
Emilie  2017-08-22 08:27:54 
Emilie  2017-08-23 08:50:33 
Coco  2017-08-22 07:41:24 
Coco  2017-08-23 07:47:17 
Coco  2017-08-24 07:46:45 
Jack  2017-08-22 10:00:38 
Jack  2017-08-23 11:07:42 
Jack  2017-08-24 11:00:27 

enter image description here

Planning_and_lateness trackerシート

[プランニング及び遅れトラッカーシート] [3] OPに設けられない参照

Staff Starts at No. of lateness during the week 
Paul 08:00:00  
Lola 08:00:00  
Emilie 08:00:00  
Coco 08:00:00  
Jack 11:00:00  

数値はNo. of lateness during the weekフィールドに表示されます。

私はVBAコードを持っています。私はそれで海で迷っています。

+1

コードが提供されていないため、この質問をトピックとしてクローズすることに投票しました。これは、「自分のプログラムを書く」リクエストです。 – FreeMan

答えて

1

このためにVBAを使用する理由はわかりません。私の意見では、Excelは十分です。ここに私が提案するものがあります。最初のシートのマスタデータに3列を追加します。

修正時刻||週番号||遅い?

正しい時刻:

=IF(B7="Jack";TIME(11;0;0);TIME(8;0;0)) 

週番号:後期

=WEEKNUM(C7) 

=D7>E7 

2番目のシートには、このデータを含むピボットテーブルがあります。週番号は列で、後はレポートフィルタ(フィルタでLate = TRUEを選択)にする必要があります。学生は行ラベルになり、値にも学生番号(学生番号の数)が含まれていなければなりません。

必要に応じてオフセット関数を使用してピボットテーブルに動的なソースを持たせるか、計算したいときは常にピボットテーブルのソースを更新することができます。

How it should look

+1

受賞者、受賞者、鶏の夕食!うん、これは、ピボットテーブルが発明されたものです! – FreeMan

0

答えをいただき、ありがとうございます。 しかし、6枚のマクロを実行した後にマスターシートが作成されます。 私はSTARTS ATセル値をロスタであるため週に更新する予定ですが、計画シートはデフォルトでそこにあります。

この場合、上記の回答は有効ですか? だからこそ私はそれが複雑であると思っている。

ご回答ありがとうございます。

関連する問題