• 締切済み

エクセル2000での一致・不一致

エクセル2000での質問です。 AとBのファイル(表の形式は全く同じ)があるとします。 AとBを比較して”Aに対してBのXXのデータが合わない”等が分かるようにできろのでしょうか? 例)ファイルA  ファイルB   1       1   2       2   3       5 ならば、Aには”5”がなくてBには”3”がない事を抜き出すなり、別表にするなりの、何らかの方法で分かるようにしたいのですが・・・。

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>照合したいデータ同士が順不同で並んでいた場合や、 >ファイルAとファイルBのデータの数が違ってもこの方法は可能ですか? セル単位で比較しているだけですから基本的には可能です。 回答した方法は算式の貼り付け位置を、何か入力してある場所に限定しようとしていますので、ファイルCに多めに貼り付ければいいでしょう。 例えば、ファイルAはA1:B500、ファイルBがB2:C600を使っていれば、A1:C600に貼り付ければ違いを表示します。

RD17
質問者

お礼

いろいろとありがとうございました。 結局、Accessで取り込んだ後、不一致クエリで処理することにしました。 もともと片方のファイルはAccess→Excelへ書き出したものだったので・・・。 普段Accessしか使っていないので、どうもExcelにはなじめませんでした。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

「統合」を利用してはどうでしょう? 多少データ構成が変わりますがご容赦ください。 1.ファイルAをシート1に読み込みます。 2.列Aのみではできないので列Bに「1」をいれ、Aの行数全部にコピーします。 3.タイトルを以下のようにします 列A_列B 1 _ 1 2 _ 1 3 _ 1 こんな感じ(アンダースコアがセルの区切りとさせてください) 4.ファイルBをシート2に読み込みます。 5.ほぼ同様の処理でタイトルを以下のようにします(列Bは2を入力) 列A_列B 1 _ 2 2 _ 2 5 _ 2 6.シート3でセルA1を選択し、メニュー[データ]-[統合]をクリック。 7.「集計の方法」は「合計」 8.「統合元」でシート1のセルA1からB4を選択し「追加」ボタンクリック。 9.「統合元」でシート2のセルA1からB4を選択し「追加」ボタンクリック。 10.「統合の基準」で「上端行」「左端列」にチェックを入れる。 11.「OK」ボタンクリック。 12.シート3のA列に「コード」が、B列に「値」が入ります。 「値」が3の場合、ファイルA、ファイルBともに存在するコードです。 「値」が1の場合、ファイルAにのみに存在するコードです。 「値」が2の場合、ファイルBにのみに存在するコードです。 もうちょっと綺麗にできる方法がありそうですけどね。

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

ファイルというのは、エクセルではBOOKを保存した時に記録される形式だと認識しています。 1ブック1シートのブックに限る制約が有るようですが、 PRN形式で(スペース区切りで)Book1.prnとBook2.prnにシートのテキスト内容だけを保存したとします。VBEのModule1の画面に Sub test1() Open "book1.prn" For Input As #1 Open "book2.prn" For Input As #2 While EOF(1) = False Line Input #1, a$ Line Input #2, b$ If a$ <> b$ Then MsgBox a$ MsgBox b$ End If Wend Close #1, #2 End Sub を入力して実行すれば、違うものはMsgBoxに表示されます。 MsgBoxの部分をファイルに書き出すように書きなおせば、エクセルに再読み込みできてわかりやすく表示されるでしょう。 上記は旧DosBasicスタイルそのままで、識者はお笑いになるでしょうが、根本はファイルマッチングすれば良いと思ったので投稿しました。

RD17
質問者

補足

照合するデータ同士が順不同で尚且つデータ数が違う場合でも可能でしょうか?

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

マニュアルで比較する方法を考えてみました。 ファイルBをコピーしてファイルCとしておきます。ファイルCに照合結果を書いてみます。 ファイルA、ファイルB、ファイルCを全て開きます。 ファイルA、ファイルBのSheet1を照合する例です。 シートが複数あっても同様な手順を繰り返すだけです。 ファイルCのセルA1が空いている(未入力)とします。(A1が空いてなければ他を探します)  A1に   =IF([Book1]Sheet1!A1=[Book2]Sheet1!A1,"","違う "&ROW()&":"&COLUMN())   を入力します。A1に書き込むのでSheet1!A1のようにA1にします。  $A$1のように絶対番地参照になったら『$』を削除して下さい。  上の算式では、ファイルAを『Book1』、ファイルBを『Book2』としています。 (1)A1をコピーします。 (2)メニューから、編集→ジャンプ→ジャンプのダイアログでセル選択ボタン→定数 を選択してOK。 これで定数のセルが選択されたはずなので、Ctrl-V(貼り付けを実行) ファイルA、ファイルBの対応するセルの内容が違えば『違う 行番号:列番号』が表示されます。 (2)で定数セルだけか、他に算式のセルがあるか分かりませんが、算式を選択する場合は、ジャンプのダイアログでセル選択ボタン→数式 を選択してOKを押します。 上記は、セルに入力された場所に比較の算式を埋め込もうとしていますが、操作が複雑なら、ファイルCのA1の算式をファイルCの入力がある範囲にテキトーに貼り付けてみて下さい。 相違点は、  (ア)目で確認するか、または  (イ)算式の値をコピーして値として貼り付けしてソートする。または  (ウ)フィルタ→オートフィルタで空白以外のセル を表示 等で簡単に見つけることができるでしょう。 ご参考に。

RD17
質問者

補足

照合したいデータ同士が順不同で並んでいた場合や、ファイルAとファイルBのデータの数が違ってもこの方法は可能ですか?

関連するQ&A