Comparaison de 2 BD

ivan27

XLDnaute Occasionnel
Bonjour à tous,

J'ai un problème de comparaison de BD à résoudre.

Dans le classeur joint si :

- La colonne A de la feuil1 est identique à la colonne B de la Feuil2
et
- La colonne N de la feuil1 est identique à la colonne C de la Feuil2

Alors on colorie les lignes correspondantes sur chaque feuille.

Merci d'avance pour vos propositions et bonne journée.

Ivan
 

Pièces jointes

  • ComparBD.xlsx
    104.4 KB · Affichages: 21

mplomion

XLDnaute Nouveau
Re : Comparaison de 2 BD

Voila j'ai ce que tu attends je pense, j'ai juste ajouté 2 colonnes au bout de chaque feuille et une mise en forme conditionnelle. Si tu ne veux pas des ces colonnes je peux faire mieux mais à priori tu as le résultat attendu... Oups laisse moi un mail en MP car je n'arrive pas à mettre le fichier par le portail web.
 

job75

XLDnaute Barbatruc
Re : Comparaison de 2 BD

Bonjour ivan27, mplomion,

1) Définir les noms :

- Tableau1 =DECALER(Feuil1!$A$1;;;EQUIV(9^9;Feuil1!$N:$N);16)

- Tableau2 =DECALER(Feuil2!$A$1;;;EQUIV(9^9;Feuil2!$C:$C);3)

- matrice1 =INDEX(Tableau1;;1)&INDEX(Tableau1;;14)

- matrice2 =INDEX(Tableau2;;2)&INDEX(Tableau2;;3)

2) MFC sur Feuil1!A:p =SOMMEPROD(-($A1&$N1=matrice2))

3) MFC sur Feuil2!A:C =SOMMEPROD(-($B1&$C1=matrice1))

Fichier joint.

A+
 

Pièces jointes

  • ComparBD(1).xlsx
    57.8 KB · Affichages: 15

job75

XLDnaute Barbatruc
Re : Comparaison de 2 BD

Re,

En fait c'est plus compliqué car en Feuil2 colonne B il y a des références concaténées comme 41796279/85106330.

Alors compliquons :

1) Définir les noms :

- Tableau1 =DECALER(Feuil1!$A$1;;;EQUIV(9^9;Feuil1!$N:$N);16)

- Tableau2 =DECALER(Feuil2!$A$1;;;EQUIV(9^9;Feuil2!$C:$C);3)

- matrice1 =INDEX(Tableau1;;1)&INDEX(Tableau1;;14)

- col =INDEX(Tableau2;;2)&"/"

- matrice2 =GAUCHE(col;TROUVE("/";col)-1)&INDEX(Tableau2;;3)

- matrice3 =SUBSTITUE(STXT(col;TROUVE("/";col)+1;99);"/";"")&INDEX(Tableau2;;3)

2) MFC sur Feuil1!A:p =SOMMEPROD(($A1&$N1<>"")*(($A1&$N1=matrice2)+($A1&$N1=matrice3)))

3) MFC sur Feuil2!A:C :

Code:
=SOMMEPROD((GAUCHE($B1;TROUVE("/";$B1&"/")-1)&$C1=matrice1)+(STXT($B1;TROUVE("/";$B1&"/")+1;99)&$C1=matrice1))
Fichier (2).

Noter que le calcul prend nettement plus de temps...

A+
 

Pièces jointes

  • ComparBD(2).xlsx
    57.9 KB · Affichages: 14
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comparaison de 2 BD

Re,

En fait on peut laisser les MFC sur des plages non limitées :

- MFC sur Feuil1!A:p =SI($A1&$N1<>"";SOMMEPROD(($A1&$N1=matrice2)+($A1&$N1=matrice3)))

- MFC sur Feuil2!A:C :

Code:
=SI($B1&$C1<>"";SOMMEPROD((GAUCHE($B1;TROUVE("/";$B1&"/")-1)&$C1=matrice1)+(STXT($B1;TROUVE("/";$B1&"/")+1;99)&$C1=matrice1)))
C'est la fonction SI qui limite la zone du calcul matriciel.

Fichier (4).

A+
 

Pièces jointes

  • ComparBD(4).xlsx
    57.9 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 066
Membres
104 015
dernier inscrit
kkgk