Adapter une formule

Bonjour à tous.

J'ai trouvé une formule dans le forum qui me fais une liste des doublons mais quand je veux l'adapter, cela ne marche pas. #NOM?

{=SI(MIN(NB.SI($B$3:B3;noms))>0;"";INDEX(noms;MIN(SI(NB.SI($B$3:B3;noms)=0;LIGNE(noms)-1));))}

Cette formule allait trier dans une colonne les doublons et les mets à la fil.

Je veux faire la même chose mais en allant chercher sur une colonne avec des chiffres.

Comment faire?

Merci de votre aide.

René

Bonjour,

un petit fichier exemple avec les explications va nous aider @ bien t'aider...

@ +

Bonjour, un fichier joint avec les explications coorespondantes.

Les données sur la feuille "semaine 111" proviennent d'une extraction et se présentent toujours de la même façon pour les colonnes.

Le nombres de lignes peux variés mais jamais supérieurs à 400 lignes.

Merci de votre retour.

René

19semaine-111.xlsx (36.72 Ko)

Bonjour René,

r.gouet a écrit :

J'ai trouvé une formule dans le forum qui me fais une liste des doublons mais quand je veux l'adapter, cela ne marche pas. #NOM?

{=SI(MIN(NB.SI($B$3:B3;noms))>0;"";INDEX(noms;MIN(SI(NB.SI($B$3:B3;noms)=0;LIGNE(noms)-1));))}

Cette formule fait référence à un champ nommé "noms" qui n'existe pas dans ton fichier.

On va le créer. Pour ça :

  • va dans Formules / Gestionnaire de noms / Nouveau.
  • clique sur Nouveau
  • dans le champ Nom mets : noms
  • dans le champ Fait référence à mets la formule suivante :
=DECALER('semaine 111'!$L$6;;;NBVAL('semaine 111'!$L:$L)-1)

- clique sur OK. La création du champ dynamique noms est terminée. Quelque soit le nombre de ligne de ta colonne L (et s'il n'y a pas de cellule vide), le champ s'adaptera automatiquement.

- Ensuite, va dans l'onglet Feuil1 et mets la formule suivante en A3, en veillant à valider la formule avec CTRL+MAJ+ENTREE (formule matricielle) :

=SI(MIN(NB.SI($A2:A$2;noms))>0;"";INDEX(noms;MIN(SI(NB.SI($A2:A$2;noms)=0;LIGNE(noms)-(MIN(LIGNE(noms))-1)));))

En validant comme cela, les accolades ( { } )vont se mettre automatiquement. Ne jamais copier une formule avec des accolades, ça ne donne rien.

- Pour les autres colonnes, il te suffira de faire une recherche du code "Doc achat" puis de retourner la valeur des colonnes PA, Lot Récpt., Nom fourn... correspondante.

On utilisera une combinaison des fonctions INDEX et EQUIV tel que dans l'exemple ci-dessous pour la colonne PA :

=SIERREUR(INDEX('semaine 111'!M:M;EQUIV(Feuil1!$A2;'semaine 111'!$L:$L;0));"")
14semaine-111-v1.xlsx (37.22 Ko)

Bonjour @ tous,

Les formules matricielles qui s’incrémentent sont très gourmandes en ressources, une variante plus rapide testée sur une plage de 2000 lignes...

Après avoir bien définis le champ "noms" comme il est indiqué par l'ami vba-new,

Sélectionner la plage A2:A100

Coller cette formule dans la barre de formule,

=SIERREUR(INDEX(noms;EQUIV(PETITE.VALEUR(SI(EQUIV(noms;noms;0)=LIGNE(INDIRECT("1:"&LIGNES(noms)));NB.SI(noms;"<"&noms));LIGNE(INDIRECT("1:"&LIGNES(noms))));NB.SI(noms;"<"&noms);0));"")

Valider par Ctrl+Maj+Entree

Elle fait l'extraction sans doublons avec tri de plus petit au plus grand...

@ + +

Rechercher des sujets similaires à "adapter formule"