• ベストアンサー

エクセルのWEEKDAYを使って土日のセルに色をつける

エクセル初心者です。 WEEKDAY機能を使用して、土曜日セルに青、日曜日セルに赤を塗りたいのですが、ネットで検索した方法でやってみてもうまくいかないのでここで質問させていただきました。 1の行には月(1日~31日分範囲をセルの結合で1つにして月を記入)、2の行には日付のみを1、2、3・・・と入れ、3の行には適応される曜日をそれぞれ手動で入れました。 4~20の行は何も記入していませんが、曜日の色付けに対応させたいです。 例えばA2が1、A3が月で始まったとしたら、F2が6、F3が土となりますよね。 それで私が試したのは、カレンダーの全範囲を選択後、条件付けの数式で「=WEEKDAY($F2,F3)=7」を入力、書式で青を選択しました。 そうすると、変な範囲が青になってしまいます。 正しい方法を教えて下さい。 宜しくお願い致します。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.6

シートの構成を含めてアドバイスですが 1行目を月、2行目に日にち、3行目に曜日でしたら A1セル(結合された1行目?)に 2008/11/1 と入れて 書式、表示形式、ユーザー定義で m"月"と入れると 11月 とでます。 A2セルに =$A$1+COLUMN()-1 と入れて右へコピィすると日にちが入ります。 毎月 1行目に 2008/12/1 と日付だけ入れれば、1月のカレンダーが出来ます。 A3セルには =A2 と入れて、書式、表示形式、ユーザー定義で aaa と入れると 曜日が表示されます。 2~3行目の範囲を選択して、条件付書式で 数式が =Weekday(A2)=1 パターン ピンク でも 追加 数式が =Weekday(A2)=7 パターン ブルー でも入れてOKします。 Weekday関数には日付のシリアル値を入れます。数値をいれてもきちんとした曜日はでません。

mimitomato
質問者

お礼

A1セル、A3セルに関しては教えていただいた方法でうまくいきました。 この方法だと簡単に入れられていいですね。 でもA2セルの=$A$1+COLUMN()-1を入力したら、何故か全部「11月」と表示されてしまいます。なぜでしょうか? 色をつける条件付けも教えていただいた方法でうまくいくました。 これで色がつくのはA2とA3の範囲ですが、A4~A10の何も入っていないセルも同じように色をつけるにはそうしたらよいでしょうか? 範囲を選んでも、適応されるのはA2とA3のみになってしまって・・・ 宜しくお願い致します。

その他の回答 (7)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.8

No6です。 >何故か全部「11月」と表示されてしまいます。なぜでしょうか? セルの書式、表示形式でユーザー定義 d としてください。 mが月 yが年 dが日 ちなみに aaaで曜日がでます。 >何故か全部「11月」と表示されてしまいます。なぜでしょうか? 範囲指定して、 数式が =Weekday(A$2)=1 パターン ピンク でも 追加 数式が =Weekday(A$2)=7 パターン ブルー でも入れてOKします $のマークがみそです。行方向に同じ条件付書式が入ります。

mimitomato
質問者

お礼

教えていただいた通りにやったらできました。 有難うございました!

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

初心者らしく、作り方がまずい。 第1行目はそれでよいでしょう。 2行目は A2にとりあえず2008/11/1と入れて、11/30日まで、右方向に引っ張る(連続データの作成)。これで30日までの日付(日付シリアル値という整数)が入る。日付シリアル値はWEBででも勉強のこと(大切なことです)。 第3行目は、1-30日まには、第2行目の値を複写する。 第3行目を指定して、書式ーセルー表示形式ーユーザー定義ーaaa 見た目が月ー日になる。 ーー A1:AD20を範囲指定(第20行まで色づける場合です) 書式ー条件付き書式ー式が =OR(WEEKDAY(A$2)=1,WEEKDAY(A$2)=7) セルのパターン色を淡い色に設定。 OK これで土日の列に色がつく。 式の意味は、自分の列(Aに$が着いてない意味はこれ)の「どの列でも決まって第2行」を見て(2に$がついている意味はこれ)、WEEKDAYを判断しろ、という意味です。 式の入れ方は、初心者には難しいと思うが、勉強してください。 月により、28-31日が月末になる点の対策は、初心者に課題があれもこれもとなるので、省略。とりあえず、人間が判断して、やってください。徐々に勉強すること。 やり方について、これ以外にも相当数の、バリエーションがある。

mimitomato
質問者

お礼

とてもわかりやすく教えていただいて有難うございました。 仰るように、他の方の回答を見ても色々バリエーションがあるなとおもいましたが、この方法が一番シンプルで初心者向けのように感じました。 $が付いているもの、いないものの意味もよくわかっていなかったので、ここで教えていただけて大変勉強になりました。 徐々に勉強していきます。 有難うございました。

回答No.5

作りたいのはこんな感じの表でしょうか。 http://www11.plala.or.jp/koma_Excel/contents1/mame1001/mame100101.html このサイトではセルの書式設定、条件付書式などの使い方がわかりやすく説明されています。 ご参考にどうぞ。

mimitomato
質問者

お礼

列と行が逆ですが、やりたいことはこれと一緒です。 色々のっていて勉強になりそうなページですね。 じっくり見てみます。 有難うございました。

回答No.4

WEEKDAY関数の使い方を間違えていると思います。 WEEKDAY関数は、日付シリアル値から曜日を示す数字に変換する関数で、1つめの引数に日付シリアル値を、2つめの引数に変換方法(1:日曜~7:土曜/1:月曜~7:日曜/0:月曜~6:日曜)を指定するものです。 ですから、この場合3行目の曜日を自動で設定したい場合などに使います。 例えば、 A3 =CHOOSE(WEEKDAY("2008/"&$A$1&"/"&A$2,2),"月","火","水","木","金","土","日") というようにすれば、曜日が設定できます。 (実際には、DATE関数を使って表示形式をいじった方が楽かと思いますが) で、条件付き書式は簡単に、 =(A$3="土") で青色 =(A$3="日") で赤色 と設定するとできると思います。 仮にWEEKDAY関数を使うとしても、 =(WEEKDAY("2008/"&$A$1&"/"&A$2,2)=6) で青色 =(WEEKDAY("2008/"&$A$1&"/"&A$2,2)=7) で赤色 じゃないでしょうか。

mimitomato
質問者

お礼

>ですから、この場合3行目の曜日を自動で設定したい場合などに使います。 自動で設定したいと思っていたので、教えていただけて良かったです。 同じようにやったらできました。 でもその次の条件付き書式に関してはうまくできませんでした。 土曜日だけでなく、選択した範囲全部が土曜の色になってしまったり・・・ 条件付き書式のやり方を間違えているのかもしれませんね。 そのあとのWEEKDAY関数を使う方法を試したら、自分がやりたい結果になりました! 有難うございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

「3の行」の曜日は単に文字として「土」と入っているのではないですか? でしたら、書式の式は「=F3="土"」とかで良いのでは?

mimitomato
質問者

お礼

仰るとおり、単に文字として「土」と入れていました。 その場合は"土"と直接文字を入力して指定してもいいんですね。 知りませんでした。有難うございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>「=WEEKDAY($F2,F3)=7」 これがおかしいです 条件付き書式は1つのセル範囲に指定するのです F2セルに色をつけたいなら  =WEEKDAY(F2)=7 が条件式になります そのセルをコピーして同様に色づけしたいセルに  「編集」→「形式を選択して貼り付け」→「書式」 で貼り付けてください

mimitomato
質問者

お礼

>条件付き書式は1つのセル範囲に指定するのです 1つのセルだけなんですね。勉強になりました。 ひとつのセルに条件つけをし、それをコピーする手もあるんねすね。 有難うございました。

  • wellow
  • ベストアンサー率46% (892/1932)
回答No.1

挙げられている実例の行、列の関係が良く分りませんが、例えば以下の例で試してみてください。 A列は日付、例えば2008/1/1と入力する。表示形式はユーザー定義でdd、表示は「01」、[02」のように日になる。 B列は曜日、例えばB1は「=IF(A1="","",WEEKDAY(A1))」とする。表示形式はユーザー定義でaaa、表示は「日」、「月」のようになる。 A列とB列を選んで(必要ならばC、D列なども)、条件付書式で 数式1: 「数式が」、「=$B1=7」のときはセルの書式で背景を青、 数式2: 「数式が」、「=$B1=1」のときはセルの書式で背景を赤 とかにしてみてください。

mimitomato
質問者

お礼

有難うございます。 教えていただいた方法で試してみたらできました。 ただ、列と行を逆にした場合(A列、B列とかでなく、1の行に日付、2の行に曜日と、カレンダーが縦方向でなく、横方向に展開していくパターン)で試してみるとうまくいきません。 行と列が入れ替わっただけなのに・・・ 難しいですね。

関連するQ&A

専門家に質問してみよう