• 締切済み

複数の条件で他のシートを検索する

先日教えてくださった方々ありがとうございました。 また質問なんですが、先生方知恵を貸してください。 sheet1 A | B | C | D | E | F | G ======================= 1 | 2 | 3 | AA | BB | 00 | 空欄 1 | 2 | 3 | BB | CC | 11 | 空欄 2 | 3 | 4 | CC | AA | 22 | 空欄 5 | 6 | 7 | BA | CA | 12 | 空欄 sheet2 A | B | C | D ========================== AA | BB | 00 | 3 AD | C | 01 | 4 BB | CC | 11 | 2 CC | AA | 22 | 4 CA | BA | 20 | 5 BA | CA | 12 | 1 このように入力されています sheet1のDEFに完全に一致する組み合わせをsheet2のABCから探し Dをsheet1の空欄Gに出力させる さらにそのGと一致するsheet1のABCがあれば文字色を変える というものです。 分かり難いですが、教えてください。 関数のVLOOKUPで出力までは出来たのですが、 文字色を変えることが出来ませんでした。 マクロで全部やってしまった方が早そうなので知恵をお貸しください。 。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

どうしても VBAマクロでってことなら # 字下げには全角スペースを使っています Sub Macro1()   dim s1(1 to 6) as String, s2 as string   dim n as integer, m as integer, k as integer   for n=1 to 6     ' シート2の検索データを文字配列に構築     s1 = Sheet2.Cells(n,1).value & Sheet2.Cells(n,2).value _       & Sheet2.Cells(n,3).value   next   for n=1 to 4     ' Sheet1のD:Fを文字列のする     s2 = Sheet1.Cells(n,4).value & Sheet1.Cells(n,5).value _       & Sheet1.Cells(n,6).value     for m= 1 to 6       ' 文字配列と文字列を比較       if s1(m) = s2 then         ' 一致データがあったら         Sheet1.Cells(n,7).value = Sheet2.Cells(m,4).Value         for k=1 to 3           ' Sheet1 A:Cを検索する           if Sheet1.Cells(n,k).value = SHeet1.Cells(n,7).Value then             ' 一致するセルがあった場合 フォントの色を変更             Sheet1.Cells(n,k).Font.Color = RGB( 255, 0, 0 )             ' 複数一致するセルがあるなら Exit forをコメントアウト             exit for           end if         next         exit for       end if     next   next End Sub といった具合でしょう … 表の中のデータが変わるのであれば 数式で解決したほうが良いと思いますよ

TIMSYD
質問者

お礼

遅くなってすいません。 結局数式で行うことにしました・・。 データに統一性がないというのはこんなに大変だとは↓ ありがとうございました!

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

数式と条件付書式でやったほうが楽ですよ たとえば G1の数式ならsumproductを使って抽出します =SUMPRODUCT((Sheet2!$A$1:$A$6&Sheet2!$B$1:$B$6&Sheet2!$C$1:$C$6=D1&E1&F1)*1,Sheet2!$D$1:$D$6) とします G1:G4を選択 F2をおして Ctrl+Enterで数式をコピーします A1を選択して 書式 > 条件付き書式で 『セルの値が』『次の値と等しいとき』『=$G1』としOK A1を選択した状態で ツールバーの刷毛のようなマーク『書式のコピー/貼り付け』をクリック その状態で B1,C1を選択 で書式のみコピーします 同様に A1:C1を選択して 先ほどのアイコンをクリック A2:C4を選択するようにしてください 以上ですが …

関連するQ&A

専門家に質問してみよう