Position des chaînes des caractères

P

pias

Guest
Bonsoir le Forum

J’ai quelques questions concernant les chaînes des caractères.

1 – Y a t’il un nombre maximal de caractères a insérer dans une cellule ?

2 – Peut-on déterminer la position des caractères dans la cellule ?
Pour exemple dans la chaîne DFRFDSGASSDSGA la lettre A se trouve en 10 position !

3 – Et pour finir, (et c’est la que j’aimerais y arriver !) si pour la question 2 c’est oui, peut-on arriver a déterminer la position d’une chaîne ?

Pour exemple la chaîne DSGA se trouve en 5 position car la première lettre de la chaîne se trouve en 5 position, mais aussi en 11 position !

Voilà je sais que ça fais beaucoup a la fois, mais ce week-end en parlant d’Excel a mes amis la question ma été adressé, j’ai fais quelques recherches et avec la formule :

=SI(NB.SI(A1;"*DSGA*")>0;"DSGA";"")

on arrive a déterminer ce la chaîne existe, mais pas la position !

Merci beaucoup pour des possibles conseils .

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
M

Monique

Guest
Bonjour,

Avec respect de la casse :
=TROUVE("D";A1) te donne la position de la lettre D
(la 1ère lettre D s'il y en a plusieurs)
Tu n'as pas besoin du 3è argument, mais il existe, c'est le n° de départ :
=TROUVE("D";A1;1)
Sans respect de la casse :
=CHERCHE("d";A1) ou CHERCHE("D";A1)
=CHERCHE("d";A1;1)
Pour une chaîne de caractères :
=TROUVE("DSGA";A1)
=CHERCHE("dsga";A1)

A la 1ère question, la réponse est oui,
mais je n'ai pas le nb max en tête,
je me demande si ça ne dépend pas des versions d'Excel
et, en plus, je n'ai pas le courage de chercher...
 
M

Monique

Guest
Re,

J'ai oublié la fin de la question 3
Si tu as 2 fois "DSGA", justement le 3è argument va servir.
A la place de ce 3è argument, on met la formule CHERCHE (ou trouve) qui te donne la 1ère position de "DSGA"
=CHERCHE("dsga";A1;CHERCHE("dsga";A1)+1)
 
P

pias

Guest
Bonsoir Monique

Merci beaucoup je suis très content, c’est presque bon.
Car j’oublié de préciser que la chaîne ne s’arrête pas a deux mais il peut avoir bien plus, 10 à 30, et il faut trouver leur emplacement exacte , c’est pour de la chimie Monique!

J’ai essayer avec ta formule pour la suite et j’ai mis +2 a la place de +1, mais ça marche pas.

=CHERCHE("dsga";A1;CHERCHE("dsga";A1)+2)
Comment faire ?

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
M

Monique

Guest
Re,

Pour la 3è position de "DSGA" :
=CHERCHE("dsga";A1;CHERCHE("dsga";A1)*2+2)
La 4è position :
=CHERCHE("dsga";A1;CHERCHE("dsga";A1)*3+3)
Etc
Tu peux se faire suivre les résultats de cette manière :
=CHERCHE("dsga";A1)&SI(ESTERREUR(CHERCHE("dsga";A1;CHERCHE("dsga";A1)*2+2));"";"; "&CHERCHE("dsga";A1;CHERCHE("dsga";A1)*2+2))
mais ça ne te donnera pas 30 en une seule formule.
 
M

Mytå

Guest
Bonsoir tardivement cher Forum

En D4 la chaine de caracteres
En D5 la chaine a trouver

En D8 le 1 =CHERCHE($D$5;$D$4;1)
En D9 le 2 =CHERCHE($D$5;$D$4;NBCAR($D$5)+D8)

...

De D9 Glisser Déposer vers le bas

Mytå

P.S. J'ai pas géré l'erreur #Valeur malgré que 7600 caracteres dans (D4) en excel 2000 et cela fonctionne encore....
 
P

pias

Guest
Bonsoir le Forum

Merci beaucoup Myta, quelle élégance dans ta formule, c’est exactement ça que je voulais.

Merci Monique pour tes réponses elles mon permit d’être un peu plus au claire avec les caractères.

Merci Celeda pour tes précisions toujours très utiles, et je pense que tu l’as compris d’après la réponse de Myta sous XL 2000 le maximum de caractères dans une cellules est passé à 32000.

Amicalement

...On se lasse de tout sauf d’apprendre !..
 

Discussions similaires

Statistiques des forums

Discussions
312 844
Messages
2 092 760
Membres
105 529
dernier inscrit
StarExcel