仕事で悩んでおります。要約して述べますと、A列には、
A列
りんご
みかん
キュウイ
ドラゴンフルーツ
マンゴー
・
・
・
と、膨大にデータが並んでおります。
そしてB列には、
B列
EEぶどうFF
IIIマンゴーKKKK
GGドラゴンフルーツHHH
AAAりんごBB
CCみかんDD
・
・
・
と、少し似たようなデータが膨大に並んでおります。
ここにおきまして、A列の文字列が、B列のどこかの行の文字列の一部に入っていれば、そのセルからデータを消したいのです。
つまり上記の例の場合、B列が、
B列
EEぶどうFF
(空白セル)
(空白セル)
(空白セル)
(空白セル)
・
・
・
となるようにしたいのです。(「りんご」「みかん」「ドラゴンフルーツ」「マンゴー」という文字列はA列の中に既に出てきていたので、B列の方からその文字列を含む該当セルはデータを消して空白セルにする)
そのような関数やマクロをご存知の方がいらっしゃいましたら、お教えいただけないでしょうか。
よろしくお願いします。
Sub Macro1() Dim a As Long Dim b As Range For a = 1 To Rows.Count If Cells(a, "A") = "" Then Exit For Set b = Columns("B").Find(Cells(a, "A")) If Not b Is Nothing Then c = b.Address b = "" Do Set b = Columns("B").FindNext(b) If b Is Nothing Then Exit Do b = "" Loop Until b.Address = c End If Next a End Sub
Dim ARow, BRow As Long
Dim lp1, lp2 As Long
ARow = Range("A1").End(xlDown).Row - 1
BRow = Range("B1").End(xlDown).Row - 1
If ARow < 0 Or BRow < 0 Then
Exit Sub
End If
For lp1 = 0 To BRow
For lp2 = 0 To ARow
If InStr(Range("B1").Offset(lp1), Range("A1").Offset(lp2)) > 0 Then
Range("B1").Offset(lp1) = ""
Exit For
End If
Next lp2
Next lp1
End Sub
適当に作ったので、質問文にあるサンプルデータでしかテストしていません。
マクロじゃないですけど、この関数を使うと A2とB2が等しいか出してくれる関数です。
参考になれば幸いです。
>かずきち。さん
コメントありがとうございます!
先に別の加工の疑問が生じまして。
お手数お掛け致しますがお時間ありましたらご回答よろしくお願い致します。
http://q.hatena.ne.jp/1413611963
http://q.hatena.ne.jp/1413612951