• 締切済み

【エクセルの関数】で文字列を比較が解りません

パソコン初心者です。エクセルのA列に住所、B列に番地が入っているファイル11と別ファイルのA列に住所と番地入っているデ-タを比較して、一致したらファイル11のF列に”1”を表示させたいのですが教えていただけませんでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問文には、あいまいにならないように場合を分けて、対比して、書けないですか。 >エクセルの、 ブックA(ファイル11という名?)のSheet1の A列 住所(漢字) B列 番地(全角か、丁目番地か、具体例を書かないと。本件では不要でも書くものだ) ブックB(>別ファイルと書かないで、具体名を書くものだ)のSheet1の・・ ーー >デ-タを比較して ブックAとブックBで A列住所が一致 かつ!(AND条件) B列番地 が一致している場合 >ブックA(ファイル11)のF列に1を表示 ーーー ブックAのF列の F1に =IF(AND(A1=ブックBのA1,B1=ブックBのB1),"1","") -- 問題はブックBのSheet1のセルの表し方だが [ブックBのブック名]Sheet1!A1 もっと一般的には http://www.excel-jiten.net/formula/ref_other_books.html の最後の「直接数式を入力する」を参照 「他ブック参照」でWEB照会すれば、説明は沢山ある。 ーー 他ブック参照はそのブックを開いておくこと。 http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200703/07030155.txt

全文を見る
すると、全ての回答が全文表示されます。
  • kuma3f
  • ベストアンサー率63% (28/44)
回答No.3

思われているここと違っていましたらすみませんが、参考までに次のコードをファイル11のマクロに貼り付けて実行してみてください。 A列に住所と番地が入っている別ファイルのファイル名を聞いてきますのでブック名を入力してください。(Book2ならBook2を入力) A列に住所と番地が入っている別ファイルは、ファイル11と同じフォルダーに入れて実行してください。(開く必要はありません) 元を壊してはいけないので、Bookをコピーして試してみてください。 ファイル11のメニューバーの「ツール」→「マクロ」→「マクロ」をクリック  ↓ マクロのダイアログが表示されたらマクロ名に自由に名前を入力してください。(例:比較)  ↓ 名前を入力しましたら、「作成」をクリック  ↓ Microsoft Visual Basicの画面が開きますのでSub 比較()の下に次のコードをコピーして貼り付けてください。 '<定義> Dim パス名, ファイル11, 別ファイル名, 別ファイル As String Dim ファイル11シート名, 別ファイルシート名 As String Dim ファイル11住所, 別ファイル住所 As String Dim ファイル11カウント, 別ファイルカウント As Long Dim ファイル11最大件数, 別ファイル最大件数 As Long '<ファイルのオープン> パス名 = ActiveWorkbook.Path & "\" ファイル11 = ActiveWorkbook.Name ファイル11シート名 = ActiveSheet.Name 別ファイル名 = InputBox("A列に住所と番地入っている「別ファイルのファイル名」を入力して下さい。") 別ファイル = パス名 & 別ファイル名 & ".xls" Application.ScreenUpdating = False Workbooks.Open Filename:=別ファイル 別ファイルシート名 = ActiveSheet.Name Workbooks(別ファイル名).Sheets(別ファイルシート名).Select Workbooks(別ファイル名).Sheets(別ファイルシート名).Range("A65536").End(xlUp).Select 別ファイル最大件数 = ActiveCell.Row Workbooks(ファイル11).Activate Workbooks(ファイル11).Sheets(ファイル11シート名).Select Workbooks(ファイル11).Sheets(ファイル11シート名).Range("A65536").End(xlUp).Select Workbooks(ファイル11).Sheets(ファイル11シート名).Range("F1:F65536").ClearContents 'F列クリア ファイル11最大件数 = ActiveCell.Row '<住所の比較> ファイル11カウント = 1 別ファイルカウント = 1 Do 別ファイルカウント = 1 Do ファイル11住所 = StrConv(Trim(Workbooks(ファイル11).Sheets(ファイル11シート名).Cells(ファイル11カウント, 1) & _ Workbooks(ファイル11).Sheets(ファイル11シート名).Cells(ファイル11カウント, 2)), vbWide) 別ファイル住所 = StrConv(Trim(Workbooks(別ファイル名).Sheets(別ファイルシート名).Cells(別ファイルカウント, 1)), vbWide) If ファイル11住所 = 別ファイル住所 Then Workbooks(ファイル11).Sheets(ファイル11シート名).Cells(ファイル11カウント, 6) = "1" 'F列 End If 別ファイルカウント = 別ファイルカウント + 1 Loop Until 別ファイルカウント > 別ファイル最大件数 ファイル11カウント = ファイル11カウント + 1 Loop Until ファイル11カウント > ファイル11最大件数 '<ファイルのクローズ> Workbooks(別ファイル名).Activate Workbooks(別ファイル名).Sheets(別ファイルシート名).Select ActiveWorkbook.Close False 'ファイルのCLOSE Application.ScreenUpdating = True Workbooks(ファイル11).Activate Workbooks(ファイル11).Sheets(ファイル11シート名).Select MsgBox "比較が終了しました。 " '****コピー貼り付けはここまで **** Microsoft Visual Basicの画面を×で閉じます  ↓ Excel画面のメニューバーの「ツール」→「マクロ」→「マクロ」をクリック  ↓ 先ほど名前を付けたマクロを選択して「実行」をクリック 完全に一致していないとF列には1が入りませんのでご了承ください。(ただし数字の半角、全角は問題ありません)

全文を見る
すると、全ての回答が全文表示されます。
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.2

余計なことかもしれませんが、補足です。BOOK1に式を入れてBOOK2のデータと比較したい場合、 EXACT関数の引数は、 =EXACT(C1,[Book2]Sheet1!$C1) のような感じです。(C列に=A1&B1として文字列結合している場合) 上の式を入力する場合はフルパスを手入力してもかまいませんが、 =EXACT(C1, まで入力したら、Book2のSheet1を選択し、C1セルをクリックしてEnterキーを押すと、 =EXACT(C1,[Book2]Sheet1!$C$1) と入力されるので、あとは$C$1を$C1に直してあげれOKです(そうしたのは絶対参照を相対参照にし、下にコピーする際の準備の為)※C1としても問題ないと思います。

soukaku_1
質問者

補足

申し訳ありません、BOOK1とBOOK2のデ-タは同じものではなく行番号は最初から3行があっているだけで、後は順番が違ったり、BOOK飲みのもの・()や<>の記号がついたものもありました。 回答を頂いた式はOKでした。 よろしかったら追加で、ご教授をお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

EXACT関数をつかえばOKかと。 EXACT(文字列1,文字列2)の形で2つの文字列を比較して、同じものならTRUE,違っていればFALSEを返します。 質問内容ですと、どこかの列に作業列をつくって、=A1&B1 ように文字列結合をして、それで比較するのが簡単です。また、TRUEの場合セルに1と表示させるにはIF関数で =IF(G1=TRUE,1,"") などとすればいいと思います(G列にEXACT関数の式が入っている場合の例です)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel比較関数について教えてください。2

    下記のようにA列とC列を比較して、 一致した値が存在する場合、B列とC列を比較して、 E列に全て一致した場合は○、一致しない場合は×にしたいのですが教えてください。 また、A列にあってC列にない場合は、×を表示したいです。 A列 B列 C列 D列 E列 1 12345 aaa 12389 aaa A1とA3が一致&B1とD3が一致したので○ 2 12389 bbb 22222 bbb A2とC1が一致したが、B2とD1が一致しないので× 3 33333 bbb 12345 aaa A3の値がC列にないので空欄 教えてください。

  • Excelの関数を使って比較したいのですが。

    関数超初心者です。 Excelを使って、A列とB列の金額を比較し、 小さいほうの金額をC列に表示させるようなにしたいのですが、 どういう関数を使ったらよいのでしょうか? よろしくお願いします。

  • Excel比較関数について教えてください。

    下記のようにA列とC列を比較して、 一致した値が存在する場合、B列とC列を比較して、 E列に一致した場合は、●一致しない場合は、空欄にしたいのですが教えてください。 A列 B列 C列 D列 E列 12345 aaa 12389 bbb A2と一致したので● 12389 bbb 22222 bbb 一致しないので空欄 33333 bbb 12345 aaa A1と一致したので●

  • EXCELでセル(文字列)と任意のシートの行を比較して結果を出力したいのですが・・・

    初投稿させていただきます。宜しくお願い致します。 office系のソフトは初心者で何とかならないものかと悩んでます。 excelで特定のセルのデータと行全体を比較して、一致する文字列を含んだセルを返してほしいのです。 それを各セルごとに行い、まとめて別のシートに出力させることは可能でしょうか? たとえば   A    B    C 1 あい  い   う 2 いか  う   えい 3 うみ  え   お 4 えい  お   か 5 うさ  か   き があって Cの各セルとA行全体を比較して結果を別に出力  ・・・ D 1    A3,A5 2    A4 3 4 5 ない場合は空白でも×でもいいのですが こんな感じにできないでしょうか。 実際のデータはファイルが別になっていてファイルAのC行とファイルBのB行のセル(200個くらい)との比較といった感じです。 いろいろ調べては見たのですが、うまくいかず・・・ 欲張った内容かも知れません。 すみませんがどなたかいい方法を教えて頂けませんか。

  • エクセル2つのブック列の比較 VBAや関数について

    Aと言うブックとBと言うブックがあるとして、 Aのブックは共有ファイルではなく、Zサーバー上にあるエクセルファイルです。 Aのブックに色々な人が行の挿入、商品名の書き換え等をしていて、いつ挿入されたのかが分からないため、VBAや関数を使って調べたいのですが、 Aのブックは10シートあり、サイズ別で行も並べられているため、新しい情報を特定するのが困難です。 BのブックはAと同じシート名を作り、必要箇所だけコピーしているデータです。(オリジナルブック) やりたいことは、Aのブックから探してBのブックに追加されていない情報、一致していない情報があれば、色を付けてわかりやすくするか、Bのブックの新しいシートに結果を出すようなことがしたいのですが、可能でしょうか? AのブックはA列-IC列まであるのですが、必要な部分は全シートB列(商品コード)とE列(商品名)のみです。 Bのブックには同じシート名にして、A列に商品コード、B列に商品名としております。 AのブックのB列、E列を参照して、BのブックのA列、B列になければ、結果を表示したいです。 もし出来る方法があれば、教えてほしいです。 今はシートごとに左右比較して、見ていってるのですが、10シートの中に、行数は2000行くらいあるため、それで半日おわってしまいます。 もし分かるかた、マクロを組める方がいれば教えて頂きたいです。宜しくお願い致します。

  • 文字列間にスペースを入れる関数はある?

    Excelについて質問です。 住所管理ファイルを作っています。 例えばセルA1に都道府県、B1に市区町村番地、C1にマンション名を入力してそれらを結合してD4に表示させたいと思っています。 D4にCONCATENATE関数を使えば結合して表示できるのですが、詰めて表示してしまいます。 市区町村番地とマンション名の間にスペースをつけたいと思っているのですが、スペースを入れる関数などはありますでしょうか?

  • Excelで2つの列の内容を1つの列に

    Excel2003ですが、A列に住所名、B列に1-○○-40のように番地が入っています。 このB列の番地をA列の住所の後に続けたいのですが、データが何千件もあるので一気にできる方法ありますか? よろしくお願いします。

  • Excelマクロでセルの比較

    Excelマクロでセルの比較 まだマクロ初心者なので、詳しいことがわからなくて困っております。 例)●前提として何行目まであるかは変化します     (A列)(B列) (1行目) 35  35 (2行目) 26  26 (3行目) 13  13 (n行目) 12  12 ※n=最終行 【やりたいこと】 このようにシートに入力されていたとして、 「A1=B1?」⇒「A2=B2?」⇒「A3=B3?」⇒「An=Bn?」と比較を進めていき不一致の有無を出す。 もし不一致がなければ、そのまま通過しその次のマクロを実行していく。 不一致があった場合には、不一致の行を別ファイルに出力してファイル保存し、ファイルを閉じる。 マクロを実行している元のファイルは、保存せずにファイルを閉じる) 行の長さが変化するため、その変化にも対応した処理を実行したいと思っております。 本やサイトで調べてみたのですが、基礎知識がないためうまく処理をさせるマクロを作ることが出来ませんでした。 このようなマクロが可能なのかもわかりませんが、出来ましたらこのマクロを教えていただけますでしょうか。 宜しくお願いいたします。

  • エクセルの関数についての質問です。エクセルは2003です。

    エクセルの関数についての質問です。エクセルは2003です。 A列とB列とC列には数字(金額)が入っております。 A列とB列を比較して一致するものには○(マル) 不一致には×(バツ)を付けるにはIF関数で倫理式にA=B 真の場合に○ 偽の場合に× と設定すれば出来ると思うのですが A列とB列とC列の3つの列を比較してD列に○×を付けたいのですが方法が 分かりません。A列とB列が同じでもC列がAとBと違うなら×というように 3つの列が同じ場合のみ○ どれかひとつの列で違うなら×と表示させたい のです。素人ですので伝えにくいですが宜しくお願い致します。

  • Excel 列と列の比較

    過去の質問を調べたのですが、分からなかったので教えてください。 ExcelでA列とB列を比較し、A列にもB列にもなかった数字を抽出したいです。 具体的には、 A列 B列 101 101 102 103 104 105 105 106 106 107 という値だと、 102 103 104 107 という数字を、C列とかに抽出したいのですが、どうすれば良いか分かるでしょうか?

このQ&Aのポイント
  • DCP-J940Nで紙詰まりが続くトラブルに悩んでいますか?適切な対処法をご紹介します。紙送りのローラーの清掃やインクの動かし方について詳しく解説します。
  • Windows10環境で無線LAN接続しているDCP-J940Nが紙詰まりで印刷できない問題に遭遇しましたか?解決するための手順をご紹介します。
  • DCP-J940Nの紙詰まりトラブルを解決する方法を知りたいですか?紙送りのローラーの清掃やインクの動かし方を丁寧に解説します。また、無線LAN接続の際の注意点もご紹介します。
回答を見る

専門家に質問してみよう