Je reviens à vous encore une fois pour trouver une solution à mon soucis, en effet dans mon classeur en cellule A3 j'ai un ensemble de désignation des travaux. Seulement moi ce que je veux faire c'est une extraction de deux expression bien précises vers la cellule B3 et C3 à savoir pour l'exempleFigure1 (type Renault,) et Figure2 (Immatriculés : RN-16 et RN-14.)
je m’explique :
1- Dans un premier temps je voudrai faire un test si le mot "Type" et le mot "Immatriculé" sont présents dans la désignation alors la suite du code s’exécute sinon avertir l'utilisateur qu'un des mots est absent et mettre un tiret "-" par la suite à la place du mot absent.
2- Après le test extraire le mot " Type ... " de la première lettre jusqu'à la virgule "," (Figure1) et le mot " Immatriculé .... " de la première lettre aussi jusqu'au point final "." (Figure2) et mettre le premier dans la cellule B3 et le second dans la cellule C3.
Je joins le fichier pour voir plus claire comment je veux avoir comme résultat et possédant une formule qui fait ce job mais pas vraiment à mon goût
NB :
Sachant que la syntaxe du mot "type" peut être comme suis : Type - TYPE - type ou Types - TYPES - types
et la syntaxe du mot "immatriculé" peut être comme suis : Immatriculé - IMMATRICULÉ - immatriculé ou Immatriculés - IMMATRICULÉS - immatriculés ou Immatriculées - IMMATRICULÉES - immatriculées
En quoi vos deux formules ne sont pas à votre goût ?
Elles font le job et sont claires, pas "tordues".
Pouvez vous préciser et surtout qu'attendez vous de nous. Faire plus simple ?
Ou auriez vous des cas où ces formules ne fournissent pas le résultat escompté ?
Tordues vs tordues
ou juste pour le fun
En B3, j'ai:
=SUBSTITUE("type "&FILTRE.XML("<t><s>"&SUBSTITUE(A3;" ";"</s><s>")&"</s></t>";"//s[preceding::*[1]='type']");",";"")
En C3, j'ai
=JOINDRE.TEXTE(" ";VRAI;"Immatriculés: ";FILTRE.XML("<t><s>"&SUBSTITUE(A3;" ";"</s><s>")&"</s></t>";"//s[substring(., string-length(.) - string-length(':') +1) = ':'][last()]/following::*"))
Formules qui fonctionnent dans le fichier exemple
Mais qu'en est-il en real life ?
Je n'en sais rien car personnellement je n'ai qu'une auto, et ce n'est pas une Renault.
Donc @INFINITY100 , je te laisse tester avec une colonne A beaucoup plus fournie en occurrences possibles.
PS: D'ailleurs, pourquoi n'avoir pas fourni un fichier exemple plus conséquent ?
Cela aurait aidé pour tester nos propositions
J'ai remanié un peu mes formules
Avec en A1 Travaux d’expertise pour éventuelle prorogation moteur, (Fin de ressource) de deux voitures type Renault, Immatriculés : RN-16 et RN-14.
En B1, cette formule renvoie : type Renault,
Avec une formule nommée CHAINE (qui utilise la fonction LAMBDA)
CHAINE fait référence à
=LAMBDA(Plage;a;b;c;d;SUBSTITUE(SUBSTITUE(MAJUSCULE(Plage);a;b);c;d))
PS: merci à @mapomme (je me suis servi de son classeur CISCO- cherche lig col (Lambda)- v1.xlsx pour mieux appréhender le fonctionnement de LAMBDA)
En quoi vos deux formules ne sont pas à votre goût ?
Elles font le job et sont claires, pas "tordues".
Pouvez vous préciser et surtout qu'attendez vous de nous. Faire plus simple ?
Ou auriez vous des cas où ces formules ne fournissent pas le résultat escompté ?
Merci monsieur sylvanu d'avoir pris la peine de réponde en effet comme l'a dit monsieur fanfan38
problème vient des orthographes différentes... d’où vient le grand soucis car à chaque fois il se peut que l’orthographe change
Avec une formule nommée CHAINE (qui utilise la fonction LAMBDA)
CHAINE fait référence à
=LAMBDA(Plage;a;b;c;d;SUBSTITUE(SUBSTITUE(MAJUSCULE(Plage);a;b);c;d))
PS: merci à @mapomme (je me suis servi de son classeur CISCO- cherche lig col (Lambda)- v1.xlsx pour mieux appréhender le fonctionnement de LAMBDA)
@INFINITY100
Cela fonctionne
C'est juste que tu n'avais pas respecté le mode opératoire jusqu'au bout
La preuve en image
PS: Comme dit précédemment, ce serait un plus (pour nos tests) d'avoir un fichier plus fourni
(Avec plusieurs cas de figures et pas seulement une seule cellule à tester)
NB: Dans 1er exemple, c'était ImmatriculésESPACE:ESPACE et non pas Immatriculés:
Je n'en sais rien et peu me chaut
Moi, durant ce pont de Mai, je suis à fond dans la syntaxe Xpath matinée de LAMBDA (à qui la faute ? )
Plus sérieusement, il semblerait que le demandeur veuille du VBA, c'est donc tout logiquement que je suis parti sur de la formule (et pour seul plaisir égoïste, axée sur FILTRE.XML et tutti quanti )
[PS] On aura compris ou noté que ce message est rédigé sur un mode humoristique
[/PS]
Puisque nous officions sur le plus petit nombre pouvant s'écrire de plusieurs façons comme somme de carrés consécutifs
(ou pour être précis sur Office (10²+11²+12²+13²+14²)
Que penses-tu de cette seule et unique formule "propragative"
En B3