• ベストアンサー

ExcelのDate関数で=DATE(2008,2,30)と打つと2008/3/1になってしまう

今エクセルで勤務表を作成しています。日付の欄は31日分あり、 年と月を変更することで、項目欄に日付が入力されます。 たとえば31日ある月は31項目埋められ、30日ある月は30日まで項目が埋まり、後の1つは空白となります。 土日はグレーに塗りつぶすようになっていて、条件付書式で =TEXT(DATE(年,月,30),"aaa")="土"の時は塗りつぶすというような処理をしています。 ここで2月について問題が発生していて、2月は29日しかないので30、31の項目は空白なのですが、条件付書式が 有効になってしまい(DATE(2008,2,30)は2008/3/1になる)、 空白なのに欄に色だけが塗りつぶされてしまっています。 何かいい解決策はないでしょうか。 何かアイデアがある方がいらっしゃいましたらぜひご教授いただきたく、よろしくお願いいたします。

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

  • ベストアンサー
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.9

私のブリーフケースのスケジュールファイル参考にどうぞ http://briefcase.yahoo.co.jp/bc/gyouda1114/lst?&.dir=/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8&.src=bc&.view=l

lickdog99
質問者

お礼

わざわざファイルまで送っていただきありがとうございます。 早速参考にしてみます。 ありがとうございました。

その他の回答 (9)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.10

#6です =TEXT(A2,"aaa")が本当に成立しているのならば =TEXT(A2,"aaa")="土"で良いはずです 元々質問の仕方がおかしいのです 最初から、#3さんの回答のお礼に加え 式を設定しているセルはどこか 1~28日までのセルの式 どのセルに条件付書式を設定するのか この辺をちゃんと踏まえて質問していないので 的を得た回答が得られないのです ここから本題です 今までの他の方とのやり取りから、想像すると 1~28日までは、値が"2008/2/1"で表示形式が日のみ 29~31日までは、値が計算式により、数値で"29,30,31"の様ですね #3さんへの回答のお礼と上の条件を踏まえて 1~28日までの条件式は =OR(TEXT(A2,"aaa")="土",TEXT(A2,"aaa")="日") 29~31日までの条件式は =OR(TEXT(DATE($Q$3,$X$3,$A30),"aaa")="土",TEXT(DATE($Q$3,$X$3,$A30),"aaa")="日") これで間違いないのでは

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.8

ANo.7です 土日別色で塗りつぶすのではなく  土日をグレーに塗りつぶすのでしたね No.7を次のように修正してください 条件1は同じ 条件2を 「数式が =OR(WEEKDAY($A3)=1,WEEKDAY($A3)=7)」   書式 パターンをグレーとする   土曜又は日曜をグレーで塗つぶす 条件3はいりません

lickdog99
質問者

お礼

度々回答していただき本当にありがとうございます。 僕もgyouda1114さんの方法でいけると思い、試してみましたが駄目でした。 結果としては、29日以降がすべて空白(白で塗りつぶされる)になってしまいます。。。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.7

こんな方法どうですか A1=2008 B1=2 A3=DATE($A$1,$B$1,1) (2月1日) A4=$A3+1   (2月2日) この式をA33までオートフィル A31=$A30+1  (2月29日) A32==$A31+1 (3月1日) A33=$A32+1  (3月2日) 条件付き書式 A3~A33に設定 条件1「数式が =MONTH($A3)>MONTH($A$3)」 書式 フォントの色を白  A3セルの月(2月)が「絶対参照A3セル」の月(2月)より大きいとき 条件2「 数式が =WEEKDAY($A3)=1 」  書式 パターンをベイジュ  A3セルの曜日が日曜日のときベイジュで塗りつぶし 条件3「 数式が =WEEKDAY($A3)=7 」 書式 パターンを薄い水色  A3セルの曜日が土曜日のとき薄い水色で塗りつぶし

参考URL:
http://www11.plala.or.jp/koma_Excel/contents1/mame1009/mame100901.html
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.6

ここまで出来たのですから、もう、ひとひねりしましょう 年=A1、月=B1、日=A2~A32とします 条件付書式の式を、次のように変更してください =TEXT(DATE($A$1,$B$1,$A2),"aaa")="土"  ← 1日の式です =TEXT(DATE($A$1,$B$1,$A3),"aaa")="土"  ← 2日の式です         .                .         .                .         .                . =TEXT(DATE($A$1,$B$1,$A31),"aaa")="土"  ← 30日の式です =TEXT(DATE($A$1,$B$1,$A32),"aaa")="土"  ← 31日の式です アドバイスです 条件付書式に設定する式は、成立するか、しないか、しか見ていないので 今回、30日、31日ですが セルが空白なので一見エラーがでそうですが 式が成立しなかっただけで、エラーにはなりません 外してたら、ごめんなさい

lickdog99
質問者

お礼

回答していただき、ありがとうございます。 試してみたのですが、色づけはされませんでした。。。 ちなみにB列には日付が=TEXT(A2,"aaa")の形で入っています。

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

2月(2008年の場合)の30、31日の行は、空白にする式を入れるものです。 A2に=IF(DATE(2008,2,ROW()-1)>EOMONTH("2008/2/1",0),"",DATE(2008,2,ROW()-1)) と入れて下方向に式を複写すると A31.A32は空白になります。 ーー 当然 条件付書式で、A2:A32を範囲指定して 数式が=WEEKDAY(A2)=7 として3/1に当たる第31行は土曜として色が付きません。

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

>2月は29日しかないので30、31の項目は空白なのですが ここまでは数式が出来ていて空白になっているのですよね。 条件付書式の 数式を =TEXT(DATE(年,月,30),"aaa")="土"ではなくて たとえば A列に一月分の日付がある場合 このセルの結果を利用して、 =AND($A1<>"",WEEKDAY($A1)=7) にしてしまっては如何でしょうか。

lickdog99
質問者

お礼

返信が遅れてしまって申し訳ありませんでした。 また、回答ありがとうございました。 hallo-2007さんのやり方で土曜日はうまくいきましたが日曜日がうまくいきせん。 WEEKDAY($A1)=7なら日曜日はWEEKDAY($A1)=1でいいですよね。。。 なぜうまくいかないのでしょう。。。

lickdog99
質問者

補足

返信が遅れてしまって申し訳ありません。 あれから用事が入ってしまって。。。 もう少し検討してみます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

単純ですが曜日のセル表示を作成して =IF((MONTH(DATE(年,月,日))=月,TEXT(DATE(年,月,日),"aaa"),"") のようにすればいいのでは? 条件付書式は 「数式が」「曜日のセル="土"」で塗り潰し これなら29,30,31日がない月に対応できます。

lickdog99
質問者

お礼

返信が遅れてしまって申し訳ありません。 今、曜日のセルは日付の隣に=TEXT(A2,"aaa")という形で表示しています。 そして、条件付書式は数式が曜日のセル="土"で塗りつぶしていますが、うまくいっていません。 ちなみに29,30,31日の日付のセルは =IF(DAY(DATE($Q$3,$X$3,29))=29,"29","") =IF(DAY(DATE($Q$3,$X$3,30))=30,"30","") =IF(DAY(DATE($Q$3,$X$3,29))=31,"31","") 曜日のセルは =IF(DAY(DATE($Q$3,$X$3,29))=29,TEXT(DATE($Q$3,$X$3,29),"aaa"),"") =IF(DAY(DATE($Q$3,$X$3,30))=30,TEXT(DATE($Q$3,$X$3,29),"aaa"),"") =IF(DAY(DATE($Q$3,$X$3,31))=31,TEXT(DATE($Q$3,$X$3,29),"aaa"),"") ※Q3は年のセル、X3は月のセルです。 となっています。 条件付書式では、=TEXT(DATE($Q$3,$X$3,29),"aaa")="土"のような形にしています。

lickdog99
質問者

補足

返信が遅れてしまって申し訳ありません。 あれから用事が入ってしまって。。。 もう少し検討してみます。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

例えばで言えば・・・ 日付の方を工夫すると、言う方向で・・・ =Date(2008,2,1) を最初のセル、セル書式を「d」日付のみ表示 隣?(下か、右のセル)に =IF([隣?]="","",IF(MONTH([隣?])=MONTH([隣?]+1),[隣?]+1,"")) を設定、セル書式を「d」日付のみ表示 で、31個のセルを設定 で、条件付書式の > =TEXT(DATE(年,月,30),"aaa")="土" を =Text([日付の入ったセル],"aaa")="土" として、相対アドレスを設定しコピーすれば、終了 と、言う話が出来上がりますが・・・

lickdog99
質問者

補足

返信が遅れてしまって申し訳ありません。 あれから用事が入ってしまって。。。 もう少し検討してみます。

回答No.1

=TEXT(DATE(年,月,30),"aaa")="土" を=TEXT(DATE(年,月+1,1)-1,"aaa")="土"に変えてみてもだめですか。 翌月1日の1日前です

lickdog99
質問者

お礼

早速のご回答ありがとうございます。 2月分についてはうまくいったのですが、 3月分の表示が、土日が塗りつぶされなくなりました。。。 ちなみに翌月の2日前は =TEXT(DATE(年,月+1,1)-2,"aaa")="土"と2減らせばよいのですか? これもなぜかうまくいけません。。。

関連するQ&A

  • エクセルの関数について

    エクセルで月間予定表を作っています。(縦に1日から末日までを表示) 年と月を入力すると、日付、曜日が自動的に表示されるようにしたいと思い、日付のところは、1日に、DATE関数を使用し、2日は、1日のセル+1とし、3日以降は、2日の書式をコピーしています。 そうすると2004年2月の場合、29日までなので、30,31日のところが、それぞれ1,2と表示されてしまいます。 1,2と表示される時には、セルを空白にしたいのですが、どんな関数を使ったらいいでしょうか? うまく説明できなくて申し訳ありませんが、どうぞよろしくお願い致します。

  • DATE関数で曜日に色をつける

    DATE関数で 月日と【】して曜日を表示していますが 土日に色をつけたいのですがうまくいきません。 条件付き書式を使うのでしょうが、 ビスタに変えてから使い方がよく分かりません。 よろしくお願いいたします。 A1に年の 2009、B1に 月の11、を入力して A3から 日付けの 1~31を入力、 B3に =date(A1,B1)"aaa" と入力しています。 B4以下に =B3+1 と入力しています。B列に表れる 曜日の土日に色をつけたいのです。

  • エクセルで土・日のセルに幅広く色をつけたい

    エクセルで予定表を作成しています。A列に日付・BからH列まで項目を設けています。(A列は、33行目まで日付が入力されています) A列に条件付書式で、条件付書式の設定で条件(1)数式が=WEEKDAY(A33)=1  パターン  色  ブルー  フォント  赤 A列に条件付書式で、条件付書式の設定で条件(2)数式が=WEEKDAY(A33)=7  パターン  色  グリーン フォント  赤 の設定を行いました。 A列の 土・日のフォントが赤に、セルの色がブルー・グリーンになるのですがBからH列はセルに色がつきません。 A33:H33  までの設定にするとセルの色がグレーになります。 AからHまでセルに同じ色を表示する設定はあるのでしょうか。

  • エクセルの条件付書式について質問です。

    図のような毎月手書き入力するシートが多数あります。 A1のセルにその月の1日の日付を入力してB3に=A1、C3にB3+1・・・ で条件付書式aaaで曜日表示するところまではできました。 さて、初心者の私は毎月土日をせっせと塗りつぶしていましたが・・・ 条件付書式で3の行(列?)に土、日が表示されたらその列(行?)は灰色に塗りつぶす ことができるのではないか?と気づきました。 ところがC3に「土」と表示されたことに対してC4を塗りつぶすなど私には想像もつきません。 C4の条件付書式は「数式がIF(C3="土""日",・・・・・・)」みたいな感じですか? また全部のセルにいっぺんにその書式を設定することはできますか? ちなみにバージョンは2003です。

  • EXCELの条件付書式に関する質問です。

    年間のカレンダーを作っています。A1には年(2014)を記入し、A2に月(1)と書きました。次に、A3から下向きに1~31まで日にちを入れました。B列には曜日を入れているのですが、その際、例えばB3なら=DATE(A1,A2,A3)として、曜日を自動的に入れる数式を入れました。 ここで質問です。曜日が表示されているのですが、その表示されている「土、日」に色を付けたいと考えています。ところが、条件付書式の設定方法がわかりません。 単に「土」「日」と書いてあるセルなら、色は付けられるのですが、数式による結果が「土」「日」であるため、できずに頓挫しています。表示が「土」や「日」である日に色を付ける条件付書式設定はどうすればいいのでしょうか。それともできないのでしょうか。 長々と分かりにくい説明をしてしまい、申し訳ございません。どなたかお教えいただければと思います。よろしくお願いします。

  • エクセル 書式設定?教えて!

    土日曜・祝日の欄に色塗りをしようと思います。 (1)日付のセルは、(例B2):「2009/2/1」、(B3):「=B2+1」としました。うまくいきました。セル書式ユーザー設定「d」 (2)曜日のセルは、(C2):「=B2」、(C3):「=B3」とし、曜日はうまくいきました。 土日曜・祝日の欄に色塗りをしようと、条件付書式でセルの値が土に等しい場合は、赤と色設定をしました。 追加条件として、それぞれ日・休も設定しました(条件3まで)。 しかし色塗りは出来ませんでした。セル書式ユーザー設定「aaa」です。 どうしたらよいのか、お教え下さい。よろしくお願い致します。  

  • 曜日に色づけ

    エクセル2000です。A列に日付を入れて 条件付書式で土、日に色づけするのは分かるのですが 1行に横に日付を入れて土、日に色付けするには どうしたらよいですか。

  • EXCELで教えてください。

    勤務表のようなものを作ってるのですが、日付の下に曜日を 表示しています。土・日の場合は休みというしるしで その列(土・日の列)に色を塗りたいです。 あと、可能であればマクロなどを使って、日曜日は毎週、 土曜日は第2・4土曜にだけ色をつけるというのは可能でしょうか? 条件付書式でチャレンジしましたが、該当の列全部に色をつけるというのが 難しくてできませんでした。教えてください!

  • Excel の『条件付き書式』について

    いつもお世話になっております。 Excelで以下のような表を作成しています。 『条件付書式』について教えてください。  列A  列B  列C   日付  曜日  空白セル 列Aに日付を入力して、その日が土日であったらセルに網掛けをするように設定しています。 列Bは、列Aに日付を入力すると自動で曜日を表示するようにし また、土日であったら自然に網掛けになるようにしました。 (列A・列Bをドラッグして『条件付書式』で設定)  『条件付書式』は…     条件1=WEEKDAY(A○,2)=7     条件1=WEEKDAY(A○,2)=6 …で設定。 列Cも同様にしたいのですが、どうもうまくいきません。 列A・列B・列Cとドラッグさせて『条件付書式』にしたのですが 土日でなくても網掛けになってしまいます。 列Cも土日であれば網掛けにする方法があれば アドバイスいただけますでしょうか。 (自動では無理なようでしたら地道に網掛けしていくとします。) よろしくお願い致します。

  • Excel 条件付書式で、セルに色を付けたいのですが

    エクセルで、チェック表を作成しました。 1行目には日付を2行目には曜日が入るようになっています。 A列には、各チェック項目が入ります。 この様な表を作成し、1ヶ月単位でチェックを行います。 作成した表を、1ヶ月ごとに曜日と日付を更新する必要があります。 土日のみ自動的にセルに色がつくようにしたいのですが、上手くいきません。 現在、条件付書式にて、曜日の欄には色がつきます。 また、他のセルは、「次の場合に等しくない」で曜日の欄が土日の場合に、色がつくようにはなりました。 しかし、日付の欄や、セルに予め文字が入っている場合、この条件付書式が上手く機能しません。 何か良い手はありますか?(文字を消すと上手く機能します)

専門家に質問してみよう