
EXCELで、入力した時間に合わせてセルに色をつけるにはどのようにしたら良いでしょうか?
例えばA1セルに開始時間(9時)、A2セルに終了時間(9時30分)を入力します。
B1セルが9時から9時15分、B2セルが9時15分から9時半、B3セルが9時半から9時45分・・・となっており、A1、A2に入力した時間に合わせて自動的に対応セルに色をつけるようにしたいです(上記の場合、B1とB2に色がつく)。
その際、既にB行にデータがある場合、C行に色をつけるようにしたいと思っています。
使える関数のヒントでも良いので教えていただけると助かります。
よろしくお願いします。
No.8ベストアンサー
- 回答日時:
そうですね… 出来ないことと出来そうなことについて,幾つかお話しして見たいと思います。
今はA列の値を元に色を付けたり消したりしているので,今のままでは,A列で指定した範囲から「外れ」たら消えてしまうのは,どうしようもありません。
また既にご覧になったように,「条件付き書式の色が発色している」という事実を「取り出す」方法や残しておく方法は,(マクロを使っても)ありません。
また,ご質問でヤリタイことのご説明の不足としては
>その情報を消さずに(残したまま)、B列の色が既に変わっているのを判定して、C列・・・以降の色が変わるように
この言い方では,「1度色が付いたB列は,たとえば間違いや,意図した変更によってA列を変えても色が残ってしまい,ずっと消せない。」という動作になります。
で,出来る事の範囲で工夫してみると,例えば。
作成例:
A列に時刻を入れるとB列が発色する
B列の発色しているセルに何か固定する記号(スペースでもOKだが目で見て判る文字の方がベター)を記入する事で,そのBの色は付きっぱなしになり追加でC列も発色する
A列を変更すると,B列で記入していない範囲が新しい条件で発色し,記入したB列の色は残り,B列に記入した行のC列も反応を始める
B列の記入内容を消去すると,記入していないB列の反応に戻る
B1の条件付き書式の数式
=(B1<>"")+($A$1<$A$2)*($A$1<>"")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
C1の条件付き書式の数式
=($A$1<$A$2)*($A$1<>"")*(B1<>"")*(C1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
のような事は出来ます。
keithinさん、何度もありがとうございます。
一つの形にこだわらず、柔軟な運用も必要ですね。
別方法も考えてみようと思います。
素人の質問に誠実に答えてくださってありがとうございました。
また何かあればお願いいたします。
No.7
- 回答日時:
No.4・6です!
何度もごめんなさいね!
別案を持ってきました。
B1セルには必ず9:00が入るものとしています。
C列全てを範囲指定し、条件付書式の数式欄に
=COUNTBLANK(C$1:C1)<=INT(($B$2-$B$1)/"0:15")
として好みの色を選択してみてはどうでしょうか?
尚、15分に満たない場合はセルに色が付きません。
以上、参考になれば幸いです。
ほんとぉ~~!っに!何度も失礼しました。m(__)m
No.6
- 回答日時:
No.4です!
たびたびお邪魔します。
色を付けたいセルには何もデータを入れないということですね?
それでは無理矢理の方法になりますが、↓の画像のように遠く離れた列に時刻を表示させておきます。
尚、時刻の場合は浮動小数点の影響で15分・30分・45分等々はきっちり区切られない場合がありますので
時刻表示の列と、B1・B2に入力する時刻もその浮動小数点を無視するようにしてみました。
今回はとりあえず、15分刻みの時刻をM列に、B1・B2に入力したデータをN1・N2に表示して
そのデータに基づきC列のセルに色を付けるようにしています。
まず、M1セルに
=ROUND("9:00"+"0:15"*(ROW(A1)-1),5)
という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。
これで15分刻みで時刻が表示されます。
そして、N1セルに
=ROUND(B1,5)
N2セルに
=ROUND(B2,5)
としておきます。
最後にC列全てを範囲指定し、条件付書式の「数式が」の欄に
=AND(M1>=$N$1,M1<=$N$2)
として、パターンの色を「黄色」にしています。
以上、参考になれば良いのですが
今回も希望に添えない場合はごめんなさいね。m(__)m

tom04さん、何度もありがとうございます。
実は遠くのセルに値を入れておく方法は私も考えたのですが、印刷の関係で見送っていました。でも良く考えたら別シートに値を入力しておけば問題ないですね?
ところで、何度もお答えいただいた上に恐縮ですが、下記の件でよいアイデアがあれば教えていただけないでしょうか?
例えばtom04さんの上記のやり方の場合、C列の色が既に変わっているとき、今のままだとB列に新しい値を入力するとC列の情報は新しい値で更新されます。そのC列の情報を消さずに(残したまま)、C列の色が既に変わっているのを判定して、D列・・・以降の色が変わるように出来ないでしょうか?
元々そうしたい旨での質問だったのですが、分かりづらく手間を増やしてしまいました。申し訳ありません。
よろしくお願い致します。
No.5
- 回答日時:
回答No.2です。
あれれ,よく見たら誤記してました。ごめんなさい。
訂正:
B1の条件付き書式は
=($A$1<$A$2)*($A$1<>"")*(B1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
C1の条件付き書式は
=($A$1<$A$2)*($A$1<>"")*(B1<>"")*(C1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1
です。失礼しました。
解説1:
($A$1<$A$2)*($A$1<>"")
開始時刻(A1)と終了時刻(A2)が両方とも入力され,さらに開始時刻の方が終了時刻よりもきちんと早い時刻で記入されているときに,はじめて色帯が付くようにしています。
つまり,まずA1が空っぽではないこと,更にA2にはA1の時刻よりも大きい(遅い)時刻が入力されていること,です。
解説2:
B列側 (B1="")
C列側 (B1<>"")*(C1="")
ご質問の指定事項です。
B列に記入が無い(B1="")場合にB列に色を付けます。記入されたら(B1=""でなくなったら)色を付けません。
C列は,B列が記入されてた時(B1<>"")に色を付けます。B列が=""だった(B1<>""ではないとき)は色を付けません。
なおご質問の指定事項にはありませんが,B列同様C列も記入があった場合は色を付けません。引き続きD列などに条件付き書式を取り付けておいてください。
#補足
他の方からのアドバイスでちょっと気がつきましたが,時刻の参照用に15分刻みの時刻の値をセルのオートフィルドラッグで作成させても,計算誤差により正しい15分ごとの時刻が生成されていません。
結果して当該時刻以前や以降の(つまり<や>の)計算でジャストタイムの判定を間違えますので,オートフィルドラッグで時刻を並べさせたものを計算に利用してはいけません。
keithinさん、詳しい解説ありがとうございます。
とても助かります。
何度もお答えいただいて恐縮ですが、可能ならもう一点教えていただけないでしょうか?
例えばB列の色が既に変わっているとき、今のままだとA列に新しい値を入力するとB列の情報は消えてしまいます。その情報を消さずに(残したまま)、B列の色が既に変わっているのを判定して、C列・・・以降の色が変わるように出来ないでしょうか?
いろいろ検索してみましたが、セルの色情報などで簡単に判別できないようなことが書かれていたので、自力で出来ませんでした。。。
元々そうしたい旨での”B列にデータがある場合・・・”だったのですが、教えていただいた内容を参考に自力で出来るかな?と思っており、たびたびの質問になってしまい申し訳ありません。
お時間があるようでしたら、お願い致します。
No.4
- 回答日時:
こんばんは!
外していたらごめんなさい。
15分ごとにセルを分けるということですが、仮に 15分とか30分きっちりの場合をどちらに入れるか?
によって色がつくせるがずれてきますので、
勝手に↓のように表を作らせてもらいました。
D列・F列とも15分刻みでシリアル値で入っています。
そして、D列以上~F列未満でそれぞれの列に条件付書式で塗りつぶしのバターンを設定しています。
まず、D列はD2セル以下の行を範囲指定し、条件付書式で数式がの欄に
=AND(D2>=CEILING($B$1,"0:15"),D2<CEILING($B$2,"0:15"))
として、書式のパターンから「黄色」を選択しています。
どうようにF列はF2以下の行を範囲指定し、条件付書式の数式欄に
=AND(F2>=FLOOR($B$1,"0:15"),F2<=FLOOR($B$2,"0:15"))
として同様に「黄色」を選択しています。
以上、直接の解決にはならないと思いますが
一つのヒントとなれば良いと思っています。
どうも失礼しました。m(__)m

tom04さん、ありがとうございます。
画像まで入れていただきとても分りやすく助かりました。
ただこのやり方はDセルとFセルの値とBセルを比較していますが、実際作りたいものはDやFに値を入れることができません。
ただCEILINGとFLOORの使用方法を覚えることが出来ました。ありがとうございます。
No.3
- 回答日時:
>B行にデータがある場合、C行に色をつけるようにしたい
B列とC列にどのようなデータがあるか判りませんが、C列を作業列にして考えます。
[C1]=9:00,[c2]=9:15と入力し、C1とC2を選択して下へコピー。(15分置きの時刻が入力される)
条件付書式設定
[B1]=(B1="")*(C1>=$A$1)*(C1<$A$2) セルを着色
[C1]=(B1<>"")*(C1>=$A$1)*(C1<$A$2) セルを着色 (15分置きのデータを見せたくなかったらフォントも色を付ける)
下へ必要なだけコピー
No.2
- 回答日時:
2003までのエクセルの場合。
B1を選んで条件付き書式を開始し
セルの値が を 数式が に変えて
右の空欄に =($A$1<$A$2)*($A$2<>"")*(B1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
と設定して書式ボタンで色を付ける。
C1を選んで条件付き書式を開始し
セルの値が を 数式が に変えて
右の空欄に =($A$1<$A$2)*($A$2<>"")*(B1<>"")*(C1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
と設定して書式ボタンで色を付ける。
B1とC1を下向けにコピーする。
Excel2007では,ホームタブの条件付き書式でだいたい同じようにして「数式を使用して,書式設定するセルを決定」を使います。
keithinさん、ありがとうございます。
動きを見ると考えていたものに近いことが実現できそうなのですが、もし可能でしたら少し入力式の解説をしていただけないでしょうか?
=($A$1<$A$2)*($A$2<>"")*(B1="")*(TIME(9,15*(ROW(B1)-1),0)<$A$2)*(TIME(9,15*ROW(B1),0)>$A$1)
特に($A$2<>"")*(B1="")の部分はどういったことなのでしょう?
お時間があればお願いいたします。
No.1
- 回答日時:
条件付書式から、関数を入れて、書式のパターンから色を選定すれば、できると思うが。
(関数は思いつきません。)
この回答への補足
すみません。詳しくないものでどのように書いたら良いのか分かりませんが、要は入力した時間の判別方法(例えば9:15と入力した時)をどうするか。対応したセルに反映させる良い方法(全ての時間をIFなどで指定すると長い式になってしまうと思うので簡単な方法はないのかな?と)
関数にこだわりはありません。条件式で実現できればそれも良しですが・・
んー、この説明でもちょっと分かりづらいですね。昔EXCELの質問をすると条件式なども書いて回答してくれるサイトがあったと思いますが、それば見つからなくて・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル条件付書式で指定の時間が過ぎていたらフォントの色を変える
Excel(エクセル)
-
開始時刻から所要時間に応じてセルを塗りつぶすには
その他(Microsoft Office)
-
Excel条件付書式(残業45時間以上になったら色をつけたい)
Excel(エクセル)
-
-
4
エクセル 条件付書式で時刻の判定(毎日5-13時)
Excel(エクセル)
-
5
おねがいします>< エクセルで指定時刻を過ぎたらセルの色が変わるようにしたいです
Excel(エクセル)
-
6
開始時刻から所要時間に応じてセルを塗りつぶして休憩を入れるには?
その他(Microsoft Office)
-
7
エクセルで表示形式の時刻の「0:00」を表示しないようにするには?
Excel(エクセル)
-
8
IF関数で、時間を条件にしたい場合の式について
Access(アクセス)
-
9
条件付き書式 時間 0:00:00の場合
Excel(エクセル)
-
10
エクセル2016で時間を入力して線で反映させる方法について
Excel(エクセル)
-
11
[IF文] 「何時〜何時」で該当する時間を表示したい お疲れ様です。お知恵をお借りできればと思います
Excel(エクセル)
-
12
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
13
Excelでの時間計算 条件付き書式
その他(Microsoft Office)
-
14
エクセルで「500時間」を「何日と何時間」で表示したい
その他(パソコン・スマホ・電化製品)
-
15
ある一定時間を超えた場合の超えた時間のみを合計する方法をご存知でしたら
Excel(エクセル)
-
16
【Excel】入力した数字分、セルを塗りつぶす方法について
Excel(エクセル)
-
17
エクセルで勤怠表 土日祝と平日と分けてそれぞれの合計を出したい
Excel(エクセル)
-
18
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
19
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
20
エクセル(EXCEL)で15分単位で加算したい場合
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルにぴったし写真を挿入
-
エクセル画像(写真)挿入
-
エクセルシートの見出しの文字...
-
【マクロ】【画像あり】関数が...
-
EXCELのVBAで複数のシートを追...
-
空白のはずがSUBTOTAL関数でカ...
-
勤怠表について ABS、TEXT関数...
-
エクセルの複雑なシフト表から...
-
【マクロ】エラー【#DIV/0!】が...
-
オートフィルターの絞込みをし...
-
Excelに貼ったXのURLのリンク...
-
【Officer360?Officer365?の...
-
エクセル
-
グループごとの人数のカウント
-
Excelで4択問題を作成したい
-
エクセル GROUPBY関数について...
-
グループごとの人数のカウント
-
グループごとの個数をカウント...
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報