Besoin d'aide pour formule Excel

Fermé
Kaddour Jilali Messages postés 161 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 mars 2010 - 2 oct. 2009 à 16:23
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 5 oct. 2009 à 16:42
Bonjour à tous,

J'ai une colonne avec 'NOM=' le nom de la personne. Je voudrais une formule (pas de VBA, j'y connais rien) qui puisse me donner la liste des noms sans doublons.

En gros il faudrait une première partie qui prend juste le nom de la personne et une deuxième partie qui dédoublonne.

Toute idée sera la bienvenue.


Merci.
A voir également:

11 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
2 oct. 2009 à 16:33
Bonjour
Si votre colonne NOM est en colonne A avec le 1° nom sur la ligne 2 ou plus bas (Important, pas sur la 1)
En B2:
=SI(NB.SI($A$1:A1;A2)>1;"";A2)
Tirez cette formule sur la hauteur de la liste
La colonne B vous affichera une seule fois chaque nom et laissera des blancs en face des doublons.
Cette colonne B peut ensuite être copiée / Collage spécial "valeur" et triée pour éliminer les blancs.
Si vous souhaitez une élimination des blancs en continu, revenez nous voir la solution est à peine plus complexe
Crdlmnt
0
Kaddour Jilali Messages postés 161 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 mars 2010 12
2 oct. 2009 à 16:56
Merci pour la rapidité.

Le problème c'est que je ne veux qu'une partie de la valeur qu'il y a dans la colonne A.

Si j'ai une cellule qui contient par exemple 'jean/paul/dupont', je ne veux garder que 'paul' par exemple.
C'est seulement après que j'ai envie d'éliminer les doublons.

Merci.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
2 oct. 2009 à 17:16
Bonjour
Ca va pas être facile de se comprendre si vous n'en dites pas plus!... et surtout s'il faut expliquer à Excel que vous ne voulez que le nom du milieu, ou peut être de temps en temps le premier, ou aussi le 3° etc..
Je ne vois qu'une solution si vos cellules ne contiennent que des noms séparés par des blancs:
Sélectionnez la colonne nom et :
barre d'outil / Données / Convertir/
cochez "Délimité" puis suivant
Cochez "espace" puis "terminer"
vos noms sont maintenant dans des colonnes séparés. Reste maintenant à définir une formule qui vous permet de détecter des doublons. NB.SI devrait fonctionner, mais on ne peut pas définir la formule sans connaitre le champ que vous obtenez après la conversion. Si vous pouvez mettre sur Ci-joint un tableau exemple de ce résultat sur une vingtaine de lignes, on pourra peut être vous aider.
Crdlmnt
PS;: merci d'essayer d'être le plus complet possible dans vos questions!

A vous lire
0
Kaddour Jilali Messages postés 161 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 mars 2010 12
2 oct. 2009 à 17:29
Très bien, je vais essayer de m'expliquer au mieux.

J'ai une colonne (la colonne S pour être précise). Cette colonne contient une adresse internet classique et un bout de code toujours à la suite de l'adresse.
Voici un exemple de ce que je peux avoir dans une cellule de la colonne S:

'www.site.com/pagedaccueil/section1.html?ca=[ce que je veux sélectionner]&pleindautresinformations'.

J'ai près de 10 000 lignes comme ça. Le fait est que la variable [ce que je veux sélectionner] n'est pas 10 000 fois différentes, il doit y en avoir une dizaines de sortes seulement.

Ce que je veux récupérer, c'est les différentes valeurs de cette variable (une dizaine donc, au total).

Ce qui me paraissait le plus pertinent était de créer une colonne qui ne contient que la valeur qui m'intéresse et donc avoir autant de ligne qu'avant (10 000), puis de dé-doublonner cette liste pour récupérer mes 10 valeurs uniques qui m'intéressent.

N'hésitez pas à poser des questions si il y a encore des zones d'ombres.

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
2 oct. 2009 à 17:36
Re
en attendant que j'analyse votre répoinse, ci joint un exemple de ce qui est possible, mais je n'ai pas encore lu votre dernier message.
A tout à l'heure
http://www.cijoint.fr/cjlink.php?file=cj200910/cijnTrzDRj.xls
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
2 oct. 2009 à 17:52
Rere
ci joint un nouveau fichier pour que vous puissiez analyser le principe et mieux cerner, je pense, le but de mes questions.
http://www.cijoint.fr/cjlink.php?file=cj200910/cijpeoLmZ8.xls
Crdlmnt
0
Kaddour Jilali Messages postés 161 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 mars 2010 12
2 oct. 2009 à 18:09
On s'en approche.

J'ai vu qu'il y avait la formule suivante qui ne prend que la partie avant le '?' --> =GAUCHE(A2;TROUVE("?";A2;1)-1).

Est-il possible de ne sélectionner que ce qu'il y a entre 'ca=' et le '&', car mes adresses sont du type suivant:

www.site.com/pagedaccueil/section1.html?ca=jojo&pleindautresinformations

Comment récupérer 'jojo' ? Est-ce que c'est possible de faire GAUCHE, DROITE ou quelque chose comme ça ?

Rien ne presse, je ne pourrai répondre que demain.

D'ici là, bonne soirée, et encore merci.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
2 oct. 2009 à 18:26
Bonspoir
Voila voila, suite et peut être fin.
C'est un peu plus compliqué mais c'est peut être cela que vous voulez?
http://www.cijoint.fr/cjlink.php?file=cj200910/cijKpN9aSa.xls
Vous pouvez "ajuster" la formule en jouant soit sur les codes des item "trouve" entre guillemets, soit sur les valeurs + ou - associées à ces items, qui positionnent le départ et la fin du texte à éditer;
bonne soirée
Crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
4 oct. 2009 à 15:00
Re
une autre option éventuelle sans formule, si votre liste est statique et ne doit être traitée qu'une fois:
Sélectionnez la liste / Edition remplacer:
1°) > ca par CA avec un blanc derrière
2°) > & par & avec un blanc devant
ensuite, appliquer la solution :
Données / Convertir / Avec un blanc en "délimité" voir message 5
Vous pouvez aussi convertir deux fois:
1° en choisissant "Autre" et le signe = dans case correspondante
reprendre la colonne créée et même opération avec autre: &
Crdlmnt


0
Kaddour Jilali Messages postés 161 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 mars 2010 12
5 oct. 2009 à 16:05
Merci beaucoup, la version avec formule fonctionne parfaitement. Je testerai aussi la version sans formule plus tard.

Une toute dernière question, est-il possible de m'expliquer les deux formules utilisées, que je puisse les réutiliser et les personnaliser par la suite ?

=STXT(A2;TROUVE("ca";A2;1)+3;TROUVE("&";A2;1)-TROUVE("ca";A2;1)-3)

Pour celle-là j'ai cru comprendre que STXT c'est pour prendre un bout de texte dans une chaîne de caractères.

=SI(B2="";"";SI(NB.SI($B$2:B2;B2)>1;"";B2))

Pour celle-là, j'avoue ne rien comprendre ^^.

Merci encore pour votre aide !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
5 oct. 2009 à 16:42
Bonjour
quelques explications donc:
STXT, effectivement édite un bout de texte situé dans la cellule indiquée au 1° item, commençant au N° défini au 2° item et comportant un nombre de caractères indiqué au 3° Item.
La formule TROUVE, elle, compte le rang du premier caractère du texte correspondant a celui entré dans cette partie de la formule:
donc: la formule:
_STXT(A2; cherche le texte dans A2
_TROUVE("ca";A2;1)+3; désigne le 3° rang après le texte "ca" trouvé en A2 (c'est à dire le début de ce que l'on cherche et donne le départ pour STXT
TROUVE("&"A2;1)-TROUVE("ca";A2;1)-3 compte le nombre de caractères à éditer entre les deux signes limites "ca"(+3) et &

Quant à NB.SI, c'est en fait une petite combine:

la formule NB.SI compte le nombre de fois où le texte recherché est présent dans un champ.
Pour identifer les doublons, il suffit donc de compter les identiques dans le champ situé au niveau de la cellule de référence. Vous remarquerez que le champ s'allonge au fur et à mesure que la formule descend dans le tableau (un B bloqué et l'autre libre)
=SI(B2="";"";SI(NB.SI($B$2:B2;B2)>1;"";B2))
lorsque vous descendez cette formule jusqu'à B10 par exemple, elle devient
=SI(B10="";"";SI(NB.SI($B$2:B10;B10)>1;"";B10))
Si B10 est plus d'une fois dans le tableau B2:B10, c'est un doublon, NB.SI est > que 1 et B10 n'est pas éditée.(La valeur de B10 a obligatoirement été reconnue plus haut dans le tableau et donc déja éditée)

le début de la formule:
=SI(B2="";""; n'est là que pour éviter l'affichage #NA ou FAUX lorsque la cellule est vide en B

Espèrant avoir été clair, ce n'est pas très facile!
Crdlmnt

0