2010-06-16 10 views
2

Comment comparer deux feuille Excel et déterminer quelle colonne manque?comparer deux feuilles Excel

(Je voudrais comparer une liste des pays de la feuille A avec la feuille B, puis marquer quel pays manque)

Note: Ils sont dans un ordre aléatoire.

+0

en double possible : http://stackoverflow.com/questions/1500153/find-the-differences-between-2-excel-worksheets/1500573#1500573 – hawbsl

Répondre

4

Vous pouvez utiliser la fonction VLOOKUP dans une feuille de calcul Excel pour aider à trouver des données « manquantes » dans une autre feuille. Par exemple, prenez les deux feuilles de calcul suivantes:

Sheet1 
------ 
     A   B   C 
1  aa 
2  bb 
3  cc 
4  dd 

.

Sheet2 
------ 
     A   B   C 
1  aa 
2  bb 
3  dd 

Ajouter la formule suivante à la cellule B1 dans Sheet et faites glisser la formule vers le bas à travers la cellule B4:

=IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$A$3,1,FALSE)),"MISSING FROM OTHER SHEET","") 

Sheet1 doit indiquer les éléments qui sont absents de l'autre feuille dans la colonne B, comme suit:

Sheet1 
------ 
     A   B      C 
1  aa 
2  bb 
3  cc   MISSING FROM OTHER SHEET 
4  dd 
0

Vous pouvez utiliser ADO avec Excel

Dim cn As Object 
Dim rs As Object 
Dim strFile As String 
Dim strCon As String 
Dim strSQL As String 
Dim s As String 
Dim i As Integer, j As Integer 

''This is not the best way to refer to the workbook 
''you want, but it is very conveient for notes 
''It is probably best to use the name of the workbook. 

strFile = ActiveWorkbook.FullName 

''Note that if HDR=No, F1,F2 etc are used for column names, 
''if HDR=Yes, the names in the first row of the range 
''can be used. 
''This is the Jet 4 connection string, you can get more 
''here : http://www.connectionstrings.com/excel 

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _ 
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" 

''Late binding, so no reference is needed 

Set cn = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.Recordset") 


cn.Open strCon 

''Query example: 
strSQL = "SELECT Country " _ 
     & "FROM [Sheet1$] a " _ 
     & "WHERE Country NOT IN " _ 
     & "SELECT Country FROM [Sheet2$]" 


''Open the recordset for more processing 
''Cursor Type: 3, adOpenStatic 
''Lock Type: 3, adLockOptimistic 
''Not everything can be done with every cirsor type and 
''lock type. See http://www.w3schools.com/ado/met_rs_open.asp 

rs.Open strSQL, cn, 3, 3 

If rs.Count>0 Then 
    MsgBox rs.GetString 
End If 

Il est également possible d'écrire rapidement le jeu d'enregistrements sur une feuille avec CopyFromRecordset.

0

La solution varie en fonction du nombre de lignes concernées et le nombre de fois que vous devez faire, et comment vous voulez que les informations à présenter.

Si vous n'avez pas beaucoup de pays et vous devez le faire une seule fois, la solution est la plus rapide:

  • Copier les deux colonnes dans une feuille temporaire.
  • Trier les deux colonnes par ordre alphabétique.
  • manuellement aller à travers eux et repérer les différences.

Si vous avez besoin de faire cela une seule fois, mais il y a beaucoup de pays, l'option vlookup est la plus rapide.

Si vous devez répéter cette procédure plusieurs fois et que vous devez utiliser cette liste quelque part (dans une autre feuille), vous pouvez utiliser une solution plus compliquée, impliquant deux colonnes supplémentaires avec des recherches et des tableaux croisés dynamiques. Mais à ce stade, je chercherais à le déplacer vers quelque chose de plus gérable, comme une petite base de données.

0

J'utilise le logiciel exclusif qui suit.
[Excel Diff - http://www.suntrap-systems.com/ExcelDiff/]

Il existe d'autres logiciels suivants.
[http://www.softpedia.com/]

+1

DataExplorer de appliedalgo.com - vous pouvez comparer les résultats de csv, Excel, ou même résultat définir à partir de n'importe quelle requête SQL (donc, données ou schéma, # lignes/colonnes ...) contre MySQL, Microsoft SQL, Firebird. En outre, ils supportent l'appariement inexact - Seuil numérique% diff. Pour les données de chaîne, les mesures de similarité floue. Livré avec une étiquette de prix cependant - http://www.youtube.com/watch?v=Se0wt7mSkxM Si votre patron ne veut pas payer, consultez aussi ce lien: http://www.wikihow.com/Compare -Data-in-Excel –

0

J'ai trouvé que dans certaines versions d'Excel est fonction pour comparer les fichiers - mais est généralement désactivée, mais instalé. Et un jour j'ai trouvé par hasard comment l'utiliser.

Si vous avez instalé TortoiseSVN (vraiment): - sélectionner les fichiers Excel pour comparer dans votre gestionnaire de fichiers - menu contextuel ouvert, puis sélectionnez TortoiseSVN> Diff - il ouvre Excel en mode "comparant"