- 締切済み
祝日の色つけ方法
B3に年、B4に月、B5~B35に日、C5~C35に 曜日が入力されているExcelのカレンダーがあります。 別シート「祝日」に2016年の祝日カレンダーがあります。 条件付き書式でCOUNTIF関数を使って、 下記のサイトの通りに祝日に色をつけようとしているのですが、 上手くいきません。 どういった数式を入れればよろしいでしょうか。 教えていただけると幸いです。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
もうわかりましたか。 私が念のため、やってみたら >B3に年、B4に月、B5~B35に日、C5~C35に なら、まずどこかの列のセルに日付を作ってまづ勉強すること。 =DATE(A1、B1,C1)のような式で日付シリアル値を作る。 A1,B1,C1は数字であり、常識的な年、月、日の数であること。 B3、B4にしか年、月データがないなら、いつも固定で参照するために =DATE($B$3、$B$4,C3)のような指定になる。 こういう構成はエクセルでは今後倣わない方がよい。 ーー まず前記のこと(B3、B4にしか年、月データがないなら)を離れて簡単に下記の例(データを仮に作って)をやってみることを勧める。 ここでは曜日は関係しないテストです。 (1)条件つき書式を使う。ホームー条件付き書式・/でおこなう。 (2)Sheet1のA列に日付データがあり、祝日のセルには色を付ける。 (3)Sheet2のA列のセルに祝日の日付がある (2)(3)は仮定。 ーー チェックポイント Sheet1のA列、Sheet2のA列は日付シリアル値のデータ(日付値)が入っていること。日付シリアル値がわからなければWEB照会して勉強のこと。 Sheet1のA列、Sheet2のA列は文字列になっていないこと。 ーーー Sheet1で対象セル範囲(下記ではA2:A100)を指定しておいて、「新しいルール」で =COUNTIF(Sheet2!$A$1:$A$100,A2)>=1 書式は任意で。$A$100の部分は質問者の場合に合わせて伸縮すること。 ・Sheet2の参照テーブルのセル範を示すのに、Sheet2!・・と!を付けること。エクセル関数の場合と同じ。 ・番地に$を付けること ・考えているセル(上の例ではA2に当たる)には$を付けないこと セルの式の複写的に、セルによって変化してもらわないといけないから。 などが注意点。 Sheet2の祝日データの年はうっかり、そのまま昨年の年になっていないか。 以上を参考にうまく行ったら質問の日付を作るれい二進むこと。
- bunjii
- ベストアンサー率43% (3589/8249)
- msMike
- ベストアンサー率20% (368/1813)
[No.5]の誤謬訂正、 目の良い人は、添付図のセル C3 に「念」の字が見えるでせうが、其れは「年」の間違ひです。(*^_^*)
- msMike
- ベストアンサー率20% (368/1813)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>別シート「祝日」に2016年の祝日カレンダーがあります。 という説明だけでは祝日カレンダーが、別シート「祝日」のどのセル範囲に存在しているのか判りません。 ですから取り敢えず仮の話として、祝日カレンダーが「祝日」シートのA列上に存在している場合に関して回答致しますので、もし、質問者様が作成しておられるExcelbookにおいて、祝日カレンダーが存在しているセル範囲が異なっている場合には、適時修正して下さい。 それで >B3に年、B4に月、B5~B35に日 という条件で、日付けをDATE関数を使って求めた場合、例えばB3に「2016」、B4に「5」、B5に誤って「-1」などの様な日付として成立しない値が入力されていた場合、DATE関数は「2016/4/29」の日付を返してしまいますし、B3に「2016」、B4に「1」、B5~B35に空欄のセルがあった場合には、「2015/12/31」の日付を返してしまいますので、その様な事を避けるためには条件付き書式の数式として設定するCOUNTIF関数を次の様なものとして下さい。 =COUNTIF(祝日!$A:$A,($B$3&"年"&$B$4&"月"&$B5&"日")+0) 或いは =COUNTIF(祝日!$A:$A,($B$3&"/"&$B$4&"/"&$B5)+0) ※末尾の +0 は「日付に変換可能な文字列」をシリアル値に変換するために必要です。
- bunjii
- ベストアンサー率43% (3589/8249)
>条件付き書式でCOUNTIF関数を使って、 >下記のサイトの通りに祝日に色をつけようとしているのですが、 祝日のみについてはCOUNTIF関数を使って条件付き書式で塗りつぶしできます。 下記サイトのリンクが見当たりません。 別シートの名前が祝日とし、D4:D20に祝日の日付が入力されているものとすれば次の数式をセルの塗りつぶしの条件とすれば良いでしょう。 =COUNTIF(祝日!$D$4:$D$20,DATE($B$3,$B$4,B5))
- msMike
- ベストアンサー率20% (368/1813)
》 COUNTIF関数を使って、…、 上手くいきません。 どういう風に COUNTIF関数を使ったのか示してみてください。
- msMike
- ベストアンサー率20% (368/1813)
下記のサイト?
補足
すみません。URLを記載していませんでした。 << http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-syo_doniti.html >> こちらになります。 また、少し情報を補足します。 B5~B35セルは =DATE(B3,B4,1)で求められた日付で、 ※2日以降は=B5+1の形でプラス1しています。 表示形式は「日付」です。 C5~C35セルは =TEXT(B5,"ddd")で求められた曜日で、 表示形式は「標準」です。 別シート「祝日」があります。 A1~A17は祝日の日付で、 表示形式は「日付」です。 名前の定義で「祝日」を設定しています。 条件付き書式の数式としては、 「=COUNTIF(祝日,B5)=1」を設定しました。