
No.3ベストアンサー
- 回答日時:
>特定の曜日を除いた日数を求めたい
特定の曜日は複数(土・日など)の場合もあるかも知れませんが、ここでは例えば日曜だけというように単数の場合に限定してお答えします。
複数の場合があるときは、下記にならい、フィールドを複数設けて計算してください。
次のとおり入力フィールド及び計算フィールドを作ります。
1、開始日(タイプ「日付」)……入力フィールドです。
2、終了日(タイプ「日付」)……入力フィールドです。
3、期間日数(タイプ「計算」計算結果「数字」)
計算式………終了日-開始日+1
4、開始日の曜(タイプ「計算」計算結果「数字」)
計算式………DayofWeek(開始日)
5、曜日(タイプ「テキスト」)……除きたい「特定の曜日」を入力するフィールドです。
なお、入力に当たっては値一覧で定義し、ポップアップメニューで入力する方が便利でしょう。
7、曜日順(タイプ「計算」計算結果「数字」)」
計算式……Case(曜日 ="日曜日",1,曜日="月曜日",2,曜日="火曜日",3,曜日="水曜日",4,曜日="木曜日",5,曜日="金曜日",6,曜日="土曜日",7)
7、期間中の曜日数(タイプ「計算」計算結果「数字」)
計算式………If((0>曜日順 - 開始日の曜)or(曜日順-開始日の曜>=Mod(期間日数,7)),Int(期間日数/7),Int(期間日数/7)+1)
8、特定の曜日を除いた日数(タイプ「計算」計算結果「数字」)
計算式………期間日数 - 期間中の曜日数
以上で答えが出ると思います。(自信ありとしたのは、テストの結果一応正解が出たという意味です。)
なお、「一応」という意味は、ご存知かも知れませんが、ファイルメーカーの場合はエクセルと違って「DATEDIF」のような関数がないため、期間計算や年齢計算の場合、極めて複雑な計算をしないと閏年の関係で2年おきに1日の誤差が生じることがあります。したがって前記の場合も計算期間が長期間(例えば1年以上)になると誤差が生じる可能性がないとはいえません。しかしそこまで考慮して計算式に引用すると式が極めて複雑になるため、今回は省いておりすのであらかじめご了承ください。
(お暇があれば下記URLをご参照ください。)
http://okwave.jp/kotaeru.php3?q=1739838
No.2
- 回答日時:
ANo1です。
訂正あり。
基本営業日
= (週 * 5)
+ Case (
曜日1 = "日曜日" ; 0;
曜日1 = "月曜日" ; 5;
曜日1 = "火曜日" ; 4;
曜日1 = "水曜日" ; 3;
曜日1 = "木曜日" ; 2;
曜日1 = "金曜日" ; 1;
曜日1 = "土曜日" ; 0)
+ Case (
次の日曜日1 > 前の日曜日2 ; 0; <<=====この行削除
曜日2 = "日曜日" ; 0;
曜日2 = "月曜日" ; 1;
曜日2 = "火曜日" ; 2;
曜日2 = "水曜日" ; 3;
曜日2 = "木曜日" ; 4;
曜日2 = "金曜日" ; 5;
曜日2 = "土曜日" ; 5);
No.1
- 回答日時:
似たようなフィールドを作成してますが
参考になれば営業日数を計算するものです
営業日数 =
Let(
[曜日1 = DayNameJ ( 日付1 ) ;
曜日2 = DayNameJ ( 日付2 ) ;
次の日曜日1 = Case(
曜日1 = "日曜日" ; 日付1;
曜日1 = "月曜日" ; 日付1 + 6;
曜日1 = "火曜日" ; 日付1 + 5;
曜日1 = "水曜日" ; 日付1 + 4;
曜日1 = "木曜日" ; 日付1 + 3;
曜日1 = "金曜日" ; 日付1 + 2;
曜日1 = "土曜日" ; 日付1 + 1);
前の日曜日2 = Case(
曜日2 = "日曜日" ; 日付2 ;
曜日2 = "月曜日" ; 日付2 - 1;
曜日2 = "火曜日" ; 日付2 - 2;
曜日2 = "水曜日" ; 日付2 - 3;
曜日2 = "木曜日" ; 日付2 - 4;
曜日2 = "金曜日" ; 日付2 - 5;
曜日2 = "土曜日" ; 日付2 - 6);
週 = (前の日曜日2 - 次の日曜日1) / 7;
基本営業日
= (週 * 5)
+ Case (
曜日1 = "日曜日" ; 0;
曜日1 = "月曜日" ; 5;
曜日1 = "火曜日" ; 4;
曜日1 = "水曜日" ; 3;
曜日1 = "木曜日" ; 2;
曜日1 = "金曜日" ; 1;
曜日1 = "土曜日" ; 0)
+ Case (
次の日曜日1 > 前の日曜日2 ; 0;
曜日2 = "日曜日" ; 0;
曜日2 = "月曜日" ; 1;
曜日2 = "火曜日" ; 2;
曜日2 = "水曜日" ; 3;
曜日2 = "木曜日" ; 4;
曜日2 = "金曜日" ; 5;
曜日2 = "土曜日" ; 5);
祝日日数 =
If ( 日付1 <= Date(1;3;2005) and 日付2 >= Date(1;3;2005) ; 1 ; 0) +
If ( 日付1 <= Date(1;10;2005) and 日付2 >= Date(1;10;2005) ; 1 ; 0) +
If ( 日付1 <= Date(2;11;2005) and 日付2 >= Date(2;11;2005) ; 1 ; 0) +
If ( 日付1 <= Date(3;21;2005) and 日付2 >= Date(3;21;2005) ; 1 ; 0) +
If ( 日付1 <= Date(4;29;2005) and 日付2 >= Date(4;29;2005) ; 1 ; 0) +
If ( 日付1 <= Date(5;3;2005) and 日付2 >= Date(5;3;2005) ; 1 ; 0) +
If ( 日付1 <= Date(5;4;2005) and 日付2 >= Date(5;4;2005) ; 1 ; 0) +
If ( 日付1 <= Date(5;5;2005) and 日付2 >= Date(5;5;2005) ; 1 ; 0) +
If ( 日付1 <= Date(7;18;2005) and 日付2 >= Date(7;18;2005) ; 1 ; 0) +
If ( 日付1 <= Date(10;10;2005) and 日付2 >= Date(10;10;2005) ; 1 ; 0) +
If ( 日付1 <= Date(11;3;2005) and 日付2 >= Date(11;3;2005) ; 1 ; 0) +
If ( 日付1 <= Date(11;23;2005) and 日付2 >= Date(11;23;2005) ; 1 ; 0) +
If ( 日付1 <= Date(12;23;2005) and 日付2 >= Date(12;23;2005) ; 1 ; 0) +
If ( 日付1 <= Date(12;30;2005) and 日付2 >= Date(12;30;2005) ; 1 ; 0)
];
基本営業日 - 祝日日数
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付を差し込み印刷で表示した...
-
日付を昇順で並び替えし、空白...
-
日付型のテキストボックスに数...
-
日付がインポートされない
-
重複を除外したカウント方法を...
-
Wordの日付変換ってできますか?
-
クエリで日付型のIIF関数の使用
-
【Tableau Desktop】文字列から...
-
【Word】 今日の「年」「月」...
-
差し込み印刷で日付の曜日を表...
-
VBAでエクセルシートを更新...
-
日付の大小の表現
-
マクロボタンを押すと、ファイ...
-
差し込み印刷に当日の日付が入...
-
エクセルで最高値、最低値の日...
-
エクセルのチェックボックスを...
-
「時間」、「期日」、「日付」...
-
Excel関数 「日付を入力...
-
「24日の0時」って・・・
-
差込印刷 縦書きで和暦(漢数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差し込み印刷で日付の曜日を表...
-
Wordで、ヘッダーに印刷日付を...
-
日付を差し込み印刷で表示した...
-
日付を昇順で並び替えし、空白...
-
【Tableau Desktop】文字列から...
-
日付型のテキストボックスに数...
-
クエリで日付型のIIF関数の使用
-
重複を除外したカウント方法を...
-
Accessで秒を時間で表示させる...
-
Word2010 フィールド内での和...
-
【Word】 今日の「年」「月」...
-
合計を求めるクエリーについて
-
ファイルメーカーのスクリプト...
-
ウィンドウィズ メモ帳で日付だ...
-
FileMaker Pro 10 で令和を表示
-
accessで残業時間計算
-
Wordの日付変換ってできますか?
-
ファイルメーカーで最終日を求...
-
datetime型でのソート
-
日付がインポートされない
おすすめ情報