• ベストアンサー

Exel初心者なのですがWEEKDAY関数がさっぱりわかりません、カレ

Exel初心者なのですがWEEKDAY関数がさっぱりわかりません、カレンダーを作りたいのですが、違った表示が出てきたり、オートフィルもうまくコピーしないので困っています。簡単な関数カレ

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! カレンダーをお作りだということですが どんなカレンダーをご希望なのか判らないので・・・ 仮に↓の画像の左側のような単純なものであればWEEKDAY関数は必要ありません。 A5セルの表示形式はユーザー定義から d としておきます。 B5セルの表示形式は同様にユーザー定義から aaa として、 A5セルに =IF(COUNTBLANK($A$1:$A$2),"",IF(MONTH(DATE($A$1,$A$2,ROW(A1)))=$A$2,DATE($A$1,$A$2,ROW(A1)),"")) B5セルに =IF(A5="","",A5) という数式を入れ、A5・B5セルを範囲指定し、B5セルのフィルハンドルで下へ31日目までコピーすれば 大の月・小の月にも対応して表示されます。 (曜日によってセルに色を付けたい場合は条件付書式でWEEKDAY関数を使うことがあります) 右側のようなカレンダーであれば数式にもWEEKDAY関数を使います。 余計なお世話かもしれませんが、数式だけ載せておきます。 尚、表示させたいカレンダーの初日だけはどこかのセルに入れておきます。 今回はC1セルに =DATE(A1,A2,1) としています。 そして、D5セルに =IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A1)-1))=$A$2,$C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A1)-1),"") という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 (祝日のデータも表示させる場合は2行使うことが多いのでもう少し複雑になります。) 尚、この場合もセルの表示形式はユーザー定義から d としておきます。 それからWEEKDAY関数の 「種類」の項目に何も入力しない、または「1」とすると「日曜日」から 1・2・・・「土曜日」が「7」 「2」を選択すると、月曜日から1・2・3・・・「日曜日」が「7」 「3」を選択すると「月曜日」が「0」から始まり、日曜日が「6」になります。 このWEEKDAY関数は曜日を数値に置き換えるだけです。 以上、長々と書きましたが 参考になれば幸いです。 的外れならごめんなさいね。m(__)m

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

この質問は内容がはっきりしない。こういう文章で質問しても適切な回答は得られない。 もっとエクセルと離れて、思考と文章作成のことを考えるべきだ。そちらのほうが大切。 カレンダーとエクセル (1)単位 1ヶ月 複数月(例 6ヶ月、1年) (2)形 A。縦2列に日付と対応曜日を入れる  横2行に入れる B。5x7マスに、日曜を最左列に持ってくる形。   その変化形 (3)その他 特に日別に、書き入れ余白を作るとか。 (体裁) (4)背景・上部などに写真・イラストを入れたり。 (5)祝日の扱い 色づけなど (6)月が変わると内容も自動で変わる (7)その他 などがありそうだ。 そんなことを相対化して考えましたか。 ーーー (2)のBあたりだと(やや難しい例になるが) 年・月をどこかもセルに指定(本件ではC2,D2に指定 B4に「日」(曜日)を入れる。H4まで+ハンドルを引っ張る。 日 月 火 水 木 金 土 がはいる。 第5行から1日が入るが、1日は何曜日か 2010・9・1は C2に2010,D2に9と入れて =WEEKDAY(DATE(C2,D2,1))は4. すなわち水曜日である。 ということはB5(左上隅セル)の日付は、4-1日前から始めると良い。 4-1日前は =DATE(C2,D2,1)-WEEKDAY(DATE(C2,D2,1))+1 この式をB5に入れる。 C5には =B5+1を入れてH5まで式を複写。 B6には=B5+7を入れてH6まで式複写。 B6:H6をB9:H10まで式複写。 列幅を十分採ること。 日だけ見せたい場合は書式をユーザー定義でdにする。 ーー あとは8月と9月の日付は余分なので、見えなくする必要がある。出しておいて良いならそのまま。 (1)条件付書式か、 (2)式にIF関数をかぶせて、9月以外のセルは空白にする。 ーーー 前者のやり方だと B5:H10を範囲指定 書式ー条件付き書式ー数式がー式に =MONTH(B5)<>$D$2 書式はフォントを白ーOK あと祝日23日の色を変えたり必要だが、略。質問者には習得内容が多すぎることになる。 上記でも色々判らない点がありそうだが、これ以上省く点は少ないだろう。 それに日付シリアル値という仕組みについてGoogleででも照会して勉強が必要だ。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

一例です。 A1に日付 B1に曜日を返す。 B1=IF(A1="","",CHOOSE(WEEKDAY(A1,1),"日","月","火","水","木","金","土")) A1の日付が8/3の時 WEEKDAY関数は3を返します。 CHOOSE関数を使っているのでB1には3番目の火が返されます。

関連するQ&A