• ベストアンサー

エクセルでVLOOKUPの結果を含むセルの行色を

エクセルで以下のことをVBAなしに達成できますでしょうか? シート1のあるセルに値を入れると… 1) Vlookupでシート2から必要な値を見つける。 2) 1)で見つけた値をもとに、シート1のセルでその値を含む行全体の色を変更する VLOOKUPで値を引っ張ってきた後、条件付書式をどうすればよいのかわかりません。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>2) 1)で見つけた値をもとに、シート1のセルでその値を含む行全体の色を変更する 「その値を含む行」とはVLOOKUP数式の行ではなく、別の行範囲(例えば検索する列はB列)ということで良いのですね。 条件付き書式を設定したい対象範囲(例えばA2セルからG100セル)を選択し、数式を使った条件付き書式で「=$B2=VLOOKUP関数の数式セルの絶対参照」のような数式(特定の値が文字列の場合)にします。 #ご質問にはご使用のエクセルのバージョンが明示されておらず、またシート1のレイアウトなどが具体的に提示されていないので一般的な回答になりましたが、Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記し、シートのレイアウトなども具体的に例示するようにしましょう。

piyo-maru7
質問者

お礼

ご回答ありがとうございます。 説明が足りなかったようで、もう少し詳しく書きます。 利用しているのはExcel2010です。 参照用シートにはアドレステーブルが入っています。 本シートにもテーブルがあり、ロケーションコードを単独入力するセル(G1)があります。 仮の話としますが、こちらの本シートには郵便番号がB列に含まれています。 上記のセルに、ロケーションコードを入力すると別シートのアドレステーブルから郵便番号を取得して、本シートにおいてそのデータを含む行を条件付き書式で色変更する、というのが目的です。 一気にやらずにひとつずつ、と思ったのでまず適当なセル(H1)に=VLOOKUPで郵便番号を表示させました。その後、そのセルと同じ値なら色を変えるという条件を立てたのですがうまくいきませんでした。条件式には =$B1=$H$1 などとしたと思います。すべてを条件式内で済ませれば動作するのかも知れません。 手元に実シートがないのですぐに確認できず、すみません。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>その後、そのセルと同じ値なら色を変えるという条件を立てたのですがうまくいきませんでした。条件式には =$B1=$H$1 などとしたと思います。すべてを条件式内で済ませれば動作するのかも知れません。 B列に郵便番号が入寮されていて、H1セルに色を付けたい郵便番号が表示されているなら、基本的に上記の数式でOKです。 ただし、上記の数式を適用する場合は、例えばB2セル以降に郵便番号が入力されている場合、条件付き書式を設定したい範囲を選択するとき、A2セルから表示したいデータ範囲を選択して設定した場合は、上記の数式を「=$B2=$H$1」のようにアクティブセルを基準とした行の数式に変更する必要があります(手もとに元データが無くても、ご自分でモデルデータを作成して、条件付き書式がうまく作動するか調べてみてください)。

piyo-maru7
質問者

お礼

返信が遅くなり大変申し訳ありません。 なかなかうまくいかなかったのですが、結局データタイプをいろいろ変えているうちに動作するようになりました。頭に0がくるデータがあったので文字列扱いにしてあったのですが、参照元と参照先それぞれ数値にしたらうまくいきました。 数式自体は皆様のおっしゃるとおりでした。 ありがとうございました。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

1はできますか? できるのであれば、あとは色を変更したいセルの色を変えるように「条件付き書式」を設定をすればOK。 他のシートの値をVLOOKUP関数で参照するには、参照範囲を絶対参照する必要があります。 絶対参照するってて結構面倒ですので、参照する範囲に名前を付けることをお勧めします。 名前を付けた範囲は絶対参照で参照されるので数式の記述が楽になります。  =VLOOKUP(A1,参照範囲名,1) のようにして使います。 で、比較したいセルが1列だけなら  =$A$1=VLOOKUP(A1,参照範囲名,1) のように色を変えたいセルに対して条件付き書式を設定すればOK。 ※=IF($A$1=VLOOKUP(A1,参照範囲名,1),TRUE)   と同じです。 複数列の中から比較するなら  MATCH関数 を使って同じ値があるかチェックです。 でもって条件付き書式を設定。  =$A$1=MATCH(VLOOKUP(A1,参照範囲名,1),$A1:$D1,0) のようにね。 ≪注意≫  回答文では英数字を全角文字で入力していますのでコピーして使うときは留意してください。

piyo-maru7
質問者

お礼

申し訳ありません。実データが今手元にないのでうまく確認・再現することができません。 VLOOKUPを使って、必要なデータを引っ張ってくることはできます。おっしゃっている「比較したいセルがひとつ」というのがよくわかりませんでしたが、参照時の返り値はひとつで十分です。 ただ、参照後のもとのページではそのデータを持つ該当行を全体を赤くしたいのです。 書式条件式には=$B1=VLOOKUP(XXX)でよいのでしょうか?

関連するQ&A

専門家に質問してみよう