アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルどうりですが
EXCELでその月の土・日・祝祭日を引いてくる関数はありませんか
出勤のシフト表を作りたいのですが、
例:A1のセルに1と入力すると、それは来年の一月で
  C1~ に一月の土・日・祝日の日付をいれてくれる
  C2~ に1行目の日付に対する 曜日(土・日・祭)と自動的に入力してくれる
そのような 関数はありますか
教えてください

A 回答 (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   祭 祭 土 日 土 日 祭 土 日 土 日 土

この回答への補足

早速回答ありがとうございます
いくつかわからない点がありました
1.A B C・・・1 2 3・・・AGの列に 天皇誕生日などの休日を入力するSheetは2でしょうか??
2.Sheet1に結果が出ましたが、C1のセルに3から始まってでます 12日がでませんでした
  C2のセルから曜日はきちんとでました
本当にお世話になります よろしくお願いします

補足日時:2008/12/15 16:38
    • good
    • 0
この回答へのお礼

あっ!
申し訳ありません。補足のところで1.はクリアできました。2.は12日 祭もでまいた。が
2.Sheet1に結果が出ましたが、C1のセルに3から始まってでます
のところだけが 課題です
いろいろ申し訳ありません 

お礼日時:2008/12/15 17:37

WEEKDAY関数ですと曜日を数字で表示可能


曜日に換算するにはCHOOSE関数で。
まとめると
A1に日付を入力し
=CHOOSE(WEEKDAY(A1,2),"月","火","水","木","金","土","日")
その日付の曜日表示、これは可能。

>その月の土・日・祝祭日を引いてくる関数はありませんか
たとえば2009年1月の日曜日は4.11.18.25と4日有りますが
1つの引数に複数の結果を出す関数自体ありえません。

また祝祭日は、エクセルの基本関数には祝祭日を表示する関数自体ありません、現在日にち固定のものと第2月曜などの不定のものとあり、毎年変化しますのでそのデータを作成する必要が有ります。

祝祭日データー作成といくつかの関数を組み合わせれば実現可能かと思いますが、質問の表のイメージがつかめません。

こんな感じですか?
画像投稿できるのかな?

この回答への補足

早速回答ありがとうございます
WEEKDAYとCHOOSE関数ですね 
表のイメージは  回答者:mike Gさんが Sheet1の結果を出してくださっているとおりです。わかりにくい質問で申し訳ありません

補足日時:2008/12/15 16:48
    • good
    • 0

参考にしてください


エクセルでカレンダー
http://kokoro.kir.jp/know/calendar1.html

エクセル実用講座 -スケジュール表作成-
http://www.dougamanual.com/blog/43/617/
    • good
    • 0

この手の質問の場合、祝日が厄介です。


曜日はパソコンの日付のシステムありますので利用できますが、祝日については
別途、一覧表を作成する必要があります。ご希望とは違いますが、以下参考にしてみてください。
http://www.h3.dion.ne.jp/~sakatsu/holiday_topic. …
の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関数で出勤日数を出すかしてみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!