• 締切済み

エクセル 照合

エクセルの照合についておしえてください。 Sheet1   A   B 1 ○   バラ 2 ★   ユリ と入力してあり、 Sheet2のどこかの2つのセルに ○ バラ と入力されていれば、 sheet1の ○ バラ の文字色が変わるようにしたいのです。 宜しくお願い致します。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

NO1です。 恐縮です、括弧が足りませんでしたので以下の通り訂正します。 =(COUNTIF(aaa,$A1))*(COUNTIF(aaa,$B1))

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

A No.2です。 >2行目2列目まではうまくできたのですが、 それは、そういうコードになっているからです。 For i = 1 To 2 のところで、2行目までしか処理していませんので。 Sheet1の構造が分かりませんので、基本的な考え方を提示したのみですので、このあたりは、環境に合わせて変更してください。 最終行が固定なら、2の代わりに最終の行の番号を入れていれれば良いですし、 A列に、他に何もデータが入っていなければ、上記の代わりに For i = 1 To Application.WorksheetFunction.CountA(Sheets("Sheet1").Range("$a:$a")) に変更してください。 データの範囲の自動認識の仕方は色々ありますので、”最終セル”とかで検索してお調べ下さい。

ayacojun2
質問者

お礼

ありがとうございました!できました!!

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

別解で、マクロ使用版です VBAのヘルプにある、Findの使用例を改造しました。 Sub test() Dim i As Long Dim firstRange As Range Dim secondRange As Range Dim c As Range Dim firstAddress As String For i = 1 To 2 Set firstRange = Sheets("Sheet1").Cells(i, 1) Set secondRange = firstRange.Offset(0, 1) With Worksheets("Sheet2").UsedRange Set c = .Find(firstRange.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then firstAddress = c.Address Do If c.Offset(0, 1).Value = secondRange.Value Then firstRange.Font.ColorIndex = 5 secondRange.Font.ColorIndex = 5 End If Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With Next i End Sub 少量のデータで試験しましたが、多量のデータになると、速度の方は心配です。なお、当方Excel2000です。

ayacojun2
質問者

補足

実行してみたのですが、 2行目2列目まではうまくできたのですが、 それ以降がうまくできませんでした。 アドバイスお願いできますでしょうか。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 (1)Sheet2の全セルを選択→名前ボックスに任意名(仮にaaaとします)を入力 (2)sheet1の対象セル範囲を選択→書式→条件付き書式→「数式が」を選択、数式欄に=(COUNTIF(aaa,$A1)*(COUNTIF(aaa,B1))→書式→フォントタブの色欄で任意色を選択→OK

ayacojun2
質問者

補足

ありがとうございます。 でも)の数が足りない?のでしょうか。 うまくできません・・・。 アドバイスお願いします。

関連するQ&A