- ベストアンサー
エクセルである文字列を含むもの(複数)を答えとして返したい。
エクセルである文字列を含むもの(複数)を答えとして返すことはできますでしょうか? 例)表(1)を元に、表(2)の文字を含むものを検索し、複数の答えを返したい。 表(1) No.1 株式会社大井 東京営業所 No.2 株式会社大井 大阪営業所 No.3 株式会社大井 名古屋営業所 No.4 株式会社中山 東京営業所 表(2) 大井 1.2.3 中山 4 どうぞ宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ユーザ定義関数を作ってみました。 Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 このマクロではSheet1のA列にNo.、B列に文字列が入っていると仮定しています。 シート名が違う場合は、"Sheet1"という部分を置きかえてください。 文字列が入っている列がB列でない場合は、"B1"の部分と"B"の部分を正しい列名に置きかえてください。 Function FindNo(T As String) As String Application.Volatile Dim R As Range Dim S As String With Worksheets("Sheet1") For Each R In .Range("B1", .Cells(Rows.Count, "B").End(xlUp)) If InStr(R.Value, T) > 0 Then S = S & Replace(R.Offset(0, -1), "No.", "") & "," End If Next End With If Len(S) > 0 Then S = Left(S, Len(S) - 1) End If FindNo = S End Function マクロを貼り付けたらVBAの画面は閉じてかまいません。 Sheet2のA列に検索文字列(大井、中山)が入っている場合、B1に =FindNo(A1) と入れると、1,2,3 というように表示されます。 あとはB1を下にコピーしてください。
お礼
ham_kamoさん、ありがとうございます!!! 書かれた通りのマクロをはりつけて、 作ったところ、ばっちりできました♪ 答えが出たときは、感動しましたp(^o^)q どうもありがとうございましたっっm(_ _)m