formule trop longue

northman

XLDnaute Nouveau
bonjour
niveau à peine novice, donc uniquement formules
neurone encore correct
je me lance, ce que vous allez lire va vous horrifier, j'ai mis du temps à y arriver (avec lecture du forum) mais fonctionne (fin préambule)

-colonne C alpha expression textuelle avec 2 ou 3 -(tirets)
aaaa aaaa-bbbbb ccccc-ddddddd ddd ddd ou
aaaa aaaa-bbbbb ccccc-ddddd-eeee eeeee ee
1)je ventile en D la partie avant 1er tiret (aaaa aaa)
2)je ventile en E la partie entre 1er et 2ème tiret (bbbb ccc) cas 2 tirets
3)je ventile en E la 1ère partie entre 1er et 2ème tiret (bbbb) cas 3 tirets
4)je ventile en F la 2ème partie entre 1er et 2ème tiret (ccc) cas 3 tirets
5)je ventile en G la partie à droite du dernier tiret
6)enfin en H je récupère une date sur autre feuille du dossier

1)=GAUCHE(C3;CHERCHE("-";C3)-1)

2)=SI(NBCAR(C3)-NBCAR(SUBSTITUE(C3;"-";""))>2;STXT(C3;CHERCHE("-";C3)+1;TROUVE("-";C3;CHERCHE("-";C3)+1)-CHERCHE("-";C3)-1);STXT(C3;CHERCHE("-";C3)+1;CHERCHE(" ";C3;CHERCHE("-";C3)+1)-CHERCHE("-";C3)-1))

3)=SI(NBCAR(C3)-NBCAR(SUBSTITUE(C3;"-";""))>2;STXT(C3;CHERCHE("-";C3;CHERCHE("-";C3)+1)+1;CHERCHE("-";C3;CHERCHE("-";C3;CHERCHE("-";C3)+1)+1)-CHERCHE("-";C3;CHERCHE("-";C3)+1)-1);STXT(C3;CHERCHE(" ";C3;CHERCHE("-";C3))+1;CHERCHE("-";C3;CHERCHE("-";C3)+1)-(CHERCHE(" ";C3;CHERCHE("-";C3))+1)))

4)=SI(NBCAR(C3)-NBCAR(SUBSTITUE(C3;"-";""))>2;DROITE(C3;NBCAR(C3)-CHERCHE("-";C3;CHERCHE("-";C3;CHERCHE("-";C3)+1)+1));DROITE(C3;NBCAR(C3)-CHERCHE("-";C3;CHERCHE("-";C3;CHERCHE("-";C3)+1))))

5)=SI(NBCAR(C3)-NBCAR(SUBSTITUE(C3;"-";""))>2;DROITE(C3;NBCAR(C3)-CHERCHE("-";C3;CHERCHE("-";C3;CHERCHE("-";C3)+1)+1));DROITE(C3;NBCAR(C3)-CHERCHE("-";C3;CHERCHE("-";C3;CHERCHE("-";C3)+1))))

6)=SI(ESTERREUR(INDEX(date_posts;EQUIV(G3;posts;0);1));"";INDEX(date_posts;EQUIV(G3;posts;0);1))

soyez indulgent
merci
cdt
 

Pièces jointes

  • exemple de mon fichier.xls
    29 KB · Affichages: 70

northman

XLDnaute Nouveau
Re : formule trop longue

merci de ta réponse
ma logique me dit que ce sont des usines à gaz, et puisque fonctionnel, pourquoi ne pas voir à améliorer en simplicité
pour info les 6 formules ont été pondues en 3 semaines de 5h/jour
maux de crane pas possible, c'est pour éviter que mon neurone ne s'assoupisse avec la retraite
a+
 

hoerwind

XLDnaute Barbatruc
Re : formule trop longue

Bonjour, salut les autres,

Le plus simple est le menu Données - Convertir, mais il faudra déplacer des données d'une colonne pour les ensembles de valeurs de moins de 3 tirets.

Il y a moyen de le faire automatiquement si dans une colonne intermédiaire, par formule, un troisième tiret manquant est ajouté et cette colonne copiée-collage spécial valeurs sur elle-même.
Cette colonne intermédiaire se supprime automatiquement après avoir converti.

L'avantage de cette méthode est qu'il ne reste plus de formules, donc fichier fortement allégé.

En dehors de cette méthode, vois la proposition par formules sous la pièce jointe.
 

Pièces jointes

  • ConvertirSurTirets.xls
    25 KB · Affichages: 52

hoerwind

XLDnaute Barbatruc
Re : formule trop longue

Bonjour,

En pièce jointe, deux procédures.

La première (tableau supérieur) :
Une seule formule non matricielle, à copier vers la droite et vers le bas.
Les parties répétitives sous la formule ont été nommées.

La deuxième (tableau inférieur) :
Procédure suggérée sous mon message précédent.
Explication sous la pièce jointe.

Si l'une ou l'autre partie devait paraître nébuleuse, toujours à disposition pour une explication complémentaire.
 

Pièces jointes

  • ConvertirSurTiretsV2.xls
    29 KB · Affichages: 76

JCGL

XLDnaute Barbatruc
Re : formule trop longue

Bonjour à tous,

Je ne vais pas revenir sur les excellentes propositions de conversion ou séparation...

Comme tu souhaites simplifier ton fichier, tu peux remplacer ta formule de MeFC :



par




Le format étant déjà conditionnel la condition SI(),VRAI,FAUX n'est pas nécessaire (=H1<>"" renvoie VRAI ou FAUX)

A+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 295
Membres
103 171
dernier inscrit
clemm