web-dev-qa-db-fra.com

Comment comparer deux feuilles de calcul Excel?

J'aimerais comparer deux feuilles de calcul Excel

Les deux ont les mêmes colonnes, dans le même ordre, mais pas les mêmes lignes.

J'ai une feuille de calcul avec 1 000 lignes et 50 colonnes comprenant un identifiant unique pour chaque ligne et des données personnelles (adresse, numéro de téléphone, etc.).

Je veux comparer avec la même base extraite il y a un an.

Mon objectif est de connaître tous les changements (par exemple, quelqu'un qui a changé d'adresse).

J'ai essayé avec un tableur (comme expliqué ici: Comparez deux fichiers Excel ) mais cela ne fonctionne pas car dans mon "nouveau" fichier, j'ai de nouvelles lignes, et j'ai quelques lignes dans l'ancien fichier qui ne sont pas dans le nouveau.

Tableur comparer avec le numéro de ligne Excel. Est-il possible de comparer avec la première colonne (ID unique)?

Voici un exemple très simplifié: https://filebin.net/g4w98251y9mfwug6

Il y a deux feuilles représentant mes deux feuilles de calcul.

Comme vous pouvez le constater, les deux colonnes ont les mêmes colonnes mais:

  • Il y a des lignes qui sont sur les deux feuilles sans modifications (toutes les lignes sont identiques)
  • Il y a des lignes qui sont sur les deux feuilles mais il y a des changements (en orange dans mon exemple)
  • Certaines lignes ne figurent que dans la feuille de décembre (je n'ai pas besoin d'identifier ces lignes)
  • Il y a des lignes qui ne figurent que dans la feuille de janvier (en orange dans mon exemple)

La couleur orange est exactement ce que je veux, mais dans cet exemple, je peux le faire manuellement: en comparant décembre et janvier. Dans les feuilles de calcul réelles, je ne peux pas le faire manuellement car il y a trop de modifications, de données, de lignes, de colonnes, etc., et je le ferai tous les mois.

Il n'y a qu'une seule colonne qui ne puisse jamais changer: la colonne A.

8
CILUEA

Il est pratique que votre feuille de calcul utilise 50 colonnes, car cela signifie que les colonnes # 51, # 52,…, sont disponibles. Votre problème est assez facilement résolu avec l'utilisation d'une "colonne d'assistance", que nous pouvons mettre dans la colonne AZ (qui est la colonne n ° 52). Je suppose que la rangée 1 de chacune de vos feuilles contient des en-têtes (les mots ID, Name, Address, etc.), de sorte que vous n'avez pas besoin de les comparer (car vos colonnes sont dans le même ordre dans les deux feuilles). Je suppose également que la variable ID (identificateur unique) se trouve dans la colonne A. (Si ce n’est pas le cas, la réponse devient un peu un peu plus compliquée, mais quand même assez facile.) Dans la cellule AZ2 (la colonne disponible, dans la première ligne utilisée pour les données), entrez

=B2&C2&D2&…&X2&Y2&Z2&AA2&AB2&AC3&…&AX2

répertoriant toutes les cellules de B2 à AX2. & est l'opérateur de concaténation de texte. Ainsi, si B2 contient Andy et C2 contient New York, alors B2&C2 sera évalué à AndyNew York. De même, la formule ci-dessus va concaténer toutes les données d'une ligne (à l'exception de la ID), donnant ainsi un résultat qui pourrait ressembler à ceci:

AndyNewYork1342WallStreetInvestmentBankerElizabeth2catcollegedegreeUCLA…

La formule est longue et fastidieuse à taper, mais vous n’avez besoin de la faire qu’une seule fois (mais voyez la note ci-dessous avant de le faire). Je l'ai montré en passant par AX2 car la colonne AX est la colonne n ° 50. Naturellement, la formule devrait couvrir toutes les colonnes de données autres que ID. Plus spécifiquement, il devrait inclure chaque colonne de données que vous souhaitez comparer. Si vous avez une colonne correspondant à l’âge de la personne, elle sera (automatiquement?) Différente pour tout le monde, chaque année, et vous ne voudrez pas que cela soit signalé. Et bien sûr, la colonne d'assistance, qui contient la formule de concaténation, devrait se situer quelque part à droite de la dernière colonne de données.

Sélectionnez maintenant la cellule AZ2 et faites-la glisser dans les 1 000 lignes. Et faites ceci sur les deux feuilles de calcul.

Enfin, sur la feuille où vous souhaitez que les modifications soient mises en surbrillance (d’après ce que vous dites, il s’agit de la feuille la plus récente), sélectionnez toutes les cellules que vous souhaitez mettre en surbrillance. Je ne sais pas s’il s’agit simplement de colonne A, ou de colonne B, ou de la ligne entière (c’est-à-dire, A à AX). Sélectionnez ces cellules sur les lignes 2 à 1000 (ou à l'endroit où vos données pourraient éventuellement être atteintes), puis allez dans "Formatage conditionnel" → "NewRule…", sélectionnez "Utilisez une formule pour déterminer les cellules à formater", puis entrez

=IFERROR(VLOOKUP($A2,'December 2017'!$A$2:$AZ$1000,52,FALSE), "") <> $AZ2

dans le "Format des valeurs où cette formule est vraie". Cela prend la valeur ID de la ligne actuelle de la feuille actuelle ("January2018") (dans la cellule $A2), la recherche dans la colonne A de la précédente ("décembre2017"), obtient la valeur de données concaténée de cette ligne. et la compare à la valeur de données concaténée sur cette ligne. (Bien sûr, AZ est la colonne d'assistance, 52 est le numéro de colonne de la colonne d'assistance, et 1000 est la dernière ligne de la feuille "Décembre2017" qui contient des données - ou un peu plus haut; Par exemple, vous pouvez entrer 1200 plutôt que de vous inquiéter d'être exact.) Cliquez ensuite sur "Formater" et spécifiez la mise en forme conditionnelle souhaitée (par exemple, un remplissage orange).

J'ai fait un exemple avec seulement quelques lignes et seulement quelques colonnes de données, avec la colonne d'assistance de la colonne H:

previous month/year (December 2017) sheet

current month/year (January 2018) sheet, with changes highlighted in orange

Observez que le rang d’Andy est orange, car il s’est déplacé de New York à Los Angeles, et celui de Debra est orange, car il s’agit d’une nouvelle entrée.

Remarque: Si une ligne peut avoir des valeurs telles que the et react dans deux colonnes consécutives et que cela pourrait changer l'année suivante à there et act, cette différence ne serait pas signalée. , car nous ne faisons que comparer la valeur concaténée, et que (thereact) est identique sur les deux feuilles. Si cela vous préoccupe, choisissez un caractère qui ne figurera probablement jamais dans vos données (par exemple, |) et insérez-le entre les champs. Donc, votre colonne d'assistance contient

=B2&"|"&C2&"|"&D2&"|"&…&"|"&X2&"|"&Y2&"|"&Z2&"|"&AA2&"|"&AB2&"|"&AC3&"|"&…&"|"&AX2

résultant en des données qui pourraient ressembler à ceci:

Andy | NewYork | 1342WallStreet | InvestmentBanker | Elizabeth | 2 | cat | collegedegree | UCLA |…

et le changement sera signalé, car the|reactthere|act. Cela devrait probablement vous préoccuper, mais, en fonction de vos colonnes, vous avez peut-être des raisons de croire que cela ne sera jamais un problème.

Une fois que cela fonctionne, vous pouvez masquer les colonnes d'assistance.

3
Scott

Accédez à l'onglet Affichage et cliquez sur Nouvelle fenêtre. Accédez à la nouvelle fenêtre et cliquez côte à côte. Vous pouvez synchroniser le défilement en cliquant sur Défilement synchrone. Vérifiez l'image ci-jointe: Excel sheets side by side

Le défilement synchrone vous donne l’avantage de faire défiler simultanément différentes feuilles de calcul. Activer le bouton vous permettrait de voir les deux ensemble et de faire défiler une seule feuille de calcul.

1
Cetza Nido

Ok, vous pouvez donc faire l'une des deux choses suivantes.

1.- La solution OOTB consiste à accéder à "Données" -> "Outils de données" -> "Supprimer (en anglais) les doublons". De cette façon, vous devez annexer les deux tables et vous ne retrouverez que les données qui ont été modifiées et uniquement des données uniques. Donc, pour filtrer utilisation CountIf sur votre uniqueids, désélectionnez ce qui a été compté comme 1. Order by uniqueId et vous verrez clairement ce qui a été changé.

2.-Utilisez cette formule

IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")

Cette formule peut être draguée à droite et en bas. Ainsi, vous obtiendrez une table avec la condition if, avec le même nombre de lignes que la table de "CellofUniqueID". La position de "Info a changé" vous indiquera quelle cellule de l'autre table a changé de contenu. Utilisez donc cette formule dans une nouvelle feuille et créez un nouveau tableau. Ensuite, regardez les filtres et désélectionnez "InfoHasNotChanged" (ou le mot que vous souhaitez utiliser).

"rangetoreturn" et "Rangeofuniqueidtolookinto" proviennent d'une table (ou d'une feuille) et "CellofUniqueID" de l'autre table.

À votre santé

1
dmb