formateur informatique

Détecter les changements d'adresse des clients

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Détecter les changements d'adresse des clients
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Détecter les changements entre deux listes

Nous avions déjà apporté la solution pour mettre en lumière les différences entre deux tableaux de données. Pour cela, nous avions bâti une règle de mise en forme conditionnelle tout à fait particulière. Ici, nous souhaitons résoudre le cas par calcul matriciel.

Détecter les changements entre deux listes de données Excel par calcul matriciel

Dans l'exemple illustré par la capture ci-dessus, nous comparons deux sources de données de clients. Celle de gauche est considérée comme la nouvelle liste tandis que celle de droite représente l'ancienne. Entre les deux périodes, des clients peuvent avoir déménagé. En conséquence, l'ancienne liste, encore en cours d'utilisation, offre des informations potentiellement obsolètes. Nous proposons de les déceler par calcul matriciel dans une colonne indépendante, sur la droite de la feuille.

Source et présentation de la problématique
Pour réaliser ce cas, nous suggérons tout d'abord de réceptionner un fichier offrant les sources à comparer. Si vous consultez attentivement les deux sources de données, vous pouvez remarquer que certains clients existent dans une source et pas dans l'autre. Mais la majorité figure dans les deux tableaux. Parfois, ils sont situés sur les mêmes lignes et souvent sur des lignes différentes. Et c'est bien la complexité de la problématique qu'il s'agit de résoudre. La comparaison des deux sources ne peut être linéaire. Un raisonnement chronologique considèrerait qu'une même ligne portant des informations différentes se traduit par un client différent.

Ici, l'enjeu consiste donc à déceler la présence d'un client issu de la première source de données dans la seconde et ce, quelle que soit sa position. Dès lors, les adresses doivent être comparées. Si elles diffèrent, nous devons en conclure qu'un changement a été opéré entre les deux périodes. Une adresse est la combinaison du code postal et de la ville. En d'autres termes, un double critère doit être analysé.

De plus, si vous déployez la zone Nom, en haut à gauche de la feuille Excel, vous notez que les colonnes du second tableau ont été nommées en fonction de leurs titres. Nous utiliserons ces noms dans les formules matricielles.

Noms des colonnes du tableau Excel en fonction des titres de champs pour calculs matriciels

Ainsi, nous pourrons aisément comparer chaque client issu du premier tableau avec tous les clients du second.

Comparer deux tableaux
Nous l'avons évoqué précédemment, les techniques classiques de calcul sont à exclure. Un raisonnement chronologique n'est pas capable de scruter les recoins de chaque tableau dans une même formule. La fonction SommeProd quant à elle raisonne sur des matrices. Elle en scrute les lignes respectives. Par défaut, cette fonction réalise la multiplication des lignes respectives et additionne les totaux à l'issue. Mais nous l'avons déjà appris, nous pouvons poser des contraintes sur ces matrices. Si elles sont recoupées, la fonction SommeProd répond par le chiffre 1et par le chiffre 0 le cas échéant. Ces contraintes consistent à vérifier la similitude sur la ville et le code postal dans leurs champs respectifs. Pour enclencher une action en cas de succès, ce raisonnement doit être imbriqué dans la fonction conditionnelle Si.
  • Sélectionner la première correspondance à trouver, soit la cellule L6,
  • Taper le symbole égal (=) pour initier la formule matricielle,
  • Saisir la fonction conditionnelle suivie d'une parenthèse, soit : Si(,
  • Saisir la fonction matricielle suivie d'une parenthèse, soit : SommeProd(,
  • Ouvrir une nouvelle parenthèse pour accueillir la première matrice conditionnelle,
  • Désigner les codes postaux de la seconde liste par le nom de plage, soit : CP,
  • Taper le symbole égal (=) pour annoncer le critère à honorer,
  • Désigner le premier code postal du premier tableau, soit la cellule D6,
De cette manière, nous cherchons à trouver la correspondance du code postal dans l'intégralité de la plage de la seconde liste. Et comme ce calcul est destiné à être répliqué sur les lignes du dessous, ce sont tous les codes postaux de la première liste qui seront comparés avec ceux de la seconde. Mais dans le même temps, nous devons observer l'égalité sur la ville.
  • Fermer la parenthèse de la première matrice conditionnelle,
  • Taper le symbole de l'étoile (*) pour annoncer la condition à recouper,
  • Ouvrir une nouvelle parenthèse pour accueillir la deuxième matrice conditionnelle,
  • Désigner les villes de la seconde liste par son nom de plage, soit : Ville,
  • Taper le symbole égal (=) pour annoncer la seconde condition à recouper,
  • Désigner la première ville de la première liste en cliquant sur sa cellule E6,
  • Fermer la parenthèse de cette seconde matrice conditionnelle,
  • Fermer la parenthèse de la fonction SommeProd,
  • Taper le symbole égal (=) pour annoncer le critère de la fonction Si à vérifier,
  • Puis, saisir le chiffre zéro (0),
Par ce critère, nous décelons ainsi chaque enregistrement pour lesquels le couple CP/Ville n'est pas identifié strictement à l'identique. Dans ces conditions, nous souhaitons les marquer par la mention Nok.
  • Taper un point-virgule (;) pour passer dans la branche Alors de la fonction Si,
  • Saisir la mention Nok entre guillemets, soit : 'Nok',
  • Taper un point-virgule (;) pour passer dans la branche Sinon de la fonction Si,
  • Saisir la mention Ok entre guillemets, soit : 'Ok',
  • Fermer la parenthèse de la fonction Si,
  • Puis, valider le calcul par CTRL + Entrée pour garder active la cellule du résultat,
  • Cliquer et glisser la poignée de la cellule vers le bas jusqu'en ligne 23,
Marquer toutes les lignes différentes entre deux tableaux Excel quelles que soient leurs positions

Instantanément, tous les résultats tombent. Chaque mention Ok identifie la ligne de l'enregistrement issu de la première liste pour lequel la correspondance exacte a été trouvée. Mais cette définition n'est pas tout à fait exacte. Par exemple, en ligne 12, le client Sansasse Lionel est considéré comme non concordant. Et pour cause, son adresse est différente dans la seconde source de donnée. Mais si vous copiez son code postal et sa ville sur un autre client du deuxième tableau, la mention Nok se transforme en mention Ok. Et pourtant, il ne s'agit pas du même client. Cela signifie que notre actuelle syntaxe :

=SI(SOMMEPROD((CP=D6)*(Ville=E6))=0; 'Nok'; 'Ok')

Ne recoupe pas toutes les conditions requises. Quatre critères doivent être croises. Il faut ajouter celui sur le nom et celui sur le prénom selon la syntaxe suivante :

=SI(SOMMEPROD((CP=D6)*(Ville=E6)*(Nom=B6)*(Prénom=C6))=0; 'Nok'; 'Ok')

Désormais, chaque client pour lequel la moindre différence est observée, est repéré.

Pour parachever le cas, nous proposons de faire ressortir visuellement les changements détectés entre les deux sources de données. L'essentiel du travail est fait. La règle de mise en forme conditionnelle doit s'appuyer sur les résultats livrés par la formule matricielle.
  • Sélectionner toutes les données du premier tableau, soit la plage de cellules B6:E23,
  • Dans la section Styles du ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
  • En bas de la liste des propositions, choisir Nouvelle règle,
  • Dans la boîte de dialogue qui suit, sélectionner le type : Utiliser une formule pour ...,
  • Dans la zone de saisie juste en dessous, taper la syntaxe suivante : =$L6='Nok',
Nous cherchons à repérer chaque enregistrement non concordant, d'où la recherche sur la mention Nok. La cellule L6 est laissée libre de se déplacer en ligne. Ainsi, tous les enregistrements pourront être passés en revue. En revanche, sa colonne reste fixe, d'où la présence du dollar devant l'indice L. Un enregistrement est composé de plusieurs colonnes. Elles vont toutes être analysées tour à tour par la règle. Ce critère ne doit suivre le mouvement qu'à la verticale et non à l'horizontale.
  • Cliquer ensuite sur le bouton Format en bas de la boîte de dialogue,
  • Dans la boîte de dialogue qui suit, activer l'onglet Remplissage,
  • Dans la palette de couleurs, choisir un orange clair par exemple,
  • Activer ensuite l'onglet Police de la boîte de dialogue,
  • Avec la liste déroulante, choisir un rouge foncé pour le texte,
  • Valider ces attributs de format par le bouton Ok,
  • De retour sur la première boîte de dialogue, valider la création de la règle par le bouton Ok,
Repérer toutes les différences entre deux tableaux Excel avec des couleurs dynamiques déclenchées par une mise en forme conditionnelle

Tous les changements étant intervenus entre les deux sources de données sont désormais clairement et dynamiquement identifiés.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn