- ベストアンサー
Excelでの書式設定によるセルの着色方法
- エクセル2010でA列からZ列まで上から入力された表が有り、同一行のA,C,D・・・列が空白の場合、特定の列(B列)に数字が有るか無いかで、その行(A-Z列)を2色に分けて着色したいのです。
- 単に空白セルに着色したり、別の列に所定の条件を満たすか否かで0,1にしておいての書式設定は当方にも出来そうですが、列の増設は他人の表なので極力避けたいのでうまく行きません。
- 目的は同一行の他の列(A,C,D,,,)が空白の場合に、特定の列(B列)に数字が有ればその行は削除不可、B列も(行全体が)空白なら削除する。というように区別するのが目的です。基本的には所定の入力範囲には全てのセルが空白ではないのですが、たまに上記のような行が発生し、他のエクセル表への転記時に問題が発生しますのでミス防止が目的です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>同一行のA,C,D・・・列が空白の場合、特定の列(B列)に数字が有るか無いかで、その行(A-Z列)を2色に分けて着色したいのですが書式設定で出来そうでうまく行きません。着色は、行全体でも構いません。 「空白」とは未入力(ブランク)のセルでしょうか? 条件付き書式で「数式を指定して、書式指定するセルを決定」を使えば可能です。 数式は次のようにして試されると良いでしょう。 A列からZ列まですべてがブランクのとき =COUNTBLANK($A5:$Z5)=26 A列とC列からZ列までがすべてブランクのとき =AND($A5="",$B5<>"",COUNTBLANK($C5:$Z5)=24)
その他の回答 (2)
- tsubu-yuki
- ベストアンサー率46% (179/386)
間に合うかな? 特にコレ以外に処理をしないなら、 私はVBAはオススメしませんよ。 一般機能(今回は関数と条件付き書式)で対応できるなら、 業務でお使いなのであれば絶対にそちらの方が良いです。 今後、引継ぎの際・メンテナンスの際にVBAを使えない人が 後任になると手が付けられなくなりますから。 なので、安易にVBAというのはいかがなものか?なのです。 お節介失礼でした。
お礼
毎回本当に助かっております。 VBAが出来る人のアドバイスなのでその通りだと思います。 今回も教えて頂いた方法で完了です。 当方が出来ないのも有りますが、極力同じ関数で作るようにしています。 よって、少し不細工でも分かり易く、処理列を作って、1つずつ段階的に組み合わせて何とかできるのですが、場合によっては項目数 X 条件の数だけ処理列を作るとなると非常に面倒な場合があるので、その場合ここでお世話になることになります。 関数の組合せが何故かうまく行きません。 とほほ・・・
補足
いつも助けて頂いております。 既に教えて頂いた方法(関数+書式設定)で完了しております。 先日の日付と数字の照合も対象シートの2/3程度終わりました。
- tsubu-yuki
- ベストアンサー率46% (179/386)
2010をお使いとのことですから、 COUNTBLANK関数でOKですね。 とりあえず、別解として・・ 空白を数えるCOUNTBLANK関数とは逆の考え方です。 「空白じゃないセル」を数える、COUNTA関数を使います。 条件付き書式の「式を使って~」を選択し、 青塗り部分:=COUNTA($A1:$Z1)=0 黄塗り部分:=AND(ISNUMBER($B1),COUNTA($A1)+COUNTA($C1:$Z1)=0) で指定してやります。 > (B列)に数字が有れば との条件があるようですので、 ISNUMBER関数で数値かどうかを判断しています。 で、お節介とは思うのですが、ちょっと引っ掛かったパターンを2種。 ・B列が空白で、ほかの列のどこかに何かが入っているケース ・B列に文字列が入っているケース これらも何か考えた方が良いのか悪いのか、 私には判断がつかなかったので悪しからずです。
お礼
いつもありがとうございます。 意図した空白行と意図しない空白行の区別を間違えるとまずいので、早急に何とかしたかったので助かりました。 恐らくVBAの出番でしょうが、月一の作業なので取りあえず書式設定で対応します。 尚、BSは先に回答いただいた、#No1のbunjiiさんにさせて頂きますのであしからずで、今後とも宜しくお願いします。
補足
いつもありがとうございます。 #bunjiiさん法でも、tsubu-yukiさん法でも出来ることが理解できました。 昨夜、CONTBLANKを思いついて、A-Zのブランクの数が25か26か、だけで青色と黄色に書式設定してみて、これはあっさり出来ました。 しかし、本来B列以外への入力有無も考慮するべで、これが思いつかず質問させていただきました。 AND(ISNUMBER($B1),COUNTA($A1)+COUNTA($C1:$Z1)=0) も見ると「なるほど」なのですが、いつものことながら、組合せられません。
お礼
早々のご回答に感謝! 助かりました。 AND(OR)関数が使いこなせないことが今回も分かりました。 関数を組み合わせるといつもうまく行かずに、処理列を追加するのが常でしたが、これからは少しずつ覚えていこうかと思います。 また、お助けお願い致します。
補足
早々のご回答ありがとうございました。 ご指摘があってヒヤリとしたのですが、確かに入力表の空白セルはB列以外はセル参照の式が入っていました。 ifXX="",""としていているのを空白と言ってしまっていました。 が、幸いに今回の表に関しては、不具合発生時はB列以外、もしくはB列も空白になる(はず)ので今回は本当の空白セルで問題なし、でした。 この辺りの気配りができないのでいつもトラブルのでしょうね。 有難うございました。