• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELでセル(文字列)と任意のシートの行を比較して結果を出力したいのですが・・・)

EXCELでセルと任意の行を比較して結果を出力する方法

このQ&Aのポイント
  • 質問者はEXCELで特定のセルのデータと行全体を比較して、一致する文字列を含んだセルを別のシートに出力したいという問題を抱えています。
  • 質問者が具体的に挙げた例では、C列の各セルとA行全体を比較して結果をD列に出力したいとしています。
  • 質問者は問題解決のために検索を試みましたが、うまくいかず、助言を求めています。

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

  • ベストアンサー
  • harapeco7
  • ベストアンサー率54% (33/61)
回答No.1

>実際のデータはファイルが別になっていてファイルAのC行とファイルBのB行のセル(200個くらい)との比較 検索対象となる列がファイルA,Bのどちらかが記述されていませんので、 下記の前処理を行って下さい。(行は1,2,3… 列はA,B,C… です。) 1.新規bookを作成する。 2.Sheet1のA列に検索対象(例でのA列)を貼り付けて下さい。 3.Sheet1のB列に検索する文字列(例でのC列)を貼り付けて下さい。 以上が済みましたら、下記マクロを貼り付け実行して下さい。 結果がSheet1のC列に表示されます。 ※マクロについて多少の知識(貼り付け~実行が出来る)が必要です。 ※出来るだけ解りやすく(修正しやすく)記述しましたが、不足分が有りましたら再度来ます。 Sub 検索()   Dim 検索範囲 As Range   Dim 検索完了数 As Integer   Dim 検索回数 As Integer   Dim 検索文字列 As String   Dim 検索結果 As Object   Dim 二週目確認 As String   Set 検索範囲 = Range("A1", Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1))   検索完了数 = Cells(Rows.Count, 2).End(xlUp).Row   Do     検索回数 = 検索回数 + 1     検索文字列 = Cells(検索回数, 2)     Set 検索結果 = 検索範囲.Find(検索文字列)     If Not 検索結果 Is Nothing Then       二週目確認 = 検索結果.Address       Do         If Cells(検索回数, 3) = "" Then           Cells(検索回数, 3) = 検索結果.Address         Else           Cells(検索回数, 3) = Cells(検索回数, 3) & "," & 検索結果.Address         End If         Set 検索結果 = 検索範囲.FindNext(検索結果)         If 二週目確認 = 検索結果.Address Then           Exit Do         End If       Loop     End If     If 検索回数 = 検索完了数 Then       Exit Do     End If   Loop   Set 検索範囲 = Nothing   Set 検索結果 = Nothing   Columns("C:C").Replace What:="$", Replacement:=""   Range("A1").Select   MsgBox "検索完了" End Sub

val1113
質問者

お礼

こんなに細かく回答がいただけるとは思っても見ませんでした。 どうもありがとうございます。 質問の仕方とかもう少し詳しく書いたほうがよかったですか。 すみません。勉強します。 でも、これで何とかなりそうです。 harapekoさん ありがとうございます。

関連するQ&A