- ベストアンサー
Excelで、同一データ行を知るには
Excel2000で、 A列からD列までまったく同じデータの場合、色をつけてくれる方法を教えてください。 例えば、 A20=A100 かつ B20=B100 かつ C20=C100 かつ D20=D100 の場合、同じデータとして、20行目と100行目に色をつけるようにしたいです。 次善の策として、 A列からD列だけでなく、E列以降もすべてまったく同じデータの場合でもいいです。 なお、ソートしたり、行の順番を変えるのはナシにしてください。 また、A列からD列のデータをくっつけるのも、できれば避けたいです。(それぞれの列を比較して異なる場合でも、くっつけたら同じになる場合もありうるので。)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAでやってみました。 Sub test() X = Cells(1, 1).SpecialCells(xlLastCell).Row For i = 1 To X For n = 2 To X If Cells(i, 1) = Cells(n, 1) And i <> n Then If Cells(i, 2) = Cells(n, 2) And i <> n Then If Cells(i, 3) = Cells(n, 3) And i <> n Then If Cells(i, 4) = Cells(n, 4) And i <> n Then Rows(i).Interior.ColorIndex = 3 Rows(n).Interior.ColorIndex = 3 End If End If End If End If Next n Next i End Sub これで出来るはずです。 標準モジュールに上記VBAコードをコピー&ペーストして実行してみてください。
その他の回答 (2)
- gloomie
- ベストアンサー率16% (24/146)
基準となるデータは一つなのでしょうか? それともデータがたくさんあってその中で重複するデータを見つけたいということでしょうか? >色をつけてくれる方法を教えてください ということですがこの作業自体は「条件付き書式」で可能です。 >A列からD列だけでなく、E列以降もすべてまったく同じデータの場合でもいいです すみません、自分はいまいち理解できません。 E列以降もと書いてありますが何列までデータがあるのかわからないので具体的に回答は出てこないと思います。 (自分の読解力がないだけかもしれませんが・・・)
お礼
ご回答ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 >また、A列からD列のデータをくっつけるのも、できれば避けたいです。 >(それぞれの列を比較して異なる場合でも、 >くっつけたら同じになる場合もありうるので。) だったら、適当な区切り文字を入れて連結すればいいのでは? =A1&"_"&B1&"_"&C1&"_"&D1 という感じで。 (区切り文字は、A~D列で使用しない文字にします。) 連結なしでやるとなると、SUMPRODUCT関数を使用した配列数式になるので、 データが多いと非常に重くなりますよ。
お礼
非常にレスが遅くなり申し訳ありません。 このご回答はとてもよいと思い、実際にやってみました。 最初、ひとつのセルに、ご回答のような式を入れるのは、別に問題なくうまくいきました。 しかし、それを別のセルに貼り付けたら、 「このブックで、これ以上新しいフォントは設定できません。」 というエラーが出ました。 複数のフォントが混ざっているせいかもしれません。 ありがとうございました。
補足
ありがとうございました。できました。 >標準モジュール というのは、 ツール-マクロ-Visual Basic Editor VisualBasicEditorの画面で、メニュー[挿入]-[標準モジュール] ですね。 試したら、処理は3分くらいで終了しました。 (データの量やパソコンによるんでしょう。 私の場合、Excelで1400行以上あって、パソコンは半年前くらいに買ったものですが。)