Extraire les valeurs identiques en fonction de 2 colonnes
Résolu
vernioz
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Voilà, après plusieurs recherche je n'ai pas réussi à trouver de solutions. J'ai un tableau qui se présente comme ceci:
colonne 1 colonne 2
fournisseur 1 site A
fournisseur 2 Site B
fournisseur 2 Site A
fournisseur 2 Site D
fournisseur 3 Site C
fournisseur 3 Site A
fournisseur 4 Site B
fournisseur 5 Site A
fournisseur 5 Site B
je cherche à mettre en colonne 3 la liste des fournisseurs communs aux sites A et B. Sur l'exemple ci-dessus, je derais donc retrouver le fournisseur 2 et 5.
Avez-vous une idée de la façon dont je pourrais faire cela?
Merci d'avance :)
Voilà, après plusieurs recherche je n'ai pas réussi à trouver de solutions. J'ai un tableau qui se présente comme ceci:
colonne 1 colonne 2
fournisseur 1 site A
fournisseur 2 Site B
fournisseur 2 Site A
fournisseur 2 Site D
fournisseur 3 Site C
fournisseur 3 Site A
fournisseur 4 Site B
fournisseur 5 Site A
fournisseur 5 Site B
je cherche à mettre en colonne 3 la liste des fournisseurs communs aux sites A et B. Sur l'exemple ci-dessus, je derais donc retrouver le fournisseur 2 et 5.
Avez-vous une idée de la façon dont je pourrais faire cela?
Merci d'avance :)
A voir également:
- Excel recherche valeur identique dans deux colonnes
- Comment faire deux colonnes indépendantes dans word - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Déplacer colonne excel - Guide
- Liste déroulante excel - Guide
4 réponses
Bon.
Par une macro, fonction personnalisée :
création :
Depuis le classeur concerné :
1- Alt + F11
2- Insertion/Module
3- Copiez-collez ce code :
4- fermez la fenêtre VBA
Utilisation :
Depuis votre feuille, dans la cellule C1, saisir la formule :
=Fourn_By_Site(A1:A9;"Site A";"Site B";LIGNE())
Formule à étirer vers le bas de la colonne C.
Amélioration possible :
Empêcher l'affichage des #VALEURS le cas échéant...
Par une macro, fonction personnalisée :
création :
Depuis le classeur concerné :
1- Alt + F11
2- Insertion/Module
3- Copiez-collez ce code :
Function Fourn_By_Site(Plage As Range, Site1 As String, Site2 As String, Rang As Integer) As String Dim Cel As Range, Liste() As String, dico As Object, i As Long Set dico = CreateObject("Scripting.Dictionary") For Each Cel In Plage If UCase(Cel.Offset(0, 1)) = UCase(Site1) Or UCase(Cel.Offset(0, 1)) = UCase(Site2) Then If Not dico.Exists(Cel.Value) Then dico(Cel.Value) = UCase(Cel.Offset(0, 1)) ElseIf dico(Cel.Value) <> UCase(Cel.Offset(0, 1)) Then ReDim Preserve Liste(i) Liste(i) = Cel.Value i = i + 1 End If End If Next Fourn_By_Site = Liste(Rang - 1) End Function
4- fermez la fenêtre VBA
Utilisation :
Depuis votre feuille, dans la cellule C1, saisir la formule :
=Fourn_By_Site(A1:A9;"Site A";"Site B";LIGNE())
Formule à étirer vers le bas de la colonne C.
Amélioration possible :
Empêcher l'affichage des #VALEURS le cas échéant...