Excelでファイル名が同じで更新日付の異なる2つのファイルがあります。
この2つのファイルで内容が変わっている部分を知りたいのですが、良い方法はあるでしょうか?
(もしくは内容が変わっているかどうかだけでも知りたい)

比較が必要なファイルが大量にあるため、一つずつ見比べる時間が無く、困っています。

このQ&Aに関連する最新のQ&A

アンサープラス

当時はなかった機能かもしれませんが、Excel2013では「スプレッドシート検査」で違っている部分をセルごとに表示できるようです。



・スプレッドシート検査を使ってできること - Office のサポート
https://support.office.com/ja-jp/article/%E3%82% …

A 回答 (2件)

使ってないのでお勧めはわかりませんが、こちらのフリーソフトを試してみては?


http://search.vector.co.jp/search?query=excel+%9 …
    • good
    • 9

2つのブックの名前をそれぞれ uniballeye1.xls、uniballeye2.xls と仮定します。



新規ブック newbook.xls のセル A1 に式 =[uniballeye2.xls]Sheet1!A1=[uniballeye1.xls]Sheet1!A1 を入力して、このセルに次の[条件付き書式]を設定します。

“セルの値が” “次の値に等しい” “FALSE”
書式: パターン色を赤

セル A1 を右方向にズズーッと好きなだけ(例えばセル Z1 まで)コピーします。
範囲 A1:Z1 を下方向にズズーッと好きなだけコピーすると、真っ赤に燃えるようなセルが内容が異なる部分ということです。
    • good
    • 47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelの文書比較

2つのExcelの文書のどの箇所が違っているのか「比較」したいのですが、Windows 7にはそのようなアイコンがないように思います。
(Excelのバージョンが分からなくてすみません。Windows 7が出た後すぐの冬に購入しました。)

他の方の回答で、

***
リボンには「ブックの比較と反映」コマンドはありませんので、次のように操作して、「クイックアクセス ツールバー」に追加してください。

[Office ボタン]→[Excel のオプション]→[ユーザー設定]→[すべてのコマンド]→[ブックの比較と反映]→[追加]→[OK]の順にクリックします。
***

とあり、その通りに操作してみたのですが、アイコンが薄い色になったままで、2つの文書をスクリーン上に出しても、比較することができません。

「リボン」とは、Excelの画面の左上に出る箇所のことでしょうか。
「フロッピー」「矢印2つ」の横に、「丸いアイコン(比較用?)」が出ていますが、丸いアイコンは薄い色のままです。

文書の比較の方法を教えていただけたらありがたいです。

Aベストアンサー

エクセルには,原則として2つのブックを「比較」したり「反映」する機能は『ありません』。

唯一できることは,
1.まずオリジナルブックを校閲タブの「ブックの共有」で共有ブックとして保存しておく必要があります
2.共有ブックのコピーを取ります
3.コピーした共有ブックに別の編集をします
4.共有ブックを開き,別途編集されたジブンのコピーと「ブックの比較と反映」をします
という段取りを踏む必要があります。


共有ブックにしておかなかった2つのブックを,後付で比較と反映する方法はありません。

ただ,敢えてやってみるとすれば
1.オリジナルブックを共有にして保存し直す
2.そのコピーを作成する
3.いま「比較」したい別のブックを開き,コピー共有ブックの対応するシートに内容を丸ごとコピーして貼り付ける
4.貼り付け終えたコピー共有ブックを保存し,オリジナル共有ブックに比較反映してみる
といった手間をしてみる手はあるかもしれません。



#むしろ,下記などで幾つか見つかる「比較ソフト」を使ってみた方が,簡単と思います。
http://www.vector.co.jp/vpack/filearea/win/business/calc/spread/excel/

エクセルには,原則として2つのブックを「比較」したり「反映」する機能は『ありません』。

唯一できることは,
1.まずオリジナルブックを校閲タブの「ブックの共有」で共有ブックとして保存しておく必要があります
2.共有ブックのコピーを取ります
3.コピーした共有ブックに別の編集をします
4.共有ブックを開き,別途編集されたジブンのコピーと「ブックの比較と反映」をします
という段取りを踏む必要があります。


共有ブックにしておかなかった2つのブックを,後付で比較と反映する方法はありま...続きを読む

QExcelで[表1]にあって、[表2]にないものを抽出する関数

Excelで[表1]にあって、[表2]にないものを抽出する関数

例)[表1]   [表2]
   A社     A社
   D社     D社
   R社     P社
   P社     R社
   D社
   F社
   F社

上記は簡単に書きましたが、表1に重複するものも含め、300社程度あるなかで
表2にリストアップされていない会社を見つける関数やその他方法論があれば
ぜひ教えてください!
(例でいえば、F社を見つける方法です。)

抽出するのは別シートでも、同じシートでも構いません。

Excel2003でも対応できるものであれば、なお嬉しいです。

よろしくお願いします。

Aベストアンサー

Countif関数で同じものがいくつあるか数えさせます。
   A   B        C
  [表1]表2にある数   [表2]
   A社          A社
   D社          D社
   R社          P社
   P社          R社
   D社
   F社
   F社
だとして
B列に =Countif(C:C,A2)
と入れて下までコピィすれば 表2に同じものがいくつあるか出ますので
0 がないものです。

Qエクセル 2枚のシートの違いを抽出したい

目を通していただきありがとうございます。
エクセルは全く詳しくないため、質問させていただきます。

sheet1とsheet2に各2000行ほどの表があります。

sheet1
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       500
 みかん    静岡     120      85       400
 オレンジ  アメリカ     150      90       100
 
sheet2
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       300
 オレンジ  アメリカ     150     100       100
 いちご     福岡     300     150       100
 みかん    静岡     120      70       400

それぞれ「1行目のみかん」はA~D列まで同じ値で、E列のみの違いですので、
抽出の必要はありません。
sheet2の3行目のいちごはsheet1にはありませんので、これも抽出の必要はありません。


sheet1の2行目とsheet2の4行目のみかん、
sheet1の3行目とsheet2の2行目のオレンジ、はD列(特価)の違いがあります。
この<D列のみ違いがある>ものを行単位でsheet3に抽出したいのですが、
何か良い方法(関数等)がありましたら、教えていただけないでしょうか?

なお、表題に「エクセル」と書きましたが、実際はKingsoftのSpreadsheets 2012を使用しています。
基本的な関数でしたらそのまま使えるようですので、エクセルとして書かせていただきました。

よろしくお願いいたします。





 
  

目を通していただきありがとうございます。
エクセルは全く詳しくないため、質問させていただきます。

sheet1とsheet2に各2000行ほどの表があります。

sheet1
A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)
 みかん    愛媛     100      80       500
 みかん    静岡     120      85       400
 オレンジ  アメリカ     150      90       100
 
sheet2
A列(商品) B列(産地) C列(定価) D列(特価) E列(...続きを読む

Aベストアンサー

 今仮に、Sheet4のA列とB列を作業列として使用するものとします。

 まず、Sheet4のA2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIFS(Sheet2!$A:$A,INDEX(Sheet1!$A:$A,ROW()),Sheet2!$B:$B,INDEX(Sheet1!$B:$B,ROW()),Sheet2!$C:$C,INDEX(Sheet1!$C:$C,ROW()),Sheet2!$D:$D,"<>"&INDEX(Sheet1!$D:$D,ROW()),Sheet2!$E:$E,INDEX(Sheet1!$E:$E,ROW())),10000000+ROW(),""))

 次に、Sheet4のB2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet2!$A:$A,ROW())="","",IF(COUNTIFS(Sheet1!$A:$A,INDEX(Sheet2!$A:$A,ROW()),Sheet1!$B:$B,INDEX(Sheet2!$B:$B,ROW()),Sheet1!$C:$C,INDEX(Sheet2!$C:$C,ROW()),Sheet1!$D:$D,"<>"&INDEX(Sheet2!$D:$D,ROW()),Sheet1!$E:$E,INDEX(Sheet2!$E:$E,ROW())),20000000+ROW(),""))

 次に、Sheet4のA2~B2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。

 次に、Sheet3のA2セルに次の関数を入力して下さい。

=IF(ROWS($2:2)>COUNT(Sheet4!$A:$B),"",INDEX(CHOOSE(INT(SMALL(Sheet4!$A:$B,ROWS($2:2))/10000000),Sheet1!$A:$E,Sheet2!$A:$E),MOD(SMALL(Sheet4!$A:$B,ROWS($2:2)),10000000),COLUMNS($A:A)))

 次に、Sheet3のA2セルをコピーして、Sheet3のB2~E2の範囲に貼り付けて下さい。
 次に、Sheet3のA2~E2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。


 これで、<D列のみ違いがある>データのみが、Sheet3に抽出されます。

 今仮に、Sheet4のA列とB列を作業列として使用するものとします。

 まず、Sheet4のA2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIFS(Sheet2!$A:$A,INDEX(Sheet1!$A:$A,ROW()),Sheet2!$B:$B,INDEX(Sheet1!$B:$B,ROW()),Sheet2!$C:$C,INDEX(Sheet1!$C:$C,ROW()),Sheet2!$D:$D,"<>"&INDEX(Sheet1!$D:$D,ROW()),Sheet2!$E:$E,INDEX(Sheet1!$E:$E,ROW())),10000000+ROW(),""))

 次に、Sheet4のB2セルに次の関数を入力して下さい。

=IF(INDEX(Sheet2!$A:$A,ROW())="","",IF(...続きを読む

QエクセルでA列とB列の差分を抽出

エクセルでA列にはあるがB列にはない項目を抽出するにはどうしたらよいでしょうか。
下の例だと、C列あたりに、山本、川田を抽出したいのですが……
A列にはB列のデータがすべて含まれています。
A列は10月と11月のデータで、B列は10月のデータです。

A列   B列
山田  山田
山本  川上
川田
川上

Aベストアンサー

色々な方法がありますが、COUNTIF関数とIF関数で、一致するものしないものが選択できそうですね。
データがA1:A4、B1:B2にあるとします。
C列に
=IF(COUNTIF($B$1:$B$2,A1)=0,A1,"")
と入力すれば、A1の値がB列の範囲内になければ、A1を表示、ない場合には何も表示しません。
ご確認下さい。

Qエクセル【A列とB列の不一致を知りたいです】

初めまして。
お忙しい中、大変申し訳ございませんが、下記に関して、ご指導のほど、宜しくお願い致します。

***************
【例】
A列    B列

あめ    チョコ
ガム    ポテトチップス
チョコ   あめ
       ガム


という列があり、A列はA1000まで続き、B列はB3000まで続きます。
必ずしも、A列の横に同じお菓子名があるわけではありません。

そこで、A列とB列を比較し、B列にしかないもの(上記「例」ではポテトチップス)のセルに色づけ、もしくはC列に、不一致するものだけ「NG」等が記載される数式を教えてください。

お忙しい中、大変申し訳ございませんが、
何卒宜しくお願い申し上げます。

Aベストアンサー

条件付書式で、B列のセルに
「数式が」
=ISERROR(VLOOKUP(B1,A:A,1,FALSE))
で書式を設定し下にコピーすると、無いものだけが書式変更されます。

同じように、B列の隣のC列に
=IF(ISERROR(VLOOKUP(B1,A:A,1,FALSE)),"NG","")
として下にコピーしても隣にNGと表示できます。

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。

Q膨大なデーターの変更点のみ抽出するには?

お世話になります。

ある管理データーがあり、それを定期的に分析しています。
元のファイルはイントラにあり、数百人の人が自分のデーターを時々更新しています。

例えば半年後に、こちらで分析するに当たり、
今イントラから取り出したデーターと、半年後に取り出したデータのどこが更新されているか、
比較する式があれば教えていただきたく、

何卒宜しくお願いいたします。
使用しているのはエクセル2010で、このデーターは1万行位あり、今までは一から分析しており、
今後追加されている分だけ取り出せないかと思い、質問させていただきました。

Aベストアンサー

最終的にどのようなデータが欲しいのかによって、最も合理的な処理方法が異なります。

たとえば、更新データでは行の挿入などのレイアウトの変更は行わず(同じデータは同じ行に入力されている)新しいデータは行末に追加するなら、セルの変更箇所だけを調べればよいことになります。
これを行うには条件付き書式などで変更点のセルの色を変更するなどの処理が可能です。
さらにタイトルの「抽出したい」というのがそのデータだけを一覧表示したいという意味なら、関数でデータの変更をチェックするかフィルタオプションの設定などを利用することになります。

その場合でも、データの入力形式や(たとえば名前の列がA列で同じ名前はデータベースシートに1つしかないなど)、新しいデータの修正方法によって、使用する数式が異なることになります。

したがって、最終的にどのようなことがしたいのか(修正点がわかるだけでよいのか、一覧データを取得したいのか)によって、合理的な処理方法がことなりますので、その部分を補足説明してください。

QExcelファイルを比較し、差分箇所に色をつけるには?

VBA初心者です。
突如作成を依頼されてしまいました。
どなたかお手すきでしたら、よろしくお願いします。


まず2つのフォルダA(新しいデータのExcelファイル)、
フォルダB(古いデータのExcelファイル)があります。

それぞれには同じ名前のExcelファイルが200個近く入っているのですが、
新旧同じ名前同士のファイルを比較し、差分箇所に色をつけるという
作業をしたいのです。(新旧のファイルどちらにも色を付ける)

できればフォルダAとフォルダBを選択したら勝手に処理してくれるという
プログラムにしたいのですが、どのようにしたらよろしいでしょうか。

数値の比較ですが、範囲を指定してマッチしてなければ色付け、という
処理でもいいかな・・と思っております。

どうかよろしくお願いします。

Aベストアンサー

こんなのではどうでしょうか?

両フォルダには同じ名前のExcelファイル(各シート数も同じ)があるとして、片方からだけ見てます。
同名のブックを開けないので作業フォルダに別名でコピーして作業をして戻してます。(これが結構長くしてる)
Const workFolder ="???"を適当に設定してください。
シートのチェックはUsedRange内のチェックをしてます。
さすがにこれは片方からだけとはいかないので両方からチェックしてます。
当然ダブってチェックする部分がほとんどですが・・・処理が長くなりそうなのでダブり部分のチェックはしません。
かわりに作業の進行状況をステータスバーに表示しますので、シートにボタンを作って、ボタンのクリックからsampleを呼んでみてください。

Option Explicit
Const workFolder = "c:\temp" '適当な作業フォルダを設定してください。
Sub sample()
Dim srcFolder As String
Dim dstFolder As String
srcFolder = "c:\test\a" 'フォルダA
dstFolder = "c:\test\b" 'フォルダB

Dim fso As New FileSystemObject
Dim srcFile As String
Dim dstFile As String
Dim srcWorkFile As String
Dim dstWorkFile As String
Dim f As File
Dim n As Integer '進行状況表示用
Dim i As Integer '進行状況表示用
'表示設定
Application.DisplayStatusBar = True 'ステータスバー表示
Application.ScreenUpdating = False '画面更新禁止
'作業ファイル名
srcWorkFile = workFolder & "\src.xls"
dstWorkFile = workFolder & "\dst.xls"
n = fso.GetFolder(srcFolder).Files.Count
For Each f In fso.GetFolder(srcFolder).Files
i = i + 1
If f Like "*.xls" Then
'srcFolderのファイルと同じ名前のファイルがdstFolderにもあるとする
srcFile = srcFolder & "\" & f.Name
dstFile = dstFolder & "\" & f.Name
'ステータスバー表示
Application.StatusBar = srcFile & " と " & dstFile & " を、チェック中 (" & i & "/" & n & ")"
'作業フォルダにファイルをコピー
fso.CopyFile srcFile, srcWorkFile, True
fso.CopyFile dstFile, dstWorkFile, True
'ブックチェック
checkBook srcWorkFile, dstWorkFile
'作業フォルダのファイルを戻す
fso.CopyFile srcWorkFile, srcFile, True
fso.CopyFile dstWorkFile, dstFile, True
End If
Next
'作業ファイルを削除
fso.DeleteFile srcWorkFile
fso.DeleteFile dstWorkFile
'後始末
Set fso = Nothing
Application.ScreenUpdating = True
Application.StatusBar = False
End Sub
'ブック(ファイル)のチェック
Sub checkBook(srcFile As String, dstFile As String)
Dim srcBook As Workbook
Dim dstBook As Workbook
Dim ws As Worksheet
Set srcBook = Workbooks.Open(srcFile)
Set dstBook = Workbooks.Open(dstFile)
'srcBookのシート名と同じシートがdstBookにもあるとしてチェック
For Each ws In srcBook.Worksheets
checkSheet ws, dstBook.Worksheets(ws.Name)
Next
srcBook.Close savechanges:=True
dstBook.Close savechanges:=True
End Sub
'シートのチェック
Sub checkSheet(srcSheet As Worksheet, dstSheet As Worksheet)
'背景色のクリア
srcSheet.Cells.Interior.ColorIndex = xlNone
dstSheet.Cells.Interior.ColorIndex = xlNone
'両方のUsedRange範囲内で変更点をチェック
'ダブってチェックする部分が多いけれど
checkSheetUsedRange srcSheet, dstSheet
checkSheetUsedRange dstSheet, srcSheet
End Sub
'シートのチェック(srcSheetのUsedRange内)
Sub checkSheetUsedRange(srcSheet As Worksheet, dstSheet As Worksheet)
Dim r As Range
For Each r In srcSheet.UsedRange
If r <> dstSheet.Range(r.Address) Then
r.Interior.ColorIndex = 3
dstSheet.Range(r.Address).Interior.ColorIndex = 3
End If
Next
End Sub

こんなのではどうでしょうか?

両フォルダには同じ名前のExcelファイル(各シート数も同じ)があるとして、片方からだけ見てます。
同名のブックを開けないので作業フォルダに別名でコピーして作業をして戻してます。(これが結構長くしてる)
Const workFolder ="???"を適当に設定してください。
シートのチェックはUsedRange内のチェックをしてます。
さすがにこれは片方からだけとはいかないので両方からチェックしてます。
当然ダブってチェックする部分がほとんどですが・・・処理が長くなりそうなの...続きを読む

Qエクセルで2つのデータを照合したい

会社のPCなのでソフトをダウンロードしたりすることができません。できるだけシンプルで簡単なやり方があれば教えてください。

会員番号と個人名が入ったエクセルファイルが2つあります。
<ファイル1(先輩が担当している顧客)>
101 青木さやか
104 友近
105 山田花子
106 中川翔子
125 真鍋かをり
132 ジャガー横田
144 ともさかりえ
155 小西真奈美
164 篠原涼子
177 山口智子
189 稲森いずみ
211 蒼井優

<ファイル2(私が担当する顧客)>
102 蛯原友里
104 友近
135 山田優
141 押切もえ
144 ともさかりえ
167 堀北真希

<ファイル1>と<ファイル2>には共通して104 友近と144ともさかりえがいるのですが、瞬時にわかるようにするにはどうすればいいでしょうか?

Aベストアンサー

Vlookup関数をファイル1か2のどちらかのC列に入れて同じ値があるかどうかを確認する。
あれば数字が返ってくるし、なければエラー値になるのでそれで判別。

例えばファイル1のC列に1行目に以下を入れてオートフィルターでコピーする
=VLOOKUP(A1,[ファイル2.xls]Sheet1!$A$1:$A$100,1,FALSE)
ファイル名とシート名や範囲は状況に合わせて。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報