Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction de lignes redondantes en fonction d'un critère discriminant (MAX) sur une colonne.

9 réponses
Avatar
num_gg
Bonjour =E0 tous.

D=E9sol=E9 pour ce nouveau post sur une probl=E9matique tr=E8s (trop)
classique sous Excel...
Voil=E0: J'ai un long fichier Excel de la forme:

Matricule Nom Valeur
00001 DUPONT 345
00001 DUPONT 322
00003 DUPUIS 455
00003 DUPUIS 455
00003 DUPUIS 435
00003 DUPUIS 422
00005 DUCHAMP 123
00005 DUCHAMP 220
00005 DUCHAMP 125
00005 DUCHAMP 125
00008 DURAND 300
00008 DURAND 320

Duquel je ne veux extraire que les lignes o=F9, pour chaque matricule,
la valeur 'Valeur' est maximale ce qui donne:
Matricule Nom Valeur
00001 DUPONT 345
00003 DUPUIS 455
00005 DUCHAMP 220
00008 DURAND 320

Quelqu'un saurait-il faire cela?

UGM (Un Grand Merci)

Num

9 réponses

Avatar
ru-th
Salut,

juste en passant, un tableau croisé dynamique "nom" enl igne, "valeur" en
donnée mais avec la fonction max (au lieu de somme) cela ne t'intéresse pas
?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de base)

a écrit dans le message de
news:
Bonjour à tous.

Désolé pour ce nouveau post sur une problématique très (trop)
classique sous Excel...
Voilà: J'ai un long fichier Excel de la forme:

Matricule Nom Valeur
00001 DUPONT 345
00001 DUPONT 322
00003 DUPUIS 455
00003 DUPUIS 455
00003 DUPUIS 435
00003 DUPUIS 422
00005 DUCHAMP 123
00005 DUCHAMP 220
00005 DUCHAMP 125
00005 DUCHAMP 125
00008 DURAND 300
00008 DURAND 320

Duquel je ne veux extraire que les lignes où, pour chaque matricule,
la valeur 'Valeur' est maximale ce qui donne:
Matricule Nom Valeur
00001 DUPONT 345
00003 DUPUIS 455
00005 DUCHAMP 220
00008 DURAND 320

Quelqu'un saurait-il faire cela?

UGM (Un Grand Merci)

Num
Avatar
ru-th
sinon rajoute une colonne
avec
Â=MAX(Nom²;Valeur)
valider en matricielle (ctrl+maj+enter)
recopier sur les autres et filtrer sur les vrais
a+
rural thierry
"ru-th" a écrit dans le message de
news:uhb$
Salut,

juste en passant, un tableau croisé dynamique "nom" enl igne, "valeur" en
donnée mais avec la fonction max (au lieu de somme) cela ne t'intéresse
pas

?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de base)

a écrit dans le message de
news:
Bonjour à tous.

Désolé pour ce nouveau post sur une problématique très (trop)
classique sous Excel...
Voilà: J'ai un long fichier Excel de la forme:

Matricule Nom Valeur
00001 DUPONT 345
00001 DUPONT 322
00003 DUPUIS 455
00003 DUPUIS 455
00003 DUPUIS 435
00003 DUPUIS 422
00005 DUCHAMP 123
00005 DUCHAMP 220
00005 DUCHAMP 125
00005 DUCHAMP 125
00008 DURAND 300
00008 DURAND 320

Duquel je ne veux extraire que les lignes où, pour chaque matricule,
la valeur 'Valeur' est maximale ce qui donne:
Matricule Nom Valeur
00001 DUPONT 345
00003 DUPUIS 455
00005 DUCHAMP 220
00008 DURAND 320

Quelqu'un saurait-il faire cela?

UGM (Un Grand Merci)

Num




Avatar
ru-th
hum, ou oups !
Â=MAX((Nom²)*Valeur)
est mieux (toujours matricielles)
mais reste à gérer tes max identiques

"ru-th" a écrit dans le message de
news:%
sinon rajoute une colonne
avec
Â=MAX(Nom²;Valeur)
valider en matricielle (ctrl+maj+enter)
recopier sur les autres et filtrer sur les vrais
a+
rural thierry
"ru-th" a écrit dans le message de
news:uhb$
Salut,

juste en passant, un tableau croisé dynamique "nom" enl igne, "valeur"
en


donnée mais avec la fonction max (au lieu de somme) cela ne t'intéresse
pas

?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de
base)



a écrit dans le message de
news:
Bonjour à tous.

Désolé pour ce nouveau post sur une problématique très (trop)
classique sous Excel...
Voilà: J'ai un long fichier Excel de la forme:

Matricule Nom Valeur
00001 DUPONT 345
00001 DUPONT 322
00003 DUPUIS 455
00003 DUPUIS 455
00003 DUPUIS 435
00003 DUPUIS 422
00005 DUCHAMP 123
00005 DUCHAMP 220
00005 DUCHAMP 125
00005 DUCHAMP 125
00008 DURAND 300
00008 DURAND 320

Duquel je ne veux extraire que les lignes où, pour chaque matricule,
la valeur 'Valeur' est maximale ce qui donne:
Matricule Nom Valeur
00001 DUPONT 345
00003 DUPUIS 455
00005 DUCHAMP 220
00008 DURAND 320

Quelqu'un saurait-il faire cela?

UGM (Un Grand Merci)

Num








Avatar
LSteph
Bonsoir VBA,

mais reste à gérer tes max identiques
Valeur+(ligne()/10000000)


... + ou -

;-)

Amitiés.

lSteph




hum, ou oups !
Â=MAX((Nom²)*Valeur)
est mieux (toujours matricielles)
mais reste à gérer tes max identiques

"ru-th" a écrit dans le message de
news:%
sinon rajoute une colonne
avec
Â=MAX(Nom²;Valeur)
valider en matricielle (ctrl+maj+enter)
recopier sur les autres et filtrer sur les vrais
a+
rural thierry
"ru-th" a écrit dans le message de
news:uhb$
Salut,

juste en passant, un tableau croisé dynamique "nom" enl igne, "valeur"
en


donnée mais avec la fonction max (au lieu de somme) cela ne t'intéresse
pas

?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de
base)


a écrit dans le message de
news:
Bonjour à tous.

Désolé pour ce nouveau post sur une problématique très (trop)
classique sous Excel...
Voilà: J'ai un long fichier Excel de la forme:

Matricule Nom Valeur
00001 DUPONT 345
00001 DUPONT 322
00003 DUPUIS 455
00003 DUPUIS 455
00003 DUPUIS 435
00003 DUPUIS 422
00005 DUCHAMP 123
00005 DUCHAMP 220
00005 DUCHAMP 125
00005 DUCHAMP 125
00008 DURAND 300
00008 DURAND 320

Duquel je ne veux extraire que les lignes où, pour chaque matricule,
la valeur 'Valeur' est maximale ce qui donne:
Matricule Nom Valeur
00001 DUPONT 345
00003 DUPUIS 455
00005 DUCHAMP 220
00008 DURAND 320

Quelqu'un saurait-il faire cela?

UGM (Un Grand Merci)

Num











Avatar
num_gg
On 21 mai, 18:11, "ru-th" wrote:
hum, ou oups !
=MAX((Nom)*Valeur)
est mieux (toujours matricielles)
mais reste à gérer tes max identiques

"ru-th" a écrit dans le message denews:%23A6eFI8m



sinon rajoute une colonne
avec
=MAX(Nom;Valeur)
valider en matricielle (ctrl+maj+enter)
recopier sur les autres et filtrer sur les vrais
a+
rural thierry
"ru-th" a écrit dans le message de
news:uhb$
Salut,

juste en passant, un tableau croisé dynamique "nom" enl igne, "vale ur"
en


donnée mais avec la fonction max (au lieu de somme) cela ne t'int éresse
pas

?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de
base)



Salut Thierry,

Je ne peux apparemment pas utiliser les TCD car mon fichier est plus
complexe que mon premier exemple.

Mais ton idée de créér une colonne supplémentaire où on calculera it le
MAX pour un matricule donné est intéressante et jouable pour moi.
Cependant je vois pas bien la formule que tu proposes. Cela donnerait
quoi dans la "vraie vie"? Voici un échantillon plus conforme à la
réalité:

A B C +plein
d'autres colonnes (D,E,F, jusquà W) X
1 MATRICULE CIV NOM
etc...
INDICE
2 300006 M.
DUPUIS ....
285
3 300007 M.
DUPONT ....
345
4 300007 M.
DUPONT ....
350
5 300007 M.
DUPONT ....
360
6 300007 M.
DUPONT ....
320
7 300008 MME
DURAND ....
426
8 300014 MME
DURAND ....
436
9 300014 MME
DURAND ....
336

Donc si je te suis, il faudrait avoir une colonne supplémentaire (Ici
"Y" estampillée "MAXINDICE") où on obtiendrait cela?

... X Y
INDICE MAXINDICE
285 285
345 360
350 360
360 360
320 360
426 436
436 436
336 436

Quelle serait alors la formule pour la colonne Y?

Merci pour votre aide

Num



Avatar
cousinhub
Bonsoir,
si j'ai bien compris, et d'après ce que Thierry t'a déjà proposé, le
plus simple serait sans doute le TCD, avec la valeur max au lieu de la
somme...
Regarde le fichier ci-joint, et signale-nous si cela correspond à tes voeux.
Bon courage

http://cjoint.com/?fwwGkBbT1j



On 21 mai, 18:11, "ru-th" wrote:
hum, ou oups !
Â=MAX((Nom²)*Valeur)
est mieux (toujours matricielles)
mais reste à gérer tes max identiques

"ru-th" a écrit dans le message denews:%



sinon rajoute une colonne
avec
Â=MAX(Nom²;Valeur)
valider en matricielle (ctrl+maj+enter)
recopier sur les autres et filtrer sur les vrais
a+
rural thierry
"ru-th" a écrit dans le message de
news:uhb$
Salut,
juste en passant, un tableau croisé dynamique "nom" enl igne, "valeur"
en


donnée mais avec la fonction max (au lieu de somme) cela ne t'intéresse
pas

?
a+
rural thierry (plus dynamique exploiteur de données qu'extracteur de
base)



Salut Thierry,

Je ne peux apparemment pas utiliser les TCD car mon fichier est plus
complexe que mon premier exemple.

Mais ton idée de créér une colonne supplémentaire où on calculerait le
MAX pour un matricule donné est intéressante et jouable pour moi.
Cependant je vois pas bien la formule que tu proposes. Cela donnerait
quoi dans la "vraie vie"? Voici un échantillon plus conforme à la
réalité:

A B C +plein
d'autres colonnes (D,E,F, jusquà W) X
1 MATRICULE CIV NOM
etc...
INDICE
2 300006 M.
DUPUIS ....
285
3 300007 M.
DUPONT ....
345
4 300007 M.
DUPONT ....
350
5 300007 M.
DUPONT ....
360
6 300007 M.
DUPONT ....
320
7 300008 MME
DURAND ....
426
8 300014 MME
DURAND ....
436
9 300014 MME
DURAND ....
336

Donc si je te suis, il faudrait avoir une colonne supplémentaire (Ici
"Y" estampillée "MAXINDICE") où on obtiendrait cela?

... X Y
INDICE MAXINDICE
285 285
345 360
350 360
360 360
320 360
426 436
436 436
336 436

Quelle serait alors la formule pour la colonne Y?

Merci pour votre aide

Num






Avatar
num_gg
On 22 mai, 22:32, cousinhub wrote:
Bonsoir,
si j'ai bien compris, et d'après ce que Thierry t'a déjà proposé, le
plus simple serait sans doute le TCD, avec la valeur max au lieu de la
somme...
Regarde le fichier ci-joint, et signale-nous si cela correspond à tes v oeux.
Bon courage

http://cjoint.com/?fwwGkBbT1j




Pour Cousin Hub et Thierry.


OK pour un TCD. Ton exemple, Hub m'a convaincu. En revanche, désolé,
ça va être les "TCD pour les nuls".
Pour être plus formel, j'ai déposé un extrait complet de mon fichier
(les noms et numéros de SS sont factices).

Mais l'idée est bien celle que vous avez compris Thierry et Hub: il
s'agit de purger cette feuille excel en trouvant le max sur la colonne
nommée ODRMTUT1 (avant-avant dernière en "X") et ce pour un matricule
donné: première colonne nommée ODRMATRI (la première en "A").

ici>>>> http://cjoint.com/?fxkF3X2oP3

Cela donnerait quoi votre TCD sur cet exemple?

Un grand merci pour votre aide

num

PS: En attendant, je me documente un peu plus sur les TCD. Promis!


Avatar
cousinhub
Bonsoir,
ci-joint, un exemple de ce que cela pourrait donner :
http://cjoint.com/?fyuVLUxvpE


Mais comme dit Thierry, reste à gérer les valeurs max identiques...
Bon courage sur l'apprentissage des TCD, cela permet de faire des
synthèses sous excel, de manière native, sans prendre beaucoup de place,
(pas de formules), et sans risque d'erreur quant aux valeurs saisies
dans la base de données, elles seront répercutées dans le TCD, donc très
facile pour les corrections.
Bonne soirée

On 22 mai, 22:32, cousinhub wrote:
Bonsoir,
si j'ai bien compris, et d'après ce que Thierry t'a déjà proposé, le
plus simple serait sans doute le TCD, avec la valeur max au lieu de la
somme...
Regarde le fichier ci-joint, et signale-nous si cela correspond à tes voeux.
Bon courage

http://cjoint.com/?fwwGkBbT1j



Pour Cousin Hub et Thierry.


OK pour un TCD. Ton exemple, Hub m'a convaincu. En revanche, désolé,
ça va être les "TCD pour les nuls".
Pour être plus formel, j'ai déposé un extrait complet de mon fichier
(les noms et numéros de SS sont factices).

Mais l'idée est bien celle que vous avez compris Thierry et Hub: il
s'agit de purger cette feuille excel en trouvant le max sur la colonne
nommée ODRMTUT1 (avant-avant dernière en "X") et ce pour un matricule
donné: première colonne nommée ODRMATRI (la première en "A").

ici>>>> http://cjoint.com/?fxkF3X2oP3

Cela donnerait quoi votre TCD sur cet exemple?

Un grand merci pour votre aide

num

PS: En attendant, je me documente un peu plus sur les TCD. Promis!






Avatar
num_gg
C'est encore moi.

Pour clore ce fil, je vous indique la solution que j'ai finalement
adoptée pour résoudre le problème que j'avais:

"Il faut trier les données selon le "MATRICULE" ( en Croissant) et
selon la "VALEUR" (en Décroissant).

Puis sélectionner la colonne MATRICULE et faire:
Données|Filtrer...|Filtre élaboré...| cocher "Filtrer la liste sur
place" et "Extraction sans doublon".

Ainsi, seul le premier matricule (avec la valeur max) est visible.
Il ne reste plus qu'à sélectionner la totalité de la feuille et copier
les lignes visibles vers une nouvelle feuille."

voila.
C'est moins sexy qu'un TCD mais ça a l'avantage d'être rapide et
compréhensible, moyennant une petite procédure écrite, pour un
opérateur non-expert en excel.

Merci à tous (hub et thierry) pour votre aide

Num