[[20100624120148]] 『当月・次月の締め切りに色付け』(yuuma) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『当月・次月の締め切りに色付け』(yuuma)

 ※表
      A       B       C       D       E
 1 平成22年6月
 2         書類締め切り    商談日    次回確認日   
 3  a様     22年6月12日   22年7月3日  22年12月3日
 4  b様     22年7月25日   22年8月12日  23年8月10日
 5  c様     22年7月8日   22年7月30日  23年2月2日

 上記のような表がある場合に”B・C・D”の日付に色【当月:赤、次月:緑】をつけたいのですが‥‥
 ”A1”の日付に対応させることは可能でしょうか?
 ご教授お願い致します。

 WindowsXP,Excel2007 使用


MONTH関数を使って、条件付き書式

(うっかりさん)


(うっかりさん)レスありがとうございます。
 ご指導頂いたように、ルールに[=MONTH(A1)]と入力すると、全体セルが赤文字になってしまいます。(翌月も翌年までも色が変わってしまいます)
 対応策はありますでしょうか?

 (yuuma)

 年数は除外した場合ですが、、、
 
1.範囲を選択(B3〜D5)
2.書式 → 条件付書式
3.「数式が」「=MONTH($A$1)=MONTH(B3)」パターンで「赤」を選択
4.【追加】を押し
  「数式が」「=MONTH($A$1)+1=MONTH(B3)」パターンで「緑」を選択
 
 以上でどうでしょう?
 ※A1 の入力は、シリアル値で入力してあるものとしています。
 (キリキ)(〃⌒o⌒)b

 キリキさん、小生も下記のように条件付き書式でMONTH関数利用を考えてみました。
 =MONTH(B3)=MONTH($A$1) パターンで「赤」を選択
 =(MONTH(B3)-MONTH($A$1))=1 パターンで「緑」を選択

 しかし、いざ回答をアップしようとしたところ、問題に気づいて困っていました。
 年数(年度)の関係です。A1セルと比較対象セルのデータが同じ年数(年度)内ならよいのですが、
 年数(年度)が違う場合、たとえばA1セルデータが翌年数(翌年度)になった場合です。
 この場合で、月数だけが同じでも赤、月数が1大きいときは緑となってしまうのです。
 条件付き書式の条件指定式内で「もし」や「かつ」や「または」条件を付加することはできないのでしょうか。

 年数(年度)への対応について、ご示唆いただければ、勉強になります。
 (あらくま)
    *A6セルとしていましたので。A1セルと訂正しました。 2010.06.26. 06:08


 YEAR関数で年数を調べ「&」で結合させて比較してみるのはいかがでしょう?
 
 (キリキ)(〃⌒o⌒)b


 > =MONTH($A$1)+1=MONTH(B3)
 > =(MONTH(B3)-MONTH($A$1))=1

 A1が12月の場合もうまくいったのでしょうか?

 当月:=TEXT($A$1,"yyyymm")=TEXT(B3,"yyyymm")

 2007であれば、EDATE関数が使えると思いますので
 次月:=TEXT(EDATE($A$1,1),"yyyymm")=TEXT(B3,"yyyymm")
 
 (R)


 >A1が12月の場合もうまくいったのでしょうか?
 確かに。。。
 
 また失敗だ・・・
 yuumaさん、申し訳ないmm
 (キリキ)(〃⌒o⌒)b


 A1:書式 「ggge"年"m"月"」
 表の日付は 「平成」を省略しているので 書式「yy"年"m"月"d"日"」2022年の日付となっています。
 当月  数式「=AND(B3>=DATE(YEAR($A$1)+12,MONTH($A$1),1),B3<=DATE(YEAR($A$1)+12,MONTH($A$1)+1,0))」
 次月  数式「=AND(B3>=DATE(YEAR($A$1)+12,MONTH($A$1)+1,1),B3<=DATE(YEAR($A$1)+12,MONTH($A$1)+2,0))」
   (NB)

 Rさん、ご指摘のとおりです。A1が12月のときMONTH関数による月数比較では比較対象セルが1月で
 あっても差が1とはならずダメですね。
 TEXT関数を利用した表示形式変換によって年数(年度)の情報を併せて比較するなんて、よい勉強
 になりました。また、2007ということで、EDATE関数との組み合わせで処理すること、これも勉強
 になりました。

 質問者の意図と外れますが、2003の場合、EDATE関数は分析ツールアドインを組み込めば利用できると聞いたような???

  覚えたTEXT関数を利用しつつ、EDATE関数を利用しないで
   =TEXT(DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)),"yyyymm")=TEXT(B3,"yyyymm")
                                                            でも実現可能では???
 (あらくま)


 >> あらくまさん

 > 2003の場合、EDATE関数は分析ツールアドインを組み込めば利用できると聞いたような???

 2003の条件付き書式で EDATE関数を使おうとすると
「条件付き書式で、他のワークシートまたはブックへの参照は使用しません」と、意味不明なことを言われます。
 名前の定義を使えばできると思いますが。

 > =TEXT(DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)),"yyyymm")=TEXT(B3,"yyyymm")
 > でも実現可能では???

 A1が1月31日だとすると、その数式では次々月の「3月」になりませんか?
 A1のようなところに月末の日付を入力することなんかないとは思いますが
 可能性がないわけではありませんし、もしかすると TODAY関数が入っているのかもしれません。
 DAY(A1)を 1 にして、強制的に「1日」の日付にしておいた方が無難ですね。
 
 (R)


 Rさん、ご教示ありがとうございます。
 エクセルって、難しいですね。仕様上のことなのでしょうけれども。。。
 >2003の条件付き書式で EDATE関数を使おうとすると
 >「条件付き書式で、他のワークシートまたはブックへの参照は使用しません」と、意味不明なことを
 >言われます。
 >名前の定義を使えばできると思いますが。
 試してみます。
 >A1が1月31日だとすると、その数式では次々月の「3月」になりませんか?
 >A1のようなところに月末の日付を入力することなんかないとは思いますが
 >可能性がないわけではありませんし、もしかすると TODAY関数が入っているのかもしれません。
 >DAY(A1)を 1 にして、強制的に「1日」の日付にしておいた方が無難ですね。
 ご指摘のとおりです。
 =TEXT(DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)),"yyyymm")=TEXT(B3,"yyyymm")
                                 -------
 =TEXT(DATE(YEAR(A1),MONTH(A1)+1,  1    ),"yyyymm")=TEXT(B3,"yyyymm")
 ということですね。
 脇道にそれた感じの小生に対してまで、コメントをいただきありがとうございました。
 (あらくま)


皆さまありがとうございます。
 知恵を貸して頂き助かります。
 A1を【年と月】に分けた方が条件を作りやすいのでしょうか?
 また、B〜Dのセルも【年・月・日】に分けた方が作りやすいのでしょうか?
 もし、セルを分割した方法で解決できるのであれば教えてください。

 追伸と質問
 A1の日付とB〜Dのセルの数は随時変更します。
 その数値が条件付けの数式に入っていると書き換えた際に条件から外れてしまいませんか?
 例)【=MONTH($A$1)=MONTH(B3)】(キリキ様)の時、B3=『平成22年6月12日』を『平成23年1月16日』とした時に、平成23年1月までは色が付かない状況にはならないでしょうか?

 (yuuma)

 yuumaさん、小生はすべての日付がシリアル値で入力されているものとの前提で
 処理を考えていました。コメントをくださったすべての方が双ではないかと
 思います。
 >A1を【年と月】に分けた方が条件を作りやすいのでしょうか?
 >また、B〜Dのセルも【年・月・日】に分けた方が作りやすいのでしょうか?
 >もし、セルを分割した方法で解決できるのであれば教えてください。
 シリアル値で入力されているのなら、上記のことは考える必要はありません。

 シリアル値で入力し、セルの書式設定で
   A1:ユーザー定義で ggge"年"m"月"
   その他のセル:ユーザー定義で ggge"年"m"月"d"日"
 を指定すればよいだけです。

 >追伸と質問
 >A1の日付とB〜Dのセルの数は随時変更します。
 A1セルの日付の変化には提案されている式は対応しています。
 B〜Dセルの数が変更されるとはどういうことですか?
 入力されている日付データが変更されるということなら、心配ありません。
 B,C,D列の判定し、色をつけたいセルに提案された条件付き書式設定を行っておけば
 よいはずです。
 とくに、Rさんの提案がyuumaさん、あなたの要望にあっていると思います。
 変更されても問題なく処理されます。
 (あらくま)

 シリアル値です。ユーザー定義で【平成yy年mm月dd日】と表記されるようにしています。
 (あらくま)さんの言われるとおり(R)さんの
 @=MONTH($A$1)+1=MONTH(B3)
 A=(MONTH(B3)-MONTH($A$1))=1
 B=TEXT(EDATE($A$1,1),"yyyymm")=TEXT(B3,"yyyymm")
 を入力してみましたが、@AはB3〜D5の日付が全て赤色になってしまいます。Bは何の変化もありませんでした。
 TODAYやMONTHを使うと、全ての色が変わるみたいです。どういうことなのでしょうか?

 (yuuma)

 A1と同じ月の1日 DATE(YEAR($A$1),MONTH($A$1),1)
 A1と同じ月の月末 DATE(YEAR($A$1),MONTH($A$1)+1,0)
 A1の次の月の1日 DATE(YEAR($A$1),MONTH($A$1)+1,1)
 A1の次の月の月末 DATE(YEAR($A$1),MONTH($A$1)+2,0)
   (NB)


 例)B3のセル指定して
 当月:【=YEAR($A$1)&MONTH($A$1)=YEAR($B$3)&MONTH($B$3)】と
 次月:【=YEAR($A$3)&MONTH($A$3)=YEAR($B$3)&MONTH($B$3)-1】を入力
 この数式をB3〜D5まで繰り返せば【当月:赤、次月:青】にすることが可能ということが判明しましたが、実際仕事で使う書類全てににこれを行うことは時間の浪費となります。
 全範囲指定して行なえる条件付けはあるでしょうか?

 私のわかりにく説明に対して丁寧な説明ありがとうございます。

 (yuuma)


 書類締め切り日が必ずA1の月以降、さらに  書類締め切り日< 商談日なら
 条件は1,2,3と優先順位がありますので、
 条件1 当月  数式  B3<=DATE(YEAR($A$1),MONTH($A$1)+1,0)
 条件2 次月  数式  B3<=DATE(YEAR($A$1),MONTH($A$1)+2,0)
 条件付き書式は「書式」なので  B3書式をB3:D5まで書式コピーできます。 (NB)


 (NB)さん

 書式をコピーしてみましたが、ルール自体はドルで固定され、隣のセルに変わらなかったのですが‥‥
 【B3<=DATE(YEAR($A$1),MONTH($A$1)+1,0)】をルールの中へコピペしてみましたが、色が変わらりませんでした‥‥

 (yuuma)


 B3 ユーザ定義 「ggge"年"m"月"d"日」となっていますか。
 B3: 平成22年6月12日 
 すでに書きましたが 「22年6月12日」は 2022/6/12を表します。
 数式バーで確認できます。   
   (NB)

 【「ggge"年"m"月"d"日」】を入力し、OKを押すと「正しくありません。」と表示されます。
 【[$-411]ggge"年"mm"月"dd"日";@】は元々あり、現在も使用しています。

 (yuuma)


 >【[$-411]ggge"年"mm"月"dd"日";@】は元々あり、現在も使用しています。

 「ユーザー定義で【平成yy年mm月dd日】と表記されるようにしています」というのは
 間違いだということですか?

 > 次月:【=YEAR($A$3)&MONTH($A$3)=YEAR($B$3)&MONTH($B$3)-1】を入力

 どこから「$A$3」が出てきたのでしょうか?

 > 全範囲指定して行なえる条件付けはあるでしょうか?

 範囲を選択してから条件付き書式の設定を行います。
 B3を絶対参照にしないように。

 ルールの種類で「数式を使用して、書式するセルを決定」を選択していますか?

 > (R)さんの

 そのような回答をした覚えはありません。

 当月:=TEXT($A$1,"yyyymm")=TEXT(B3,"yyyymm")
 次月:=TEXT(EDATE($A$1,1),"yyyymm")=TEXT(B3,"yyyymm")

 これでもう一度確認してみてください。

 (R)


 数式を確認して下さい。どこかあいたセルに
  =IF(B3<=DATE(YEAR($A$1),MONTH($A$1)+1,0),1,0)と入力して下さい。
 数式の条件が満たされていれば、"1"  となります。
 少し訂正  B3  ユーザ定義  「ggge"年"m"月"d"日"」
             条件付き書式の数式 当月「=B3<=DATE(YEAR($A$1),MONTH($A$1)+1,0)」
                 次月「=B3<=DATE(YEAR($A$1),MONTH($A$1)+2,0)」

   (NB)

出来ました。
 ありがとうございます。ドルは外さないとダメだったんですね。思いこみもあり、つけたままでしていました。
 皆さんのアドバイスを一言一句確実にする必要があったんですね。
 いろいろと書き、アドバイスをごちゃごちゃとさせてしまい、申し訳ございませんでした。
 本当に感謝します。

 (yuuma)

 こんな感じでもいいかな

 当月 =DATEDIF($A$1-DAY($A$1)+1,B3,"m")=0
      =TEXT(B3,"yymm")=TEXT($A$1,"yymm")

 次月 =DATEDIF($A$1-DAY($A$1)+1,B3,"m")=1 
      =TEXT(B3-DAY(B3),"yymm")=TEXT($A$1,"yymm")

 By

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.