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

extraction sans doublons avec condition

8 réponses
Avatar
DOMINIQUE
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant sur la
cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif) avec cette
formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible avec
une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide

8 réponses

Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#LSDC

JB

On 15 fév, 13:12, "DOMINIQUE" wrote:
Bonjour,

Je voudrais extraire les donn es  de la plage  Base_Matricule  vers la
colonne(A3:A) de la feuille "Calculateur" avec le crit re se trouvant sur la
cellule appel e Liste_Massif  (Base_Massif_Code=Liste_Massif) avec ce tte
formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Mat ricule­;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT(" 1:"&LIGNES(­Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible av ec
une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
 With Sheets("base").Range("b2:b63000")
    .AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
    CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
    End With

merci pour votre aide


Avatar
DOMINIQUE
Merci pour l'aide
mais je suis en panne j ai essayer ca
=INDEX(Base_Matricule;Base_Massif_Code=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))
Validez par ctrl +maj+ entrée
et ca
=INDEX(Base_Matricule;SI(Base_Massif_Code=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule))))
Validez par ctrl +maj+ entrée

mais aucune ne marche comme je le voudrais, elle me sorte une et unique
valeur et non toutes les valeurs concernées par la selection Liste_massif
dans la colonne base_massif_code
Si vous pouvez regardez ou est mon erreur?
Merci d 'avance


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant sur
la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif) avec
cette formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible
avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide




Avatar
DOMINIQUE
J'ai essayé ca mais la j extrait de la liste mais toujours avec mes doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant sur
la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif) avec
cette formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible
avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide




Avatar
Daniel.C
Bonjour.
Peux-tu poster un classeur exemple sur www.cjoint.com en effaçant les
données confidentielles ? Poste ensuite ici l'adresse générée.
Daniel

J'ai essayé ca mais la j extrait de la liste mais toujours avec mes doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant sur
la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif) avec cette
formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible avec
une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide






Avatar
DOMINIQUE
Voici mon fichier
http://cjoint.com/?cpqIwMQEMx

Comme il y a beaucoup de formule il serait peut être bon d'enlever le calcul
automatique
j'ai mis la formule dans l onglet TestFormuleJB mais ensuite la formule se
mettra dans la colonne A de l'onglet calculateur.
La sélection se fait dans l onglet sommaire (j ai mis un texte pour
expliquer)

Merci pour votre aide


"Daniel.C" a écrit dans le message de groupe de
discussion : #
Bonjour.
Peux-tu poster un classeur exemple sur www.cjoint.com en effaçant les
données confidentielles ? Poste ensuite ici l'adresse générée.
Daniel

J'ai essayé ca mais la j extrait de la liste mais toujours avec mes
doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant
sur la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif)
avec cette formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible
avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide











Avatar
DOMINIQUE
dans l'onglet testformuleJB j'ai trouvé l'erreur Il fallait remonter la
formule d'un rang.
Par contre quand je réadapte dans l onglet calculateur je ne peux pas faire
une validation matricielle !!!!!!

"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Voici mon fichier
http://cjoint.com/?cpqIwMQEMx

Comme il y a beaucoup de formule il serait peut être bon d'enlever le
calcul automatique
j'ai mis la formule dans l onglet TestFormuleJB mais ensuite la formule se
mettra dans la colonne A de l'onglet calculateur.
La sélection se fait dans l onglet sommaire (j ai mis un texte pour
expliquer)

Merci pour votre aide


"Daniel.C" a écrit dans le message de groupe de
discussion : #
Bonjour.
Peux-tu poster un classeur exemple sur www.cjoint.com en effaçant les
données confidentielles ? Poste ensuite ici l'adresse générée.
Daniel

J'ai essayé ca mais la j extrait de la liste mais toujours avec mes
doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant
sur la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif)
avec cette formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible
avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide













Avatar
Daniel.C
Tes cellules sont au format texte; remets-les au format numérique avant
de reporter les formules.
Daniel

dans l'onglet testformuleJB j'ai trouvé l'erreur Il fallait remonter la
formule d'un rang.
Par contre quand je réadapte dans l onglet calculateur je ne peux pas faire
une validation matricielle !!!!!!

"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Voici mon fichier
http://cjoint.com/?cpqIwMQEMx

Comme il y a beaucoup de formule il serait peut être bon d'enlever le
calcul automatique
j'ai mis la formule dans l onglet TestFormuleJB mais ensuite la formule se
mettra dans la colonne A de l'onglet calculateur.
La sélection se fait dans l onglet sommaire (j ai mis un texte pour
expliquer)

Merci pour votre aide


"Daniel.C" a écrit dans le message de groupe de
discussion : #
Bonjour.
Peux-tu poster un classeur exemple sur www.cjoint.com en effaçant les
données confidentielles ? Poste ensuite ici l'adresse générée.
Daniel

J'ai essayé ca mais la j extrait de la liste mais toujours avec mes
doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers la
colonne(A3:A) de la feuille "Calculateur" avec le critère se trouvant
sur la cellule appelée Liste_Massif (Base_Massif_Code=Liste_Massif)
avec cette formule matricielle ca marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce possible
avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide















Avatar
DOMINIQUE
Merci


"Daniel.C" a écrit dans le message de groupe de
discussion : O6D$
Tes cellules sont au format texte; remets-les au format numérique avant de
reporter les formules.
Daniel

dans l'onglet testformuleJB j'ai trouvé l'erreur Il fallait remonter la
formule d'un rang.
Par contre quand je réadapte dans l onglet calculateur je ne peux pas
faire une validation matricielle !!!!!!

"DOMINIQUE" a écrit dans le message de groupe de
discussion :
Voici mon fichier
http://cjoint.com/?cpqIwMQEMx

Comme il y a beaucoup de formule il serait peut être bon d'enlever le
calcul automatique
j'ai mis la formule dans l onglet TestFormuleJB mais ensuite la formule
se mettra dans la colonne A de l'onglet calculateur.
La sélection se fait dans l onglet sommaire (j ai mis un texte pour
expliquer)

Merci pour votre aide


"Daniel.C" a écrit dans le message de groupe
de discussion : #
Bonjour.
Peux-tu poster un classeur exemple sur www.cjoint.com en effaçant les
données confidentielles ? Poste ensuite ici l'adresse générée.
Daniel

J'ai essayé ca mais la j extrait de la liste mais toujours avec mes
doublons

=INDEX(Base_Matricule;MIN(SI(GAUCHE(Base_Massif_Code;3)=Liste_Massif;SI(NB.SI(A$1:A1;Base_Matricule)=0;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule)));LIGNES(Base_Matricule)))))
valider par ctrl+maj+entrée
et je tire vers les lignes du dessous


"DOMINIQUE" a écrit dans le message de groupe
de discussion :
Bonjour,

Je voudrais extraire les données de la plage Base_Matricule vers
la colonne(A3:A) de la feuille "Calculateur" avec le critère se
trouvant sur la cellule appelée Liste_Massif
(Base_Massif_Code=Liste_Massif) avec cette formule matricielle ca
marche:

=SI(LIGNES($1:1)<=NB.SI(Base_Massif_Code;Liste_Massif);INDEX(Base_Matricule;PETITE.VALEUR(SI(Base_Massif_Code=Liste_Massif;LIGNE(INDIRECT("1:"&LIGNES(Base_Matricule))));LIGNES($1:1)));"")

Le probleme : je voudrais l'extraire sans les doublons. Es ce
possible avec une formule ou uniquement macro?

en macro j ai essayer ca mais ca ne marche pas
With Sheets("base").Range("b2:b63000")
.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets("sommaire").Range("B2:B3"), _
CopyToRange:=Sheets("Calculateur").Range("B3"), Unique:=True
End With

merci pour votre aide