マクロもありですか?まさにマクロでやるようなことだと思いますので…。
関数だけでやるのは困難だと思います。
検索用のシートのA1セルにキーワードを入れます。
そのキーワードを元に別シートのA列を検索しています。
この例では持ってくるデータは別シートのA列とB列です。
その辺は適宜修正してください。
エクセルが2003以降でしたら下記を修正します。
Set tmp = Sheets("別シート").Columns(1).Find(a, , xlWhole)
ここを、Set tmp = Sheets("別シート").Columns(1).Find(a, , , xlWhole)に変更
*カンマがみっつです
Sub 検索()
Dim tmp As Range
Dim y As Integer, a, firstAddress
'***** 結果を表示する部分をクリアします
Sheets("検索用シート").Range("A2:B65536").ClearContents
'***** キーワードを取得
a = Sheets("検索用シート").Range("A1")
'***** キーワードを含むデータを検索
Set tmp = Sheets("別シート").Columns(1).Find(a, , xlWhole)
If tmp Is Nothing Then
'***** 見つからない場合
Sheets("検索用シート").Range("A2") = "一致するデータはありません"
Else
'***** 見つかった場合
firstAddress = tmp.Address
y = 2
'***** 他にもあるか探してあれば記載
Do
Sheets("検索用シート").Range("A" & y) = tmp
Sheets("検索用シート").Range("B" & y) = tmp.Offset(0, 1)
Set tmp = Sheets("別シート").Columns(1).FindNext(tmp)
y = y + 1
Loop Until tmp.Address = firstAddress
End If
End Sub
別シートにあるデータが例えばA列に上から
東京・東京都・大阪・大阪府・・・・
とはいっていて、東京を検索したら東京・東京都を持ってくるというイメージですが、合ってます?
お礼
ありがとうございました xlPartで 無事に解決しました おかげで助かりました