- ベストアンサー
EXCELでセルと任意の行を比較して結果を出力する方法
- 質問者はEXCELで特定のセルのデータと行全体を比較して、一致する文字列を含んだセルを別のシートに出力したいという問題を抱えています。
- 質問者が具体的に挙げた例では、C列の各セルとA行全体を比較して結果をD列に出力したいとしています。
- 質問者は問題解決のために検索を試みましたが、うまくいかず、助言を求めています。
- みんなの回答 (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
お礼
こんなに細かく回答がいただけるとは思っても見ませんでした。 どうもありがとうございます。 質問の仕方とかもう少し詳しく書いたほうがよかったですか。 すみません。勉強します。 でも、これで何とかなりそうです。 harapekoさん ありがとうございます。