• ベストアンサー

エクセルでデータを照合したいのですが。

こんにちは。 早速ですが、例えば、エクセルのファイルAに英単語を入力したファイルがあります。 そして、別のファイルBには、英文が入力してあります。(どちらも結構な量) そこで、ファイルAの英単語が、ファイルBの英文にすべて含まれているかどうかチェックしたいのですが、そのようなフリーソフト、もしくはエクセル自体の機能があれば教えていただければ助かります。 結果は含まれていない単語が抽出されれば一番いいのですが。 それでは宜しくお願い致します。

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

  • ベストアンサー
回答No.5

条件: A列:単語 B列:テキスト 検出されなかった単語の文字色:白、背景色:黒にする。 Sub PaintItBlack() Const PaintItBlack = 1 Const PaintItWhite = 2 Dim wwText Dim wText Dim xText Dim wMaxRow As Long Dim xMaxRow As Long wMaxRow = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row xMaxRow = Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row For Each wText In Range("A1 : A" & wMaxRow) wText.Font.ColorIndex = PaintItBlack wText.Interior.ColorIndex = PaintItWhite Next wText For Each xText In Range("B1 : B" & xMaxRow) For Each wText In Range("A1 : A" & wMaxRow) wwText = "*" & wText.Value & "*" If xText.Value Like wwText Then wText.Font.ColorIndex = PaintItWhite wText.Interior.ColorIndex = PaintItBlack End If Next wText Next xText End Sub

nori_nara
質問者

お礼

JazzCorpさま どうもありがとうございます。 とても助かりました。 マクロができると便利ですね。私はまったくダメなので 皆さまのお力を借りながらですがやってみます。 ほんとにありがとうございました。

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

ANo.3ですが,ゴメンナサイ,うっかり誤記がありました。 間違い: B2に =IF(COUNTIF([BookA.xls]Sheet1!A:J,A2),"","NOT IN USE") 訂正: B2に =IF(COUNTIF([BookA.xls]Sheet1!A:J,"*"&A2&"*"),"","NOT IN USE") 大変失礼しました。

nori_nara
質問者

お礼

keithinさま ご丁寧な回答をありがとうございました。 早速試してみます。 また何か質問があるときぜひよろしくお願い致します。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

状況: Aブック.xlsのシート1のA列に英単語が記入してある Bブック.xlsのシート1のA列からJ列に(まぁA列だけでももちろんイイですけど)に英文が記入してある 手順: Aブック,Bブックを両方とも開いておく。 AブックのA1に「単語」と記入しておく B1には「含まれているか」と記入しておく B2に =IF(COUNTIF([BookA.xls]Sheet1!A:J,A2),"","NOT IN USE") と記入,リスト下端までコピー貼り付ける オートフィルタを取り付けて使われていない行を絞り込み,ふつーに選んでコピーしてシート2に貼り付けて抽出完了。 オートフィルタが判らない? データメニュー(データタブ)のフィルタでオートフィルタを取り付ける。セルにくっついた▼をプルダウンして「Not in use」を絞り込む 言わずもがなですが,あなたの正しいブック名(拡張子も正しく確認),シート名を見ながら正しい数式をあなたがご自分で作成しないと,ちゃんと答えにならないので気をつけて作業して下さい。

回答No.2

1. 新しいブックのSheet1のA列に英単語、Sheet2に英文を入れます 2. Sheet2は区切り位置 [レ]スペース として一つのセルに一つの単語が入るとします 3. [Alt]+[F11]でVBEを開き、挿入 - 標準モジュール に下記を張り付けます Sub 英単語を置換する()   Dim n As Long   Dim s As String   Sheets("Sheet1").Select   Sheets("Sheet2").Cells.Replace What:=".", Replacement:="", LookAt:=xlPart   For n = 1 To Range("a" & Rows.Count).End(xlUp).Row     s = Range("a" & n).Text     Sheets("Sheet2").Cells.Replace What:=s, Replacement:="", LookAt:=xlWhole   Next n   Sheets("Sheet2").Select   Cells.Select   Selection.SpecialCells(xlCellTypeBlanks).Select   Selection.Delete Shift:=xlToLeft   Selection.SpecialCells(xlCellTypeBlanks).Select   Selection.Delete Shift:=xlUp End Sub 4. Sheet1に戻り[Alt]+[F8]マクロの実行 #マクロは苦手なので、もっと良い方法があるかもしれません。

nori_nara
質問者

お礼

CoalTarさま お忙しいところ早速ありがとうございました。 私はマクロはまったくわからないので、書いてくださったプログラムでやってみます。 ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

SEARCH関数で#VALUE!と表示される単語が含まれていない単語です。

関連するQ&A