Formules TROUVE et REMPLACER illogiques

Bonjour,

Je pars d'un texte brut et je cherche à le tronquer à partir du moment où il trouve "drawable="

Exemple d'un texte brut :

<!-- CHECK24 --><item component="ComponentInfo{de.check24.check24/de.check24.check24.activities.Check24Activity}" drawable="check24" />

"drawable=" je l'identifie au caractère 124 :

=TROUVE(" drawable=";A1)+10

Je veux donc récupérer le texte brut en le tronquant après "drawable="

=REMPLACER(A1;A4;5000;"")

Résultat :

<!-- CHECK24 --><item component="ComponentInfo{de.check24.check24/de.check24.check24.activities.Check24Activity}" drawable=

Ce principe, je l'applique sur des dizaines de milliers de lignes sauf que pour une dizaine d'entre elles, ça ne marche pas.

Exemple :

<!-- ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎Crowdsource‎‏‎‎‏‎ --><item component="ComponentInfo{com.google.android.apps.village.boond/com.google.android.apps.village.boond.activities.SplashActivity}" drawable="google_crowdsource" />

Si je remplace <!-- ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎Crowdsource‎‏‎‎‏‎ --> par <!-- Test --> par exemple, la formule fonctionne ! Je ne comprends pas pourquoi...

Merci.

4classeur1.xlsx (9.75 Ko)

Visiblement, cela vient d'un caractère non visible à l'oeil nu qui entre <!-- et Crowdsource.

La formule est aussi limitée en nombre de caractères.

Exemple avec ceci :

<!-- Dash Warning --><item component="ComponentInfo{oht.lightsymbols.guidewarrninglight.lightdiagnostics.light.dashboard.dashboardwarninglights/oht.lightsymbols.guidewarrninglight.lightdiagnostics.light.dashboard.dashboardwarninglights.MainActivity}" drawable="dash_warning" />

Bonjour,

Ton propos est quelque peu obscur ! la fonction REMPLACER ne sert nullement à tronquer une chaîne mais à remplacer un texte constitué par une partie de celle-ci par un autre texte comportant le même nombre de caractère.

Et le caractère 124, à ma connaissance le caractère pipe => |, je ne le vois pas !

Cordialement.

Désolé si je n'ai pas été assez clair

En fait, je me sers de :

• TROUVE pour déterminer la position à partir de laquelle je veux tronquer ma chaine de caractères, soit après drawable="

• REMPLACER pour remplacer une chaine de caractères par rien et ainsi tronquer.

[...]à remplacer un texte constitué par une partie de celle-ci par un autre texte comportant le même nombre de caractère.

Ah non, je remplace par le nombre de caractères que je veux et 0 en l'occurence.

Par rapport au caractère 124, je parle d'une position dans la chaine de caractères. Si on déplace 124 fois le curseur de gauche à droite, on arrive à tel endroit.

Je ne sais même pas ce qu'est le caractère pipe

Donc déjà REMPLACER n'est pas la fonction adéquate !

Regarde du côté de SUBSTITUE...

L'Aide d'Excel te fournira toutes informations sur les caractéristiques des fonctions et leur syntaxe d'utilisation.

Cordialement.

Je ne comprends pas pourquoi SUBSTITUTE serait plus adéquet.

REMPLACER me permet de définir le début et la fin de la chaine de caractères que je souhaite modifier.

Je n'utilise jamais SUBSTITUTE mais d'après l'aide des formules, je ne vois pas comment ça peut mieux fonctionner dans mon cas.

Petite précision, la chaine de caractères n'est jamais la même : tant les caractères que leur nombre sont toujours différents.

REMPLACER, fonction

Description

REMPLACER remplace une chaîne de caractères par une autre, en fonction du nombre de caractères spécifiés.

Syntaxe

REMPLACER(ancien_texte, no_départ, no_car, nouveau_texte)

ancien_texte Obligatoire. Représente le texte dont vous voulez remplacer un nombre donné de caractères.

no_départ Obligatoire. Représente la place du premier caractère de la chaîne ancien_texte là où le remplacement par nouveau_texte doit commencer.

no_car Obligatoire. Représente le nombre de caractères d’ancien_texte que nouveau_texte doit remplacer à l’aide de REMPLACER.

no_octets Obligatoire. Représente le nombre d’octets d’ancien_texte que nouveau_texte doit remplacer à l’aide de REMPLACERB.

nouveau_texte Obligatoire. Représente le texte qui doit remplacer les caractères d’ancien_texte.

Si cet extrait de l'Aide sur REMPLACER n'est pas suffisant pour que tu comprennes, je ne peux rien pour toi.

Non mais je n'ai aucun problème avec cette formule ^^

Elle fonctionne parfaitement dans 99% des cas et l'anomalie rencontrée ne vient / venait pas de la formule de toute façon.

Tu me proposes SUBSTITUTE plutôt que REMPLACER et tu cites l'aide pour REMPLACER... Un exemple serait le bienvenu en fait. Un exemple qui règle mon problème initial.

Note : je n'ai pas "no_octets" dans mon aide de formule.

no_octets ne concerne pas REMPLACER, mais REMPLACERB (qui ne concerne pas les langues alphabétiques), j'ai simplement oublié de le supprimer. Ne pas en ternir compte.

Le reste est suffisamment explicite concernant la fonction REMPLACER : tu remplaces une partie de texte définie par une position de départ et un nombre de caractères, par un nouveau texte.

edit: Il faut juste savoir à partir de quel caractère et le nombre de caractère que tu remplaces, et ton problème est résolu.

Je les ai déjà ces réponses (voir mon premier post)... C'est l'anomalie avec Google Crowdsource que je n'arrive pas à expliquer.

Encore une fois, je n'ai aucun problème avec mes formules.

Si aucun problème, c'est que ça fonctionne ! Sinon c'est qu'il y en a un et qu'il faut le trouver...

Dans ton post de 11h45, l'exemple que tu donnes : un texte de 19 caractères, ne laissant apparaître aucun caractère invisible... ???

Je n'ai aucun problème avec les formules en elles-mêmes mais :

C'est l'anomalie avec Google Crowdsource que je n'arrive pas à expliquer.

Est-ce que tu as regardé ce qui est dans les balises "codes" ? Est-ce que tu as testé ? En ouvrant le fichier au moins une fois, tu devrais mieux comprendre mon problème.

Enfin bref, le problème ne semble pas venir d'exemple pour le caractère "non visible".

En revanche, REMPLACER semble limitée en nombre de caractères (cf exemple de mon poste de 11h45).

Depuis Excel 2007, une cellule peut accueillir 32767 caractères au lieu de 255 antérieurement, mais beaucoup de fonctions restent limitées à ces 255 caractère et Microsoft n'ayant rien documenté sur ce point, on ne peut que le constater à partir de tests.

J'ai fait quelques tests... Il semble effectivement que REMPLACER tronque à 255 caractères. Dans ce cas il va te falloir trouver une autre solution...

TROUVE par contre renvoie un résultat au-delà de 255, et ne paraît donc pas concerné par cette limite (à confirmer éventuellement par des tests plus étendus).

Cordialement.

Oui, je vais creuser.

Merci pour l'info des 255 caractères.

J'ai eu l'expérience récemment avec INDEX, un élément du tableau dépassait 255 caractères... On ne comprend pas d'abord ce qui se passe car on ne pense pas d'emblée à ce type de limitation...

Quand on a un outil offrant 16 000 colonnes et 1 000 000 lignes, on ne pense en effet plus à des limites de 255

Rechercher des sujets similaires à "formules trouve remplacer illogiques"