- 締切済み
EXCELの条件書式
管理表を作成しているのですが、行き詰ってしまったのでご教授願います。 A1 B1 C1 D1 納品期日 アラート 納品日 納品受領日 (1)A1(納品期日)の3営業日前なったら、B1セル(アラート)が×になり、 更にセルの色を赤にするように設定。 (2)納品されたらC1(納品日)を○にすると、D1(納品受領日)が×になり、更に赤に設定。 というようなイメージでいるのですが、 IF、DATEIF、WORKDAYを使ってやってみたのですが、 どうしても上手くいかない状態です。 何か良いヒントがありましたら教えてご教授願います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
連投すみません。 2つ目の式と、3つ目の式で 表示するものを間違えてしまいましたので訂正・・・ 誤 =IF(C1=$X$1,$X$1,"") =IF(OR(C1=○,C1=〇),"○","") 訂 =IF(C1=$X$1,"×","") =IF(OR(C1=○,C1=〇),"×","")
B1、D1セルを表示の内容によって色を変える方法は知りませんが・・・ B1セルに×を表示させる方法としては、 =IF(A1="","",IF(A1-TODAY()<=3,"×","")で表示できます。 これを一番下までコピーします。 すると、1列目に日にちを入れた地点で 2列目の式が勝手に起動するという仕組みをとっていますので、 仕事を始めたばかりの初心者が日付を入れても、 きちんと、2列目に3日前になると×が表示されるようになります。 そして、D1の式は まず事前に、どこか適当なセルに○を打って白文字表示します。 白文字表示はしなくていいのですが、 どうしても、その○を表示させたくないという場合は 白文字を使って、周りの色に表示させます。 そして○をどっかのセルに事前に打つ方法の場合ですが、 たとえば、X1セルに○を事前に打っておきます。 そして、3列目に○打つときに、普通に打つ代わりに=X1と打っておきます。 そうすると、同じ○が表示されます。 これには、漢数字の〇と丸印の○とばらばらにならないように X1の○の書式に合わせる意図で使います。 そして、3列目のセルを=X1を使って○を表示させる場合、 =IF(C1=$X$1,$X$1,"") で、誰がやっても異常なく、表の管理ができます。 そしてこの式を下までコピー。 そして、上記の方法を使わない場合は =IF(OR(C1=○,C1=〇),"○","") そしてこの式を下までコピー で、できます。二つ目の方法が一般的なのですが、 1つ目の方法は誰がやっても、ルールに従えば簡単で ミスをしないという、操作性と確実性があります。 この方法は新人さんや、確実な仕事をしたいときに使えば OKです。 別にどちらもめんどくさくないので、 この文章がわかりやすかったら、1番目の方法、 別に一般的でいい、文章がわかりにくかった場合などは 2番目の方法でOKです。 どちらの方法をとってもOKです。
- hallo-2007
- ベストアンサー率41% (888/2115)
>A1(納品期日)の3営業日前なったら、 つまり、納品期日の3営業日前が今日以降の日付だったらということですよね =IF(WORKDAY(A2,-3)<=TODAY(),"×","") B列を選択して、条件付書式 数式が にかえて =$B1="×" 書式で 赤 >C1(納品日)を○にすると、D1(納品受領日)が×になり =IF(C1="○","×","") D列を選択して、条件付書式 数式が にかえて =$D1="×" 書式で 赤
- motosu_mio
- ベストアンサー率12% (1/8)
うーん、そこまで複雑になると、VBAを使ったほうがいいかも。 ただ、セルに関数指定しても可能だと思いますよ。 納品日や納品受領日のセルを日付型にして、TODAY()関数の結果(シリアル値)と差分を求めればいいんじゃないですか? if文で、(TODAY関数の値)-(納品期日の値)<=3 になったら アラートのセルに「×」を設定するということで(1)は解決かと。 (2)は文章が難解ですが、結局はif文の組み合わせでいけるかと思います。