Comparaison de colonnes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

vdh_xavier

XLDnaute Junior
Bonjour à tous,

J'ai un problème lorsque j'essaye de comparer des colonnes dans excel.

Je vous envoie exemple, je pense que c'est le plus clair.

Colonne A Colonne B Colonne C Colonne D

Terminé Nom Prénom Terminé
Delarue Paul José
Delaxhe Jean Dossin
X Dupont José Delax
X Dossin Michael

En fait, je voudrais avoir un "X" dans la colonne A pour les personnes encodées en colonne D.
José et Dossin sont encodés en D et j'ai donc un "X" à gauche de leur nom.

La formule en colonne A (cellule A2) est =SI(NB.SI($D$2:$D$4;B2);"X";SI(NB.SI($D$2:$D$4;C2);"X";"")).

J'aimerais bien que Delax, qui est encodé en D mais à qui il manque 2 lettres, soit aussi considéré comme étant terminé et donc qu'il y ait un "X" à gauche de son nom.

Je n'arrive pas à dire à excel de regarder si une partie seule correspond (Delax < Delaxhe).

Je vous remercie d'avance pour votre aide.

Xavier
 
Re : Comparaison de colonnes

Je me rends compte que ça donne mal ici. Je vous envoie donc mon fichier pour plus de clarté.

De plus, j'ai oublié de préciser que je voudrais une comparaison complète de la colonne D par rapport aux colonnes B et C. Si une partie de D correspond à une partie de B ou C, alors "X". Je suppose qu'il faut définir un nombre de caractères, par exemple si 4 caractères correspondent alors mettre un "X".

Merci

Xavier
 

Pièces jointes

Re : Comparaison de colonnes

Bonjour Xavier,

Il faut en effet paramétrer le nombre de caractères que l'on cherche.

Et plutôt qu'une formule matricielle compliquée, mieux vaut une fonction VBA simple :

Code:
Function CHERCH$(txt1$, txt2$, plage As Range, n As Byte)
Dim i%, t$
For i = 1 To Len(txt1) - n + 1
  t = "*" & Mid(txt1, i, n) & "*"
  If Application.CountIf(plage, t) Then CHERCH = "X": Exit Function
Next
For i = 1 To Len(txt2) - n + 1
  t = "*" & Mid(txt2, i, n) & "*"
  If Application.CountIf(plage, t) Then CHERCH = "X": Exit Function
Next
End Function
Formule en A2 :

Code:
=CHERCH(B2;C2;D$2:D$4;H$1)
Fichier joint.

A+
 

Pièces jointes

Re : Comparaison de colonnes

Bonjour Xavier, le forum,

Voici quand même une solution par formule :

Code:
=REPT("X";SIGNE(SOMMEPROD(NB.SI(D$2:D$4;"*"&STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)-H$1+1));H$1)&"*"))+SOMMEPROD(NB.SI(D$2:D$4;"*"&STXT(C2;LIGNE(INDIRECT("1:"&NBCAR(C2)-H$1+1));H$1)&"*"))))
Fichier (2).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
116
Retour