- 締切済み
複数の条件での行の色分けを自動化したい
あるセルに特定の値が”表示”された際に、該当のセルがある行を同じ色に分けたいです。 現在、仕事であるHPのデータ(ランキングサイトです)をエクセルにインポートして、 そのシートを丸ごとコピーして値を引っ張って表示するシートを使っています。 ='1005分貼り付けシート'!D11 ↑みたいな式がズラズラ並んでいるシートです。 こちらを使用して、同じブックにインポートしたHPのシートを追加して、 上記数式のシート名部分を置換している状態です。 置換し終えた後に、特定の文字列が入っている行を色分けしているのですが こちらを現在手作業で行っているので、自動化したいのです。 ですが、色分けの条件が複雑で「2つのセルの値が合致したら」というようにしたいのです。 たとえば、 ”D10が「靴」でE11が「ピンク」だったら、E行は青にする” というようなものです。 色分けの種類は3色なのですが、条件が何十とあるため、条件付書式設定は使えません。 何か良いアイディアはないでしょうか。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
内容は複雑そうだが、質問の説明は簡単で内容が良くわからない。 質問に、適当な模擬実例をあげないからそうなるのだ。 >D10が「靴」でE11が「 このような同じ行でない範囲の語句のありようも問題にするのか。 ーー アイデアが出たらVBAコードは作れるだけの経験はあるのか。 これなど、VBAコードを作ってくださいという丸投げではないのか。先般の新聞をにぎわした、WEBで回答を得てすます、とかの批判がある中、自分で良く考えて質問点をしぼって質問すること。 文章を扱うなどは、エクセルVBAでは不適だ。表計算ソフトは景観の仕組みを「主に提供するもの。 文章の語句の相互関連を処理する、便利な仕組みは何もない。 文章から語句を切り出すのもままならないのだ。 「何でもエクセルで」の考えが間違っているとおもう。 ーー 質問にはエクセルのバージョンを書いておくこと。特に条件き書式は大幅に変わった個所なのだ。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>条件が何十とあるため、 その条件が、どの様なものなのかを説明して頂かない事には、アイデアの出し様がありません。 >='1005分貼り付けシート'!D11 ↑みたいな式がズラズラ並んでいるシートです。 >”D10が「靴」でE11が「ピンク」だったら、E行は青にする” つまり、文字列が表しているセルが、 '1005分貼り付けシート'!D11 の場合は、 その1つ上の'1005分貼り付けシート'!D10セルと、 その右隣の'1005分貼り付けシート'!E11を参照し、 1つ上のセルに入力されているデータが「靴」で、右隣のセルに入力されているデータが「ピンク」である場合には色を付けると考えれば宜しいのでしょうか? そして、参照するセルは、必ず「文字列が表しているセルの1つ上」のセルと、「文字列が表しているセルの右隣」のセルの2箇所のみで、 1つ上のセルが「靴」時に、右隣のセルが「黒」の場合は、又別の色を付けると言った条件になっているのでしょうか? もし、そうだとすれば、例えば、 セルの色を赤にする条件が、 1つ上のセルが「靴」で、右隣のセルが「ピンク」である場合と、 1つ上のセルが「下駄」で、右隣のセルが「赤い下駄」である場合と、 1つ上のセルが「サンダル」で、右隣のセルが「赤いサンダル」である場合であり、 セルの色を黄色にする条件が、 1つ上のセルが「靴」で、右隣のセルが「黒」である場合と、 1つ上のセルが「下駄」で、右隣のセルが「黄い下駄」である場合と、 1つ上のセルが「サンダル」で、右隣のセルが「黄いサンダル」である場合であり、 セルの色を青にする条件が、 1つ上のセルが「靴」で、右隣のセルが「茶」である場合と、 1つ上のセルが「下駄」で、右隣のセルが「青い下駄」である場合と、 1つ上のセルが「サンダル」で、右隣のセルが「青いサンダル」である場合であるとした場合には、 まず、適当なSheet(例えばSheet2)に、次の様な表を作成しておきます。 A列 B列 C列 D列 1行目 赤 黄 青 2行目 靴 ピンク 黒 茶 3行目 下駄 赤い下駄 黄い下駄 青い下駄 4行目 サンダル 赤いサンダル 黄いサンダル 青いサンダル そして、例えばA1セルの条件付き書式設定では、 セルの色を赤にする場合の設定は、書式が赤で、「数式が」の =VLOOKUP(OFFSET(INDIRECT($A1),-1,),INDIRECT("Sheet2!A:D"),2,FALSE)=OFFSET(INDIRECT($A1),,1) としておき、続いて追加ボタンをクリックしてから、 セルの色を黄色にする場合の設定として、書式が黄色で、「数式が」の =VLOOKUP(OFFSET(INDIRECT($A1),-1,),INDIRECT("Sheet2!A:D"),3,FALSE)=OFFSET(INDIRECT($A1),,1) としておき、同様にして、 セルの色をにする場合の設定は、書式が青で、「数式が」の =VLOOKUP(OFFSET(INDIRECT($A1),-1,),INDIRECT("Sheet2!A:D"),4,FALSE)=OFFSET(INDIRECT($A1),,1) という条件を追加してから、条件付き書式設定の[OK]ボタンをクリックすると良いと思います。
- chonami
- ベストアンサー率43% (448/1036)
行と列の使い分けがちょっと不明なんですよね… あと、色付けの条件が一つしか提示されていないのも何とも。 せめて3個くらいはサンプルで提示しておいてもらえるとこちらも検証しやすいんですが。 タイトルが行になっているので行(横範囲)を色づけするという前提で進めたいのですが、 例えば各行に条件を入力しておくというのはどうでしょう。 F列を青条件、G列を別の色条件、H列を残りの色の条件として、(青以外の色がわからないので…) 質問文にある内容でしたら、G列の青にしたい行番号(10か11になるのかな)に =AND(D10="靴",E11="ピンク") と入力。靴とピンクの条件が合えばこのセルにはTrue、合わなければFalseと表記されます。 次に条件付書式で、データの範囲を選択し、 A1にアクティブセルがあるとしたら、 数式が→$F1=True 色→青 同様に、 $G1=True 別の色 $H1=True 残りの色 と設定します。 これで、条件が合った時に色がつきせんか? …でも、作業列使えるのかなぁ?
- web2525
- ベストアンサー率42% (1219/2850)
>何十とある条件を全て数式として入力していくのは手間がかかりすぎるというのが正直なところです 条件式の作成に関してはマクロであっても同じ事が必要、セルの間数式の場合ウィザードが利用できる分操作は楽のはず >条件というのが大体月5~10件追加されていくので… であればなおの事、マクロでの対応は厄介になってしまいますね 複雑な条件式を如何に簡略化するかその辺りの工夫が必要になってきます (一定の規則性を探すとか、割付けるとか) ただ、その条件全てを理解していないとアドバイスや、条件式の提示は困難ですね
- mu2011
- ベストアンサー率38% (1910/4994)
>”D10が「靴」でE11が「ピンク」だったら、E行は青にする” ⇒E行が不明ですが次の方法は如何でしょうか。 (1)別シートに条件表を作成し、表全体を名前定義する(例えば、A列に「靴ピンク」、B列に「1」、「2」又は「3」) (2)条件付き書式設定で「数式が」を選択、=VLOOKUP(D10&E11,定義名,2,FALSE)=1、=2、=3と3つ設定すれば出来ると思いますが如何でしょうか。
- web2525
- ベストアンサー率42% (1219/2850)
>種類は3色なのですが、条件が何十とあるため、条件付書式設定は使えません エクセルのバージョンが2007以降ではないと言うことですね 色分けが3種類であれば条件付書式を使うほうがわかりやすい 条件が何百あろうと最終的な結果が ・塗りつぶし無し ・塗りつぶし1 ・塗りつぶし2 ・塗りつぶし3 の4パターンであれば条件付書式で対応できます、計算式が長く複雑なため条件付書式への計算式入力が困難な場合は、どこかの作業セルで条件計算を行いその結果で条件付書式を設定すればいい 例:E列の色付け”D10が「靴」でE11が「ピンク」だったら、E行は青にする” の場合であれば 作業セル=IF(AND(D10="靴",E11="ピンク"),1,"") 条件付書式では、数式を選択し=作業セル=1 で設定すればいい、複数の条件式から判定するのであれば、OR関数やAND関数を使用して判定するようにすればいい
お礼
早速のご回答、ありがとうございます! ご指定いただいた方法で対応はできたのですが、 何十とある条件を全て数式として入力していくのは手間がかかりすぎるというのが正直なところです。 しかも、条件というのが大体月5~10件追加されていくので… 別に条件シートを作り、そこに条件表を置いて、そのシートから作業セルに値を入れるなどする方法が一番楽でしょうか?
補足
ご丁寧な回答、ありがとうございます! 条件については、自分でも計算式を作っていて >”D10が「靴」でE11が「ピンク」だったら、E行は青にする” の条件で結構詰まってしまったので、元の表をいじって下記のようにすることにしました。 ”D列のどこかが「靴」で同じ行のE列が「ピンク」だったら、その行は青にする” 書き方が非常に分かりづらく、間違っていたために皆さんに誤解を与えてしまい…申し訳ございません。 また、条件ですが、他にも例を書くとこんな感じです ”D列のどこかが「服」で同じ行のE列が「黄色」だったら、その行は青にする” ”D列のどこかが「ファイル」で同じ行のE列が「あめ色」だったら、その行は青にする” ”D列のどこかが「ファイル」で同じ行のE列が「赤」だったら、その行は黄にする” ”D列のどこかが「カレンダー」だったら、その行は黄にする”