エクセルで点検表毎週金曜日を求める祝日の時その前の出勤日
例え2015年10月22日・23日休みの場合23日(金)22(木)答えは21(水曜日)になります
A1"年", D1"月" 別シートに祝日の一覧表あります
第1金曜日の場合=DATE($A$1,$D$1,1*7-WEEKDAY(DATE($A$1,$D$1,3),3))
第2金曜日の場合=DATE($A$1,$D$1,2*7-WEEKDAY(DATE($A$1,$D$1,3),3))
ただこの関数の場合はあくまでも金曜日表す、金曜日が休みであればその前の出勤日を求めたいです。
解る人いれば教えて頂けませんでしょうか?
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
こんにちは!
>別シートに祝日の一覧表あります
というコトですので、↓の画像のようにSheet2に祝日(会社休日)の表を作成しておくとします。
画像ではSheet1のB3セル(セルの表示形式は好みの日付)に
=WORKDAY(DATE($A$1,$D$1,0)-WEEKDAY(DATE($A$1,$D$1,0)-4,3)+7*ROW(A1)+1,-1,Sheet2!$B$2:$C$21)
という数式を入れフィルハンドルで下へコピーしています。
※ WORKDAY関数の「祭日」の欄は直接セルを参照していますが、
「祝日の一覧」の範囲を名前定義しておけば
>Sheet2!$B$2:$C$21
の部分はその名前定義の名前で大丈夫のはずです。
こんな感じではどうでしょうか?m(_ _)m
tom04様
関数ありがとうございます私の問題これで解決しました。
今度毎月自動的に提出出来るようになりました。
私外国出身です、もし失礼な文書がありましたら、ごめんなさい
amassadinho
以上
No.3
- 回答日時:
[No.2]で、説明が漏れていました、
というより素直に誤まります。ごめんなさい:間違えていました。
唐突に「$A$6」の登場で戸惑わせてしまいました。
「$A$6」にはは貴方が示した「第2金曜日」の式をソックリ当て嵌めます。
その結果は、次のように相成ります。ふ~
=IF(DATE($A$1,$D$1,2*7-WEEKDAY(DATE($A$1,$D$1,3),3))-WORKDAY(DATE($A$1,$D$1,2*7-WEEKDAY(DATE($A$1,$D$1,3),3)),-1,Holidays)=1,DATE($A$1,$D$1,2*7-WEEKDAY(DATE($A$1,$D$1,3),3)),WORKDAY(DATE($A$1,$D$1,2*7-WEEKDAY(DATE($A$1,$D$1,3),3)),-1,Holidays))
mike_g様
解答ありがとうございます教えてもらった関数は第2・第3・第4出来ますが
第1なりませんでしたけど、今の関数参考として頂きます、ご丁寧に教えって
くれってありがとうございます、今後とも宜しくお願いします
amassadinho
以上
No.2
- 回答日時:
第2金曜日の場合は=IF($A$6-WORKDAY($A$6,-1,Holidays)=1,$A$6,WORKDAY($A$6,-1,Holidays)) でOKかどうか、試してみてください。
此処で Holidays は休日リストに付けた範囲名です。第1金曜日の場合は保留としておきます。その理由を推理してみてください?(^_^)
No.1
- 回答日時:
実際に関数を組むと面倒なので考え方だけで良いだろうか。
自分なら、前前週土曜日(※)から金曜日までの日にちを配列化して並べ、その日付に対して休日なら0を掛けて、出勤日なら1を掛け、
その配列の中で一番大きい日付を答えとして求める。
0を掛けられた日付は限りなく小さくなるから順列的に大きい値を求めればよいということになる。
難しければ作業用のセルを別のシートに設けて結果だけを表のシートに表示させればよい。
(なんなら作業用のシートは完成したら非表示にしてもよい)
※さすがに14日も連休なんてことなんてないからなあ。
銀鱗様
解答ありがとうございます。
そのやり方では私理解出来ませんでした、ごめんなさい!!
だけどご丁寧に教えてくれってありがとうございます。
amassadinho
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセル折れ線グラフについて...
-
エクセル IF計算式?でしょうか?
-
【マクロ】for nest について ...
-
EXCELで数値が異なった数字を足...
-
Excelについて。Excelに縦1列に...
-
エクセル、LibreOffice Calcプ...
-
エクセルを使用して、円周率を...
-
エクセルの数式バーのフォント...
-
【マクロ】マクロが割当てされ...
-
エクセルでファイルの最終更新...
-
【マクロ】AブックからBブック...
-
index関数の説明をお願いします。
-
Excelで時間の計算の方法 7時45...
-
【Excel】Powerクエリーの取り...
-
エクセルマクロを教えてほしい...
-
エクセルのセルの書式ユーザー...
-
エクセルで曜日を入れたい
-
【マクロ】アクティブセルの、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
-
2列に入っているデータを1列...
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルで 自動的に◯や数字を...
-
数字入力後他の文字等が表示さ...
-
Excel 小さくなったスクロール...
-
F9キーについて。
-
【ExcelVBA】ダブルクォーテー...
-
Excelに詳しい方! B列が「日...
-
セルの数を求めたい
-
Excelを無料で使うには? パソ...
-
IFとIFS関数
-
【Excel】別シートから条件に合...
-
EXCELの散布図で日付が1900年に...
-
ある表にフィルターをかけて出...
-
【ExcelVBA】名前を付けて保存→...
-
Excelセルを跨いで合計を出す方法
-
エクセルのツールバーから数値...
おすすめ情報