- ベストアンサー
EXCELでその月の土・日・祝祭日を引いてくる関数
タイトルどうりですが EXCELでその月の土・日・祝祭日を引いてくる関数はありませんか 出勤のシフト表を作りたいのですが、 例:A1のセルに1と入力すると、それは来年の一月で C1~ に一月の土・日・祝日の日付をいれてくれる C2~ に1行目の日付に対する 曜日(土・日・祭)と自動的に入力してくれる そのような 関数はありますか 教えてください
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Sheet1 A B C D E F G H I J K L M N 1 1 2 2009 A B C … AD AE AF AG AH AI 1 1 2 3 … 30 31 2008/12/23 火 天皇誕生日 2 1 2 3 … 31 2008/12/31 水 年末休暇 3 2009/01/01 木 元日 4 2009/01/02 金 年始休暇 … …………… … …………… 18 2009/11/23 月 勤労感謝の日 19 2009/12/23 水 天皇誕生日 20 2009/12/31 木 年末休暇 21 2010/01/01 金 元日 22 2010/01/11 月 成人の日 23 2010/02/11 木 建国記念の日 24 2010/03/22 月 春分の日(3/21)の振替 Sheet2 において、 1.範囲 A1:A2 を“ユーザー定義”で d に書式設定 2.次の各セルにそれぞれ該当式入力して、此れを右方にズズーッと (AE列まで)ドラッグ&ペースト A1: =IF(MONTH(DATE(Sheet1!$A2,Sheet1!$A1,COLUMN()))=Sheet1!$A1,DATE(Sheet1!$A2,Sheet1!$A1,COLUMN()),"") A2: =IF(A1="","",IF(OR(COUNTIF(holidays,A1)=1,MOD(A1,7)<2),A1,"")) ただし、holidays は範囲 AG1:AG24 に付けた名前(範囲名) Sheet1 に戻って、 3.セル C1 を“ユーザー定義”で d に書式設定 4.次の各セルにそれぞれ該当式入力して、此れを右方にズズーッと (N列まで)ドラッグ&ペースト C1: =IF(ISERROR(SMALL(Sheet2!$A2:$AE2,COLUMN(A1))),"",SMALL(Sheet2!$A2:$AE2,COLUMN(A1))) C2: =IF(C1="","",IF(MOD(C1,7)<2,TEXT(C1,"aaa"),"祭")) 結果を下に示しておきます。 Sheet1 A B C D E F G H I J K L M N 1 1 1 2 3 4 10 11 12 17 18 24 25 31 2 2009 祭 祭 土 日 土 日 祭 土 日 土 日 土
その他の回答 (3)
- web2525
- ベストアンサー率42% (1219/2850)
WEEKDAY関数ですと曜日を数字で表示可能 曜日に換算するにはCHOOSE関数で。 まとめると A1に日付を入力し =CHOOSE(WEEKDAY(A1,2),"月","火","水","木","金","土","日") その日付の曜日表示、これは可能。 >その月の土・日・祝祭日を引いてくる関数はありませんか たとえば2009年1月の日曜日は4.11.18.25と4日有りますが 1つの引数に複数の結果を出す関数自体ありえません。 また祝祭日は、エクセルの基本関数には祝祭日を表示する関数自体ありません、現在日にち固定のものと第2月曜などの不定のものとあり、毎年変化しますのでそのデータを作成する必要が有ります。 祝祭日データー作成といくつかの関数を組み合わせれば実現可能かと思いますが、質問の表のイメージがつかめません。 こんな感じですか? 画像投稿できるのかな?
補足
早速回答ありがとうございます WEEKDAYとCHOOSE関数ですね 表のイメージは 回答者:mike Gさんが Sheet1の結果を出してくださっているとおりです。わかりにくい質問で申し訳ありません
- gyouda1114
- ベストアンサー率37% (499/1320)
参考にしてください エクセルでカレンダー http://kokoro.kir.jp/know/calendar1.html エクセル実用講座 -スケジュール表作成- http://www.dougamanual.com/blog/43/617/
- hallo-2007
- ベストアンサー率41% (888/2115)
この手の質問の場合、祝日が厄介です。 曜日はパソコンの日付のシステムありますので利用できますが、祝日については 別途、一覧表を作成する必要があります。ご希望とは違いますが、以下参考にしてみてください。 http://www.h3.dion.ne.jp/~sakatsu/holiday_topic.htm のHPで年を入れて祝日の一覧表を作成します。作成された一覧表を Sheet1にコピィ、貼り付けします。 Sheet2のA1に2009/1/1 と入れます。 A2セルに =IF(MONTH(A$1+ROW(A1))=MONTH($A$1),A$1+ROW(A1),"") と入れて下へコピィすると 一ヶ月のカレンダーが出来ます。 B1セルに =IF(A1="","",IF(WEEKDAY(A1,2)<6,"",A1)) 下へコピィで 書式はユーザー定義で aaaa とでもすると土日が表示されます。 C1セルに =IF(COUNTIF(Sheet1!A:A,Sheet2!A1),VLOOKUP(A1,Sheet1!A:C,3,FALSE),"") 下へコピィで祝日が表示されます。 A1セルの日付を変えるだけでそのつきのカレンダーになります。 後は、土日と祝日が重なった場合をどうするかご自身で決めてCOUNT関数などで祝日出すか、COUNTBLANK関数で出勤日数を出すかしてみてください。
お礼
あっ! 申し訳ありません。補足のところで1.はクリアできました。2.は12日 祭もでまいた。が 2.Sheet1に結果が出ましたが、C1のセルに3から始まってでます のところだけが 課題です いろいろ申し訳ありません
補足
早速回答ありがとうございます いくつかわからない点がありました 1.A B C・・・1 2 3・・・AGの列に 天皇誕生日などの休日を入力するSheetは2でしょうか?? 2.Sheet1に結果が出ましたが、C1のセルに3から始まってでます 12日がでませんでした C2のセルから曜日はきちんとでました 本当にお世話になります よろしくお願いします