[[20150728202736]] 『条件付書式で取り消し線』(三輪車) ページの最後に飛ぶ

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

 

『条件付書式で取り消し線』(三輪車)

2つのセルにはそれぞれ数字1文字を入力。企業の決算月が入るC5セルは
ユーザー定義による書式設定は 0 "月"、四半期のC6セルは "第" 0 "四半期"。

決算月との組み合わせで、特定の月日を経過すると、データが古いことを示すため
C6セルの四半期に条件付書式で取り消し線を引きたいのです。

7割近い企業が3月決算であり、ほかの月は式の転用( 応用 )が利くので、
今回、C5セルは3( 月 )で固定していただければ。

C6セルが第1四半期なら、12月1日 or 11月末日をTODAYが過ぎると取り消し線。
以下、第2四半期 3月1日 or 2月末日、第3四半期 6月1日 or 5月末日、
   第4四半期 9月1日 or 8月末日。

第1四半期のケースだと、次の第2四半期( 7月〜9月末 )の企業データは
遅くとも11月中には発表されるので、12月1日 or 11月末日には第1四半期の
データは古く、入れ替え可能という意味で取り消し線を引きます。
よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows8 >


詰まっているのはどこですか?
取消線は問題ないですよね。
あとは判定式ですか?
こうしてみたけどうまくいかない、といった情報は無いのですか?

(γ) 2015/07/28(火) 22:02


γ様   御心配いただきありがとうございます。

取消線の設定方法など基本的なところは理解していますが、
条件付書式に書き込む数式が分からないのです。

第1四半期の場合、IF(AND(C5=3.C6=1)、……  < TODAY() というような
数式が断片的に思い浮かぶだけで、どうやったら期限の
12月1日 あるいは 11月末日 を数式に落とし込めばよいかが分かりません。

(三輪車) 2015/07/28(火) 22:23


その年度の年を n で表すと、
1Q なら TODAY() >= DATE(n,12,0)
2Q なら TODAY() >= DATE(n+1,3,0)
3Q なら TODAY() >= DATE(n+1,6,0)
4Q なら TODAY() >= DATE(n+1,9,0)
をIFでつないで行けばいいんじゃないでしょうか。

規則性を調べて短縮できるかもしれませんが、
素直なものでも用は足りるのではないでしょうか。

(γ) 2015/07/28(火) 22:43


γ様   大変ありがとうございました。

γ様の数式を参考にさせていただき、OR関数でつないで行けば良さそうです。

=OR(AND(C5=3,C6=1,TODAY()>=DATE(2015,12,0)),AND(C5=3,C6=2,TODAY()>=DATE(2016,3,0)),

 AND(C5=3,C6=3,TODAY()>=DATE(2016,6,0)),AND(C5=3,C6=4,TODAY()>=DATE(2015,9,0)))

年度が替わるたびに、DATE( 2015 や 2016,  ,  )部分の年号を打ち替えるのはやや
面倒ですが、期限については手も足も出なかったのに較べれば充分。
これで行きます。

(三輪車) 2015/07/28(火) 23:46


> DATE( 2015 や 2016,  ,  )部分の年号を打ち替えるのはやや面倒ですが、

特定のセルに年を入れて置いて、それをセル参照させるようにすれば、
そのセルの修正だけで済むのでは?

(γ) 2015/07/29(水) 05:25


γ様  再度のアドバイスを頂いたお陰で解決し、本当にありがとうございました。

わたしが日付の関数をよく知らないばかりに、「 年号を打ち替えるのはやや面倒 」
と愚痴をこぼしてしまいましたが、反省しきりです。

もともと 入力日( 15年4月18日等 )を打ち込むC4セルがあり、γ様のご指摘の通り
これを利用しセル参照すれば、打ち替えのような面倒な作業は必要はなかったのです。

隠しセルC14を作りYEAR(C4)と入力。その上で下記を条件付書式に入れ解決しました。

 =OR(AND(C5=3,C6=1,TODAY()>=DATE(C14,12,0)),
       AND(C5=3,C6=2,TODAY()>=DATE(C14+1,3,0)),
           AND(C5=3,C6=3,TODAY()>=DATE(C14+1,6,0)),
               AND(C5=3,C6=4,TODAY()>=DATE(C14,9,0)))

(三輪車) 2015/07/29(水) 07:10


 > AND(C5=3,C6=4,TODAY()>=DATE(C14,9,0))) 

 この第4四半期のところ「C14」で合ってるのかな?
「C14+1」じゃないの?
 
「C14+1」の間違いなら、第1〜第4四半期すべてまとめて

 =AND(C5=3,TODAY()>=DATE(C14,9+C6*3,0))

 この式だけでできるかも?
(笑) 2015/07/29(水) 09:05

笑 様 わざわざ時間を割き、より簡便で合理的な数式を考えていただき恐れ入ります。

〉AND(C5=3,TODAY()>=DATE(C14,9+C6*3,0))

まるで魔法かと思いました。こんなに短い数式で、思い通りに動いてくれれば……。

わたしも大変残念なのですが、今年3月末時点である第4四半期の決算データは、
今年の8月中には第1四半期のデータが発表されて、古くなってしまうのです。
そのため来年2016年を表すC14+1は使えず、C14のままとなります。

失礼ながら、笑 様は頭が柔らかい上に、数学が得意で論理的な思考をお持ちと
お見受け致しました。合理性に富んでなければ、このようなコンパクトな
式は普通の人には思いつかないからです。

わたしは非論理的で、数学が苦手。出身も文系の文学部、数式だけでなく文章も長く
冗漫になる傾向があります。本題からそれてしまいましたが、お礼申し上げます。

(三輪車) 2015/07/29(水) 10:17


 > 来年2016年を表すC14+1は使えず、C14のままとなります。

 ということなら

 第1〜第4四半期すべてまとめて

 =AND(C5=3,TODAY()>=DATE(C14,9+MOD(C6,4)*3,0))

 これでできませんか?
(笑) 2015/07/29(水) 11:10

笑 様  驚きました。わずか1行の数式で希望通りの期限が出ました。

第1四半期なら2015年11月30日、第2四半期なら2016年2月29日、
第3四半期なら2016年5月31日、第4四半期なら2015年8月31日

MOD関数の存在だけは知っていましたが、意味や用法は分からずじまい。
自分に縁の無い関数と思い込んでおりましたが、かなり便利なんですね。
ただ、これを自由自在に使いこなせる笑 様だからこそ
組み立てられた数式だと思います。

さっそく使わさせていただきます、ありがとうございました。

余談になりますが、ひょっとして笑 様は数独( ナンバープレース )の
ようなものがお好きなのかもしれませんね。

(三輪車) 2015/07/29(水) 14:28


コメント返信:

[ 一覧(最新更新順) ]


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