0

何千ものインシデント チケットを含む Excel テーブルがあります。通常、各チケットは数時間または数日にわたって運ばれます。私は通常、終了日時から開始日時を差し引いて合計期間を計算します。

ただし、営業時間外(夜間)、週末、祝日は考慮せず、考慮したいと思います。

そのため、2 つの追加の参照テーブルを作成しました。1 つは非稼働時間 (たとえば、毎日午後 7 時から午前 7 時まで、土曜と日曜の終日、および祝日のリスト) を含みます。

ここで、そのリストに該当する時間を合計チケット時間から削除して、各チケットの「実際の期間」を自動的に計算するある種の VB マクロを見つける必要があります。

このウェブサイトや他のフォーラムを見回しましたが、探しているものが見つかりませんでした。誰かが私がこれを達成するのを手伝ってくれるなら、私は非常に感謝しています.

よろしくお願いします、

アレックス

4

1 に答える 1

0

NETWORKDAYS関数を使用して、間隔内の稼働日数を計算できます。実際、あなたは完璧に設定されているようです: 開始日、終了日、および休日の範囲へのポインターが必要です。デフォルトでは、週末以外のすべての日がカウントされます。

日中の時間を計算するには、追加の魔法が必要です。チケットが営業時間内にのみ開閉されると仮定すると、次のようになります。

first_day_hrs := dayend - ticketstart
last_day_hrs := ticketend - daystart
inbeetween_hrs := (NETWORKDAYS(ticketstart, ticketend, rng_holidays) - 2) * (dayend - daystart)

total_hrs := first_day_hrs + inbetween_hrs + last_day_hrs

もちろん、名前は実際には Excel セルを参照する必要があります。リストや名前を使用することをお勧めします。

于 2013-06-25T06:39:21.850 に答える