[[20030730054607]] 『日付計算:リスト内の特定日のみを除外したい』(kt) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付計算:リスト内の特定日のみを除外したい』(kt)
 はじめまして。
 国民の祝日や長期休暇など、日数の計算から除外する日付のリスト(除外日リスト)が予め作ってあり、
 開始日から起算し指定した日数後の日付を求める際、除外日リストを参照して、日付間に日数除外日が
 当てはまる場合はリスト内の日付のみを除外して日付を求める方法はどうしたらよいのでしょうか。
 シリアル値で単純計算したり、WORKDAY関数を工夫したり、データベース関数を使用してもうまくできません。
 過去の質問ボードも参考にしてみましたがダメでした。
 関数式をご教示願います。

 祝祭日土日などの除外リストを除く日数計算関数はNETWORKDAYS関数で求めます。
 NETWORKDAYS(開始日, 終了日, 祭日)
開始日から終了日までの期間に含まれる稼動日の日数を返します。
稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。
この関数は、特定期間内の稼動日数を基準にして従業員の給与を計算するときに使用します。
 (シニア)

 早速の解答、有り難うございます。
 上記の質問で説明が足りなかったのですが、土日曜日は日数の計算から除外せずリスト内の特定日のみ
 日数の計算から除外するという関数を作ろうと思っているのです。
 シリアル値で単純計算してから除外する日を手動で記入する方法もあるのですが、除外日リストは
 一人一人違い且つ毎月違い、開始日から特定期間内に指定除外日が含まれるか否かを手動で探さなくてはなりません。
 開始日からの特定期間はプロジェクトにより30日間から21ヶ月間とばらばらで、土曜日曜は計算に含み、
 特定日は除外する自動計算関数を作ろうとしていたのですが難しそうです。(kt)

 ゴールシークを使う方法ではどうでしょうか?

 仮に、A1に開始日、A2が日数後の日付、B1からB10が除外日リスト、A3に日数とします。
 1. A3に =DATEDIF($A$1,$A$2,"D")-SUMPRODUCT(($B$1:$B$10>=$A$1)*($B$1:$B$10<=$A$2)) とします。
 2. A1には開始日を、A2には適当に日付を入れておいて下さい。
 3. 「ツール」−「ゴールシーク」を選択。
 4. 数式入力セルに A3、目標値に求めたい日数、変化させるセルに A2 を入力してOK。
 これで、A2に除外日リストを除いた日数経過後の日付が入ると思います。(Yosh!)

 B3に任意の日数、C3に開始日、D3に単純計算した日付、J3からK37が除外日リスト、
 E3に除外日リストを除いた日数経過後の日付を表示させるとすると、
 D3に =IF(C3=0,"",SUM(B3:C3))
 E3に =IF(C3=0,"",(D3+(SUMPRODUCT(($J$3:$K$37>=$C3)*($J$3:$K$37<=$D3))))) という関数で計算すると、
 E3に除外日リストを除いた日数経過後の日付を表示させることができました。
 シニアさん、Yosh!さん、大変参考になりました。ありがとうございました。(kt)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.