- ベストアンサー
エクセルでデータを照合したいのですが。
こんにちは。 早速ですが、例えば、エクセルのファイルAに英単語を入力したファイルがあります。 そして、別のファイルBには、英文が入力してあります。(どちらも結構な量) そこで、ファイルAの英単語が、ファイルBの英文にすべて含まれているかどうかチェックしたいのですが、そのようなフリーソフト、もしくはエクセル自体の機能があれば教えていただければ助かります。 結果は含まれていない単語が抽出されれば一番いいのですが。 それでは宜しくお願い致します。
- みんなの回答 (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
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
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") 大変失礼しました。
お礼
keithinさま ご丁寧な回答をありがとうございました。 早速試してみます。 また何か質問があるときぜひよろしくお願い致します。
- keithin
- ベストアンサー率66% (5278/7941)
状況: 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」を絞り込む 言わずもがなですが,あなたの正しいブック名(拡張子も正しく確認),シート名を見ながら正しい数式をあなたがご自分で作成しないと,ちゃんと答えにならないので気をつけて作業して下さい。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
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]マクロの実行 #マクロは苦手なので、もっと良い方法があるかもしれません。
お礼
CoalTarさま お忙しいところ早速ありがとうございました。 私はマクロはまったくわからないので、書いてくださったプログラムでやってみます。 ありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
SEARCH関数で#VALUE!と表示される単語が含まれていない単語です。
お礼
JazzCorpさま どうもありがとうございます。 とても助かりました。 マクロができると便利ですね。私はまったくダメなので 皆さまのお力を借りながらですがやってみます。 ほんとにありがとうございました。