Filtrer sans doublons avec la plus grande valeur

Le
Apitos
Bonsoir à tous,

Comment pourrais-je avoir un filtre sans doublons avec la valeur la plus gr=
ande de chaque ligne résultante ?

Merci.

http://cjoint.com/?BEya4AID2D1
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24503451
Bonjour,

La manière la plus simple,

En supposant que A2:G2 représente l'étendue des colonnes,

Tu ajoutes une colonne dans laquelle tu mets la formule : =Max(A2:G2) que tu recopies sur
l'ensemble des lignes
et tu exécutes un filtre avancé (élaboré) sur la colonne affichant les formules et
n'oubliant pas de cocher la case
à cocher "sans doublon".
Apitos
Le #24504111
Bonjour Denis,

Le max des valeurs doit être trouvé dans la colonne F et dans G pour un même objet.
MichD
Le #24504201
Si tu prenais le temps d'expliquer? Est-ce que le max() doit se faire sur chaque ligne ou
sur chaque colonne ?

Comment définis-tu la notion de doublon dans ton application?

Si tu n'es pas explicite dans les commentaires que tu commets sur ta problématique,
il est difficile pour les répondeurs de lire dans tes pensées.
MichD
Le #24504521
2 étapes :

A ) Tu fais un filtre avancé sur la colonne A:A en cochant la case à cocher sans doublon.
Le résultat du filtre va donner pour chaque nomenclature de la colonne A:A une
occurrence de chaque item.

B ) Pour obtenir le max() dans chacune des colonnes B et C dans le nouveau tableau,
fais appel à des formules pour compléter le tableau.

Résultat du filtre élaboré : Supposons que la copie du résultat se fait dans la
colonne G1:G6 avec en-tête de colonne en G1

G H
i
Object C
T
BOA =MAX(SI($A$2:$A$8=G2;$B$2:$B$8)) =MAX(SI($A$2:$A$8=G2;$C$2:$C$8))
BOD
DHA
DHD
FA

Tu recopies les formules sur leur colonne respective.

Les 2 formules sont matricielles, elles requièrent comme validation : Ctrl + Maj + Enter
Apitos
Le #24510991
Bonsoir Denis,

Pourrais-je avoir cette solution avec du code VBA ?

Merci.
MichD
Le #24513691
Exemple dans ton fichier : http://cjoint.com/?BECnrcT83Ph

Le code contenu dans le fichier :

'------------------------------------------------
Sub test()
Dim Sh As Worksheet, DerLig As Long
Set Sh = Worksheets("Feuil2")

Application.ScreenUpdating = False
With Sh
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterCopy, _
Copytorange:=Sh.Range("G1"), _
Unique:=True
DerLig = .Range("G65536").End(xlUp).Row
End With
With .Range("G1:G" & .Range("G65536").End(xlUp).Row)
.Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes
End With
.Range("H1") = .Range("B1")
.Range("i1") = .Range("C1")
.Range("H1:i1").HorizontalAlignment = xlCenter
.Range("H2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$B$2:$B$8))"
.Range("H2:H" & DerLig).FillDown
'Pour faire disparaître les formules pour
'obtenir seulement les valeurs si nécessaire
'.Range("H2:H" & DerLig).Value = .Range("H2:H" & DerLig).Value

.Range("i2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$C$2:$C$8))"
.Range("i2:i" & DerLig).FillDown
'Pour faire disparaître les formules pour
'obtenir seulement les valeurs si nécessaire
'.Range("i2:i" & DerLig).Value = .Range("i2:i" & DerLig).Value

'Application du format %
.Range("H2:I" & DerLig).NumberFormat = "0%"
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------------------
Apitos
Le #24514501
Bonsoir Denis,

Merci pour le fichier.

Je vais en faire d'autres essaies et voir les résultats.
Apitos
Le #24517861
Bonsoir Denis,

Voila un autre essai en utilisant les tableaux, en plus d'une colonne B qu' on devra trouver sa valeur la plus grande en dépendant des valeurs de la colonne D et E.

http://cjoint.com/?BEDsT2NrjzN
Publicité
Poster une réponse
Anonyme