• ベストアンサー

エクセルである文字列を含むもの(複数)を答えとして返したい。

エクセルである文字列を含むもの(複数)を答えとして返すことはできますでしょうか? 例)表(1)を元に、表(2)の文字を含むものを検索し、複数の答えを返したい。 表(1) No.1 株式会社大井 東京営業所  No.2 株式会社大井 大阪営業所 No.3 株式会社大井 名古屋営業所 No.4 株式会社中山 東京営業所 表(2) 大井 1.2.3 中山 4 どうぞ宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.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を下にコピーしてください。

yuika1103
質問者

お礼

ham_kamoさん、ありがとうございます!!! 書かれた通りのマクロをはりつけて、 作ったところ、ばっちりできました♪ 答えが出たときは、感動しましたp(^o^)q どうもありがとうございましたっっm(_ _)m

関連するQ&A