- ベストアンサー
エクセルの条件付き書式で文字を入力したら、塗りつぶしが変化するようにできる?
初心者です。タイトルの通り、文字、数字を入力したらセルの塗りつぶしが変化するようにできるのでしょうか?できればマクロ?など使わないでやりたいのですが、自分でやって、できたりできなかったり…。セルにある式の種類でできなかったりするのでしょうか?アドバイスお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
んー、こちらの方で同じ状況にして見た場合、 =IF(COUNTIF(AG55,"*"),X44,"") でも、 =IF(COUNTIF(AG55,"*"),X44&"","") でも、すべて上手くいくんですが... 「#VALUE!」は、数式の引数やセル参照などが正しくない場合に表示されるエラーですが、今回の式は、数個の関数を使った式になっていますので、どの部分にエラーがあるとされているのか確認した方がいいかもしれません。 エラーが表示されたセルを選択して、数式バーのすぐ隣のExcel2002なら「fx」、Excel2000以前なら「=」のボタンを押すと、関数の引数ダイアログボックスが出てくるので確認できます。 関数の引数ダイアログボックスが出ている状態で、数式バーに表示されている数式の関数部分(IFとかCOUNTIF)をクリックして選択すると、それぞれの関数のどの部分に問題があるかが確認できます。 セルが空欄かどうかを表現するために COUNTIF(AG55,"*")という式を使っているのであれば、 その他の部分でもそうですが、 COUNTIF(AG55,"*") のかわりに AG55<>"" を使ってみても状況は改善されないでしょうか? 式としては、それぞれ、 =IF(AG55<>"",X44,"") =IF(AG55<>"",U60*X60,"") =IF(AG55<>"",SUM(AA57:AC67),"") のような感じになりますが... ごく稀に、数式をたくさん使っていると、そのファイル上での計算が上手くいかないことがあったりということもあったので、関数をネスト(入れ子)にするのではなく、簡単な比較演算に置き換えてみたりすると、ひょっとして上手くいったりということもあるかもしれませんし。 また、 =IF(COUNTIF(AG55,"*"),X44&"","") の式ですが、 「X44&""」の部分は、「X44」だけのままでも問題ないと思います。 &は、2つの文字列を結合または連結して、1つの連続する文字列の値を作成するものですので、""は何もないことを意味するので、「X44&何もつけない」ということで、X44がどのような内容でも、X44単独のときと全く同じ内容になってしまいます。 >書式条件の最後を「=""」にしたんですが、なぜか「0」が表示されてしまったんです。 の部分の0が表示されたのが、計算式の入ったセルなのか、条件式なのかわかりかねますが、条件式が入力したものから勝手に書き換えられて思ったようにならないのであれば、条件式の設定の中での式を見直す必要がありますので、いくら、計算式の入ったセルを見直しても問題は解決されないのではないでしょうか? それに、もともと作成した計算式を変更してしまうと、今回のように思わぬ部分に影響が出ることがあるので、気をつけてください。
その他の回答 (7)
>空欄であるはずのセルにゼロが表示されていました。 ということですが、空欄であるはずのセルというのは、 =IF(COUNTIF(AG55,"*"),SUM(AA57:AC67),"") の場合でしたら、どのセルになるのでしょうか? もしも、AG55のことであるのならば、AG55に式が入っているということでしょうか? それでしたら、その式を教えていただければ解決できるかもしれませんので、補足をお願いします。
お礼
すいません、また補足なんですが、やはり「X60」 =IF(COUNTIF(AG55,"*"),X44,"") が「0」表示されないようにした方がよいみたいでした。 =IF(COUNTIF(AG55,"*"),X44&"","") とすると、合計の計算がうまくいきませんでした。
補足
>空欄であるはずのセルというのは、 =IF(COUNTIF(AG55,"*"),SUM(AA57:AC67),"") の場合でしたら、どのセルになるのでしょうか? すいません、自分でなにを聞いてるのかわからなくなってしまいました。本当はこうでした。X60のセルに =IF(COUNTIF(AG55,"*"),X44,"") この式が入っています。書式条件の最後を「=""」にしたんですが、なぜか「0」が表示されてしまったんです。そこで仕方ないので次のようにしました。 =IF(COUNTIF(AG55,"*"),X44&””,"") そうしたら、入力したら水色に、A55の値を消去したら、黄色と、思ったようにできました。これで、全てうまくいくと思ったら、「X60」のセルの結果を受けるせる「AA60」 =IF(COUNTIF(AG55,"*"),U60*X60,"") が「#VALUE!」と表示されてしまいます。(U60は手入力で数値を入力するセルです) それに付随して、「R69」のセル =IF(COUNTIF(AG55,"*"),SUM(AA57:AC67),"") も「#VALUE!」となってしまいました。この表示がなくなれば完成すると思うんですが、funifuni_panchさんにたくさん迷惑かけてしまったので、この質問を最後にします。この他に不具合がでたら、新たに質問し直そうと思います。よろしくお願いします。
失敗例2、3は成功されたのでしょうか? 計算式自体には問題がありませんし、失敗例3と同様の問題かと思われますので、条件付書式の設定内容を確認されるのが一番かと思います。 条件付書式は自動的に式を書き換えられることがあるので... 念の為、試してみましたが、成功でした。 数値がこの式のセルに表示されるとちゃんと黄色が水色にかわり、AG55の値を削除したらセルの色は黄色になりました。
補足
重ねての回答有り難うございます。今分かったんですが、失敗例2、3共に成功してませんでした。先ほどお聞きした事は、別のシートで試したら、こちらもうまくいきました(元のシートではできません)。それで、もとのシートのゼロ値を表示してみたら、なぜか、空欄であるはずのセルにゼロが表示されていました。そのせいで、失敗例2と3がうまくいかなかったようです。ゼロを表示しないようにやっているのですが、うまくいきません。もしかしたら、数値を入力するセルが、他のセルの計算式に入っているからなんでしょうか?
同じ状態を想定して試してみましたが、成功例1、失敗例1以外は、塗りつぶしの色が、空欄だと黄色、文字が表示されると水色になりました。 成功例1、失敗例1は、参照もとのセルが空欄でも、参照先の計算結果が0となり、空欄にはならないので、空欄だと黄色とはならないのではないでしょうか? 「ツール」→「オプション」の「表示」で「ゼロ値」のチェックをはずしても、見かけは空欄ですが、実際には0という数値が入っていることとみなされて、塗りつぶしの色は水色になります。 セルの計算式を、 成功例1 =IF(BD41*5=0,"",BD41*5) 失敗例1 =IF(U44*X44=0,"",U44*X44) のようにすれば、計算結果が0となる場合には空欄と認識されるので、塗りつぶしの色が、空欄だと黄色、文字が表示されると水色になりましたが... また、条件付き書式を設定するときに、 セルの値が_次の値に等しくない_="" を、誤って、 セルの値が_次の値に等しくない_"" のように、 最後の部分の = を付け忘れてしまうと、自動的に ="""" に置き換わってしまうので、思うようにいかない場合があります。 成功例1がどうして成功しているのか、ちょっと判りかねますので、参考程度にしていただければと思います。
お礼
詳しい回答ありがとうございました。成功例1は条件付き書式の最後を「=0」にしていました。教えて頂いたしきに置き換えて最後を「=""」にしたらうまくいきました。失敗例1もやり直してうまくいきました。ありがとうございました。
補足
申し訳ないんですが、次の式の時もうまくいかないんでお時間があればアドバイス頂きたいのですが。 =IF(COUNTIF(AG55,"*"),SUM(AA57:AC67),"") 数値がこの式のセルに表示されると黄色が水色にかわります。さらにAG55の値を削除したらセルの色を黄色にしたいんですけど、水色になってしまいます。解決方法があればアドバイスお願いします。何度もすいません。
- sadanao
- ベストアンサー率42% (67/157)
こちらのサイトを参考にアレンジされては如何ですか? 「土曜日、日曜日にカンタンに色を付けるワザ」
お礼
参考URL見ました。ありがとうございます。感じとしてはあってました。あとで補足させてもらいます。
補足
#2さんと同じ内容になっています。 補足です。 成功例1 E32(黄色の塗りつぶし)に =BD41*5 の式。 条件付き書式で セルの値が_次の値に等しくない_="" 書式設定の、パーターンで網かけを水色に 空欄だと黄色、文字が表示されると水色になりました。 成功例2 A58に =IF(LEN(AG55)>0,A42& "","") の式 あとは上と同じです。 失敗例1 AA44に =U44*X44 の式 条件は他と同じですが、空欄でも水色になってしまいます。 失敗例2 T39に =IF(COUNTA($A$41:$A$51)=0,"",INDIRECT("A" & MIN(IF(LEN($A$41:$A$51)>0,ROW($A$41:$A$51))))) の式 同じく空欄でも水色に。 失敗例3 X60に =IF(COUNTIF(AG55,"*"),X44,"") の式 同じく空欄でも水色になってしまいます。 全て成功例1と同じ書式にしてやってみました。これで伝わりましたでしょうか?よろしくお願いします。
条件付書式では、条件1から順に当てはまるかどうか判断され、当てはまった場合には、それ以後の条件式は無視されますので、最終的にこうしたい条件ほど上(条件1に近い順位)に設定する必要があります。 再度、条件式の設定順序などを見直して見られるといいかと思います。 現在の状況では、もう条件付書式で試しているけれどもうまくいかないというふうに見受けられますので、このくらいしかアドバイスができません。 どのように入力した場合に、どのように変化させたいのか、もう少し補足していただければ何かアドバイスできるかもしれませんが...
お礼
お返事ありがとうございました。おっしゃる通り、出来なかった例を補足したいと思います。
補足
#2さんと同じ内容です。 補足です。 成功例1 E32(黄色の塗りつぶし)に =BD41*5 の式。 条件付き書式で セルの値が_次の値に等しくない_="" 書式設定の、パーターンで網かけを水色に 空欄だと黄色、文字が表示されると水色になりました。 成功例2 A58に =IF(LEN(AG55)>0,A42& "","") の式 あとは上と同じです。 失敗例1 AA44に =U44*X44 の式 条件は他と同じですが、空欄でも水色になってしまいます。 失敗例2 T39に =IF(COUNTA($A$41:$A$51)=0,"",INDIRECT("A" & MIN(IF(LEN($A$41:$A$51)>0,ROW($A$41:$A$51))))) の式 同じく空欄でも水色に。 失敗例3 X60に =IF(COUNTIF(AG55,"*"),X44,"") の式 同じく空欄でも水色になってしまいます。 全て成功例1と同じ書式にしてやってみました。これで伝わりましたでしょうか?よろしくお願いします。
- kojitti
- ベストアンサー率32% (449/1386)
条件付き書式設定で可能ですよ。 具体的なやりたい内容がわからないのでこれ以上なんともいえませんが、可能です。
お礼
お返事ありがとうございました。そうですよね、できれば補足します。
補足
補足です。 成功例1 E32(黄色の塗りつぶし)に =BD41*5 の式。 条件付き書式で セルの値が_次の値に等しくない_="" 書式設定の、パーターンで網かけを水色に 空欄だと黄色、文字が表示されると水色になりました。 成功例2 A58に =IF(LEN(AG55)>0,A42& "","") の式 あとは上と同じです。 失敗例1 AA44に =U44*X44 の式 条件は他と同じですが、空欄でも水色になってしまいます。 失敗例2 T39に =IF(COUNTA($A$41:$A$51)=0,"",INDIRECT("A" & MIN(IF(LEN($A$41:$A$51)>0,ROW($A$41:$A$51))))) の式 同じく空欄でも水色に。 失敗例3 X60に =IF(COUNTIF(AG55,"*"),X44,"") の式 同じく空欄でも水色になってしまいます。 全て成功例1と同じ書式にしてやってみました。これで伝わりましたでしょうか?よろしくお願いします。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
セルの値が 次の値に等しくない を選択し、 ="" と入力することで、空白セル以外にその書式を適用できます。
お礼
おはようございます。早速の回答ありがとうございました。もう一度アドバイス受けた通りやってみます。
補足
#2さんと同じになってます。 補足です。 成功例1 E32(黄色の塗りつぶし)に =BD41*5 の式。 条件付き書式で セルの値が_次の値に等しくない_="" 書式設定の、パーターンで網かけを水色に 空欄だと黄色、文字が表示されると水色になりました。 成功例2 A58に =IF(LEN(AG55)>0,A42& "","") の式 あとは上と同じです。 失敗例1 AA44に =U44*X44 の式 条件は他と同じですが、空欄でも水色になってしまいます。 失敗例2 T39に =IF(COUNTA($A$41:$A$51)=0,"",INDIRECT("A" & MIN(IF(LEN($A$41:$A$51)>0,ROW($A$41:$A$51))))) の式 同じく空欄でも水色に。 失敗例3 X60に =IF(COUNTIF(AG55,"*"),X44,"") の式 同じく空欄でも水色になってしまいます。 全て成功例1と同じ書式にしてやってみました。これで伝わりましたでしょうか?よろしくお願いします。
お礼
こんにちは。たくさんの回答ありがとうございました。funifuni_panchさんのアドバイスのおかげで不具合がだいぶ良くなりました。 >COUNTIF(AG55,"*") のかわりに AG55<>"" を使ってみても状況は改善されないでしょうか? とりあえず、この式に全て置き換えてみました。結果は残念ながらうまくいかなかったんですが(説明がたりてなくて、申し訳なく思います)、最終的に条件付き書式で数式の条件を3つ用意して解決する事が出来ました。ほんとはこんなややこしい事しなくて済むはずなんでしょうが、今の私にはこれが精一杯です。問題の修正の仕方等もとても勉強になりました。これから色々覚えて修正を加えていこうと思います。このサイトで調べたり、アドバイスもらったりして、とりあえず完成までいく事が出来ました。本当に感謝してます。長い間お付き合いして頂き、ありがとうございました。