Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

djodjodjo

XLDnaute Occasionnel
Bonjour à tous :)

Aujourd'hui j'essaie d'obtenir une liste dédoublonnée à partir d'une liste de valeurs mais cette liste doit également répondre à une condition (sur une autre colonne). Il faudrait que tout tienne en une formule...

Je parviens à dédoublonner la liste avec la formule matricielle
Code:
=(INDEX($A:$A;MIN(SI(NB.SI(C$1:C1;$A$1:$A$40)=0;LIGNE($A$1:$A$40))))&"")

Mais pas à dédoublonner selon la condition (qui est d'avoir uniquement la liste des personnes qui ont 21 ans, sans doublons). Idée: peut-être utiliser
Code:
SOMMEPROD et *(GAUCHE($B$1:$B$40;2)="21")


Je vous ai mis un exemple beaucoup plus clair avec des jolis prénoms et des âges :)

Merci d'avance pour votre aide !
 

Pièces jointes

  • Dedoublonner_conditions.xlsx
    9.9 KB · Affichages: 64
Dernière édition:

david84

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Bonsoir,
formule matricielle à tester :
Code:
=SI(LIGNES($1:1)<=NB(SI((EQUIV(A$1:A$10;A$1:A$10;0)=LIGNE(A$1:A$10))*(B$1:B$10="21 ans");LIGNE(A$1:A$10)));INDEX(A$1:A$10;PETITE.VALEUR(SI((EQUIV(A$1:A$10;A$1:A$10;0)=LIGNE(A$1:A$10))*(B$1:B$10="21 ans");LIGNE(A$1:A$10));LIGNES($1:1)));"")
A+
 

JCGL

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Bonjour à tous,

Un essai avec
=INDEX($A$1:$B$100;MIN(SI($A$1:$A$100=$D$2;SI(NB.SI($E$1:E1;$B$1:$B$100)=0;LIGNE($A$1:$A$100))));2)&""

Validation matricielle

A + à tous

Edition : Salut David...
 

Pièces jointes

  • JC Isole Valeurs sans Doublons.xls
    20 KB · Affichages: 53

djodjodjo

XLDnaute Occasionnel
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Bonsoir david,

Merci pour ta formule qui fonctionne bien, mais elle me renvoie #N/A si jamais il y a une cellule vide dans laliste à dédoublonner, et c'est problématique car dans mon cas il peut y avoir de nombreuses cellules vides.

J'aurais dû le préciser...

Merci en tout cas
 

david84

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Re
salut Jean-Claude:),
plus simple (à placer en C2) :
Code:
=INDEX($A:$A;MIN(SI((B$1:B$40="21 ans")*(NB.SI(C$1:C1;A$1:A$40)=0);LIGNE(A$1:A$40);LIGNE(A$1:A$40)+LIGNES(A$1:A$40))))&""
A+
Edit : pour info, s'il y a des cellules vides, il te faut donc inclure cette condition dans la formule et à ce moment-là, passer par Equiv :
Code:
=SI(LIGNES($1:1)<=NB(SI((SI(A$1:A$10<>"";EQUIV(A$1:A$10;A$1:A$10;0)=LIGNE(A$1:A$10)))*(B$1:B$10="21 ans");LIGNE(A$1:A$10)));INDEX(A$1:A$10;EQUIV(PETITE.VALEUR(SI((SI(A$1:A$10<>"";EQUIV(A$1:A$10;A$1:A$10;0)=LIGNE(A$1:A$10)))*(B$1:B$10="21 ans");LIGNE(A$1:A$10));LIGNES($1:1));SI((SI(A$1:A$10<>"";EQUIV(A$1:A$10;A$1:A$10;0)=LIGNE(A$1:A$10)))*(B$1:B$10="21 ans");LIGNE(A$1:A$10));0));"")
Mais bon, ma 2ème proposition est plus simple :rolleyes:.

Quand tu écris "plus simple" : tu fais référence à ma formule ?
Non, plus simple par rapport à ma 1ère proposition;), mais il y a effectivement moyen d'inclure la condition "21 ans" dans la formule, ce qui la rend un peu plus compliquée que la tienne, mais pas beaucoup plus je trouve.
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Re Jean-Claude,
d'ailleurs, c'est une bonne idée de faire comme tu l'as fait en prenant comme matrice A1:B100 alors que moi je ne prends que la colonne A.
En faisant de la sorte avec ta formule, cela pourrait donner (à placer en E2) :
Code:
=INDEX(A$1:B$100;MIN(SI(A$1:A$100="21 ans";SI(NB.SI(E$1:E1;B$1:B$100)=0;LIGNE(A$1:A$100))));2)&""
ce qui te permet d'inclure la condition de l'âge directement dans ta formule sans pour autant rallonger la formule en elle-même.
Qu'en penses-tu ?
A+
 

djodjodjo

XLDnaute Occasionnel
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Rebonsoir à vous deux,

david, ta formule
Code:
=INDEX($A:$A;MIN(SI((B$1:B$40="21 ans")*(NB.SI(C$1:C1;A$1:A$40)=0);LIGNE(A$1:A$40);LIGNE(A$1:A$40)+LIGNES(A$1:A$40))))&""

fonctionne très bien pour moi, même lorsqu'il y a des cellules vides. J'ai juste remplacé le "21 ans" par une référence de cellule contenant la condition. Pour moi ça me va, je ne pense pas avoir besoin de + !

Merci à vous deux :)
 

JCGL

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Bonjour à tous,
Re David,

Ta dernière formule est plus courte de 9 caractères que la mienne et est tout autant efficace.
Le fait de mettre l'âge en dur ne me "plait" pas : je préfère le mettre dans une cellule avec une liste de validation par exemple.

A++
A + à tous
 

david84

XLDnaute Barbatruc
Re : Dédoublonnage et SOMMEPROD ==> problème de syntaxe de formule

Re
je préfère le mettre dans une cellule avec une liste de validation par exemple.
D'accord avec toi
Je ne comprends pas l'intérêt de prendre la matrice A1:B100 plutot que $A:$A, pouvez-vous m'expliquer?
Pas d'intérêt particulier : les 2 fonctionnent mais je n'y avais pas pensé et je trouve que ce n'est pas plus bête sur le principe et peut-être que cela permet de comprendre plus facilement la logique de formulation.
A+
 

Discussions similaires