- ベストアンサー
EXCEL 条件付き書式 3つの条件を適用させる
ある施設の入館数のデータ管理をしたいと思います。 表で曜日、入館数を別の列にしてます。 例えば、月曜という表示をA1、月曜日の入館数をA2に。 火曜はB1、火曜日の入館数をB2に入力していきます。 条件付き書式で、 「平日の入館数が500以下だったら赤で入館数の文字を変えて、土日祝日は1000以下だったら赤く変える」 という風に平日と土日祝日では条件を変えたいのですが、月が替わった時にシートを再利用したいのでできればシート作成時にその都度平日の所だけに条件設定して土日にも条件設定してではなく1日から31日まで一列で設定できないのでしょうか? 教えてください。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 1.曜日を文字で入力するのではなく、日付を入力して、セルの書式設定で「ユーザー定義」に「aaaa」と 入力して曜日を表示させます。 例えば、A1に4/1と入力し、書式設定を変更すると「月曜日」となります。 「月曜」と表示したければ、「aaa"曜"」としてください。 次の月も使うことを考えて、B1には=A1+1として、あとはそのセルを右にドラックして式をコピー。 2.A2セル(入館数を入力するセル)には、以下のような条件付き書式を設定します。 条件1:=AND(WEEKDAY(A$1,2)<6,A$2<=500) 条件2:=AND(WEEKDAY(A$1,2)>=6,A$2<=1000) WEEKDAY関数は、該当するシリアル値に対応する曜日を数字で返します。 種類を2にすると、月曜=1~日曜=7の数字が返ります。 平日は6より小さくなるので、AND関数でその条件と500以下、という条件を合わせます。 祝日に関しては、別シートにでも祝日表を作り、MATCH関数での条件を追加してください。 あとは、その条件付き書式を設定したセルを、書式コピーすればOK。 以下のURLが参考になると思います。
その他の回答 (4)
- Nouble
- ベストアンサー率18% (330/1783)
月替わり後も変わらず曜日が会うには 他の方も言われてますが 元を曜日ではなく、日付で管理した方がいいでしょう。 日付を設定したセルに表示設定のユーザー定義でaaaaですね 色変えは条件付き書式ですね、 A2を選び =A2<=1000+IF(WEEKDAY(A1,1)>5,4000,0) =A2<=IF(WEEKDAY(A1,1)>5),5000,1000) =A2<=1000+(WEEKDAY(A1,1)>5)*4000 の何れかの、条件式を入れ 書式を思いのままに設定すればOKですね。 お役に立てていたなわば幸いです。
お礼
できました!ありがとうございました
土日までは関数を使った条件付き書式でできます。 日付がA1セル、入館者数がA2セルだとして、A2セルの条件付き書式を次のようにします。 まず、条件1で「数式が」を選び、隣の数式欄に =AND(WEEKDAY(A1,3)>=5,A2<=500) とします(このWEEKDAY関数の使い方では、月=0、火=1、…、土=5、日=6が値として返されます)。そして「書式」で赤いフォントを設定します。 続いて、条件2で「数式が」を選び、隣の数式欄に、 =A2<=100 とします(もう土日は条件1で処理されているので、月~金の判定は不要)。そして「書式」で赤いフォントを指定します。 上記はセルを相対参照にしていますので、A2のセルの右下の■をマウスの左クリックで掴んでドラッグすれば、条件付書式が参照セルを変えながらコピーされます。 類似の例で申し訳ありませんが、同様のがあったので、とりあえず以下にアップしてみます。 http://www.dotup.org/uploda/www.dotup.org4147751.xls.html 上にある「2012年 03月度」のところが「2012/3/1」と月初めの日にちを入力すると、残りの日付が入ります。 月中の15日で区切る表になっていますが、一応、どの月が何日あるかは、うるう年含めて判定しています。 祝日の方はテーブルでやるしかなさそうですが、すぐにはできませんでした(この際、ひな形作っちゃおうかと思いたちはしましたが……)。どなたか熟練の回答者様がやってくださるだろうと期待しつつ、もし何かありましたら補足欄で仰せつけください。
お礼
できました!ありがとうございました!
- keithin
- ベストアンサー率66% (5278/7941)
幾つか条件があるように見えますが,実際には「(色々あるけど)赤くする」だけなので条件としては1つになります。 まず,そもそもの表の作り方から。 準備: A1セルに年を記入,たとえば2013 B1セルに月を記入,たとえば4 A3セルに =IF(MONTH(DATE($A$1,$B$1,COLUMN(A3)))=$B$1,DATE($A$1,$B$1,COLUMN(A3)),"") と記入,右にコピー セルの書式設定の表示形式のユーザー定義で d を設定 ブックのどこかのセル範囲に祝祭日一覧を年/月/日で列記,名前の定義で「祝日一覧」と名前を定義しておく A4セルに =IF(A3="","",IF(COUNTIF(祝日一覧,A3),"祝",TEXT(A3,"aaa"))) と記入,右にコピー 5行目に数字を記入することにする。 ここからやっと手順: 5行目を「行選択」する(必ず行う) ご利用のエクセルのバージョンも不明のご相談ですが エクセル2007以降を使っているならホームタブの条件付き書式▼から新しいルールを開始,数式を使用して…を選び エクセル2003以前を使っているなら書式メニューの条件付き書式でセルの値が▼を数式がに変更して =(0<A5)*(A5<=IF((A4="土")+(A4="日")+(A4="祝"),1000,500)) と記入,書式ボタンでフォントの色を赤くする。
お礼
できました!ありがとうございました!
- KURUMITO
- ベストアンサー率42% (1835/4283)
年月が変わったら日付や曜日も自動的に月始めから終わりの日までが変わるようにするためには初めに表を作る必要が有ります。 例えばシート1のA1セルに2013/4/1のように入力して、セルの表示形式の「ユーザー定義」で種類の窓にはyyyy"年"m"月" と入力します。これでA1セルには2013年4月のように表示されます。 その月に見合った日付の表示を2行目に行うためにA2セルには次の式を入力して横方向にAE2セルまでドラッグコピーします。 =IF(MONTH(DATE(YEAR($A$1),MONTH($A$1),COLUMN(A1)))<>MONTH($A$1),"",DAY(DATE(YEAR($A$1),MONTH($A$1),COLUMN(A1)))) また曜日を3行目に表示させるためにA3セルには次の式を入力してAE3セルまでドラッグコピーします。 =IF(A$2="","",TEXT(A$2,"aaa")) 以上の表で4行目に入場者数を入力することにしますが土日ばかりではなく祝日も考慮することが必要ですので、ここではシート2のA列のA1セルから下方にその年の祝日を2013/1/1、2013/1/14などと入力しておきます。 その後にA4セルからAE4セルを範囲として選択し、「ホーム」タブの「条件付き書式」から「新しいルール」を選択します。 表示される画面で「数式を使用して…」を選択してから数式の窓には次の式を入力します。 =OR(AND(OR(WEEKDAY(A$2,2)>=6,COUNTIF(Sheet2!$A:$A,A$2)>0),A$4<=1000),AND(A$4<>"",WEEKDAY(A$2,2)<6,COUNTIF(Sheet2!$A:$A,A$2)=0,A$4<=500)) この式は長いので範囲を選択する前に予めどこかの関係のないセルに上記の数式を入力し、それをコピーして数式の窓に貼り付けるのがよいでしょう。 同じ画面の「書式」をクリックして「フォント」のタブで文字の色を赤く設定すればよいでしょう。
お礼
できました!ありがとうございました!
お礼
できました!ありがとうございました!