[[20180816120913]] 『完了したセルがTODAYに影響されないようにしたい』(FLO) ページの最後に飛ぶ

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

 

『完了したセルがTODAYに影響されないようにしたい』(FLO)

期日が迫っているセルに色をつけています。(Excel初心者です)

=$L$13-$S$3<0

$L$13は締め切り日、$S$3は=TODAY()を入力した「今日の日付」です。
締め切りから今日を引いて、マイナスであれば「期限を超過」とみなしセルを赤で塗りつぶします。

=$L$13-$S$3<=3

締め切りから今日を引いた日数が3日以内の場合は黄色で塗りつぶします。
同様に、7日の場合は緑、14日の場合は青で塗りつぶすとします。優先順位は赤が一番高く青が一番下です。

しかしこの方法では、今日の日付が更新されることによって、期限内に終わっていたセルがいずれ赤(期限超過)に変えられてしまうことに気づきました(8/5〆のものを8/1に完了させているのに、8/5-8/16では11日オーバー扱いになってしまう)。

完了済みのセルを無色にはできません(したくありません)。完了したセルがTODAYに影響されないようにしたい場合、どうしたらよいでしょうか。調べてみましたがあまり要領を得ませんでした。

< 使用 アプリ:Office365、使用 OS:Windows10 >


 別の列に完了フラグでも作って置いたらいいのでは?
(コナミ) 2018/08/16(木) 12:50

完了フラグを作っても、セルの色は変化し続けますか?
(FLO) 2018/08/16(木) 13:13

 色が変わる条件にフラグを追加すればいいということです。

 お書きになっている内容から察すると提出日がないようなので今のままだと
 提出されているけど日数が過ぎたのか単純に未提出なのかわからなくないですか?
 提出日などを設けておいてそこが空欄で締め切りを過ぎたものに色をつけたらいいのでは?
(コナミ) 2018/08/16(木) 13:16

終わり次第提出、のため提出日の欄はありません。
フラグを追加、試してみます。有り難うございます。

参考までに
1つのタスクを複数人で分担しています。Aさんが作業1を終えたらBさんが作業2、それが終わればCさんが最後の仕上げをして提出と言った具合です。
1つ1つの作業ごとに「締め切り」「実際の作業完了日」があります(ただし、Cさんは「終わり次第提出」のため締め切り(提出日)はありません)。
(FLO) 2018/08/16(木) 13:47


 ちょっと気になったので教えてください。

 >完了済みのセルを無色にはできません(したくありません)。
 >  :      : 
 >「終わり次第提出」のため締め切り(提出日)はありません)。

 完了済みのセルに何か色を付けているんでしょうか?

 ※ 提出日を省略する代わりに「完了色」を付けている、とかですか(何色?)

(半平太) 2018/08/17(金) 11:51


完了した時点で文字なしのセルに日付を入力しています。
例えば今日作業が終わったとしたら8/18と入力します。
文字が入力された時点で、セルの色がもう変更されないようにしたいのです。

〆切が8/20で、今日作業が完了したとしたら、「〆切まであと2日猶予を残して終わらせた」事になりますので、セルの色は黄色になっています。しかしtoday関数が入っているため、8/20を過ぎたらそのセルは赤に変わってしまうというわけです。〆切までに終わらせたのに、〆切を過ぎたように見えてしまいます。

上手く説明できず申し訳ありません。

(FLO) 2018/08/18(土) 22:17


 >完了した時点で文字なしのセルに日付を入力しています。 

 そのセルはどこにあるんですか?

 そのセルこそ「最終作業提出日」なんじゃないですか?

 もしそうならフラグを立てる必要もないです。それをフラグとして扱えるんですから。

 仮に、そのセルがM13セルなら、以下の要領になります。

 =$L$13-$S$3<0  → =AND($L$13-$S$3<0 ,M13<>"")
 =$L$13-$S$3<=3 → =AND($L$13-$S$3<=3 ,M13<>"")
                     ↑
             最終作業提出日に何かが入っていない事を「且つ条件」に加える
             そこに何か(日付でしょうが)が入ったら、条件付き書式の色は付かなくなる。

 それにしてもこの説明の意味が理解できないなぁ。
        ↓
 >完了済みのセルを無色にはできません(したくありません)

 無色に出来ないのだから「色が付いていてその色のままにしたい」と言う解釈になるんですがねぇ。

(半平太) 2018/08/18(土) 23:42


完了日を入力するようにしないと解決しませんよ。

完了日が入力されていたら、締め切り日−完了日で判定。
入力されていなければ、締め切り日−todayで判定。
(iruyas) 2018/08/18(土) 23:45


最終的に作業ABCがどれくらい余裕を持ってできたかが分かるようにしたいのです。

>「色が付いていてその色のままにしたい」と言う解釈になる
半平太様、その通りです。文字入力→色変更という条件にしたくないのです。日付を入力した時点でセルの色を固定したいです。

    作業A
締め切り    完了日
 8/20      8/16
         ↑ここに塗られた色を固定
※完了日のセルは元々空欄(条件付き書式あり)ですが、作業完了と同時に日付を入力します

>完了日が入力されていたら、締め切り日−完了日で判定。

 入力されていなければ、締め切り日−todayで判定。
日付入力するごとに書式を変える必要があると言うことですか?
(FLO) 2018/08/20(月) 10:41

マクロですが、、
更新ボタンをシートのどこかに配置して
これを書いておけば押すたびに判定します。

・L列は13行目から始まり複数行あると勝手に仮定しています。
・完了日がM列と勝手に仮定し、M列に入力があるものに関しては処理を行いません。
・色を塗るマクロなのでデータが何万とあると重くなります。

    Sub ボタン1_Click()
        Dim i As Long
        With ThisWorkbook.Sheets("Sheet1")
                For i = 13 To .Cells(.Rows.Count, "L").End(xlUp).Row
                    If .Cells(i, "M") = "" Then
                        Select Case .Cells(i, "L").Value - .Range("S3").Value
                            Case Is < 0: .Cells(i, "L").Interior.Color = 255
                            Case Is < 4: .Cells(i, "L").Interior.Color = 65535
                            Case Is < 8: .Cells(i, "L").Interior.Color = 5287936
                            Case Is < 15: .Cells(i, "L").Interior.Color = 12611584
                        End Select
                    End If
                Next i
        End With
    End Sub

(TAKA) 2018/08/20(月) 11:25


 なんか、すごく単純な話だったような気がします。

 完了日が「M13」セルだとしたら、これでいいです。
                             ↓
 =$L$13-$S$3<0   → =$L$13-IF(M13="",$U$3,M13)<0
 =$L$13-$S$3<=3   → =$L$13-IF(M13="",$U$3,M13)<=3

 ※M13に日付が無ければToday()で計算。有ればM13の日付で計算するだけ。

 ただ何故、$L$13 が絶対参照になっているのか不可解。
 そこが固定だと、複数タスクの期日管理はできないハズ。

(半平太) 2018/08/20(月) 14:51


コメント返信:

[ 一覧(最新更新順) ]


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