J'ai en colonne A une serie de text ayant des nombres au centre.
exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z...
Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Soit pour le premier PA3405, le second DU546...
J'ai trouvé comment testé si c'est un nombre par
isnumber(value(left(right(A1,2),1))). Mais ceci m'oblige à faire 5 si
imbriqué pour testé si les 5 derniers charactères sont du texte ou des
nombres.
j'aurais voulu utiliser un index(matcth()), malheureusement les vecteurs
initiaux refusent que je mettes une formule, ie
index({A1;left(A1,len(A1)-1)...},match(true,{isnumber(value(right(A1,1))),isnumber(value(left(right(A1,2),1))),..},0),1)
plante à la fois dans l'index et dans le match :-!
Existe-il une possibilité pour rentrer des formules à la place des vecteurs
initiaux ?
Sinon, voyez vous un moyen de simplifier la formule ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.M
Salut Benjamin,
J'ai en colonne A une serie de text ayant des nombres au centre. exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z... Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée) suivante:
J'ai en colonne A une serie de text ayant des nombres au centre.
exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z...
Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au
dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée)
suivante:
J'ai en colonne A une serie de text ayant des nombres au centre. exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z... Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée) suivante:
Celle ci-dessous est plus indiquée (pour traiter convenablement les 0). C'est toujours une matricielle : =GAUCHE(A1;EQUIV(1;STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)-9))
Celle ci-dessous est plus indiquée (pour traiter convenablement les 0). C'est
toujours une matricielle :
=GAUCHE(A1;EQUIV(1;STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)-9))
Celle ci-dessous est plus indiquée (pour traiter convenablement les 0). C'est toujours une matricielle : =GAUCHE(A1;EQUIV(1;STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)-9))
J'attends ton feedback.
Salutations,
Daniel M.
poy-poy
Salut Daniel,
c'est effectivement cela que je cherche, mais je dois mal traduire en anglais une des fonctions car je n'obtiens pas ce que je veux :-P
GAUCHE(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))) J'ai remplace left, match, find/search, row,indirect,len. Je pense que le find doit être autre chose mais je ne vois pas quoi. Pour le moment, j'ai un vecteur composé de 1, 2, 3..jusqu'au nombre de charactère de ma chaîne.
Je ne comprends pas quelle peut être la fonction stxt sachant qu'il faut qu'elle me sorte 0.5 pour le bon emplacement du vecteur.
Codialement benjamin
Salut Benjamin,
J'ai en colonne A une serie de text ayant des nombres au centre. exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z... Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée) suivante:
c'est effectivement cela que je cherche, mais je dois mal traduire en
anglais une des fonctions car je n'obtiens pas ce que je veux :-P
GAUCHE(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)))
J'ai remplace left, match, find/search, row,indirect,len.
Je pense que le find doit être autre chose mais je ne vois pas quoi.
Pour le moment, j'ai un vecteur composé de 1, 2, 3..jusqu'au nombre de
charactère de ma chaîne.
Je ne comprends pas quelle peut être la fonction stxt sachant qu'il faut
qu'elle me sorte 0.5 pour le bon emplacement du vecteur.
Codialement
benjamin
Salut Benjamin,
J'ai en colonne A une serie de text ayant des nombres au centre.
exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z...
Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au
dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée)
suivante:
c'est effectivement cela que je cherche, mais je dois mal traduire en anglais une des fonctions car je n'obtiens pas ce que je veux :-P
GAUCHE(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))) J'ai remplace left, match, find/search, row,indirect,len. Je pense que le find doit être autre chose mais je ne vois pas quoi. Pour le moment, j'ai un vecteur composé de 1, 2, 3..jusqu'au nombre de charactère de ma chaîne.
Je ne comprends pas quelle peut être la fonction stxt sachant qu'il faut qu'elle me sorte 0.5 pour le bon emplacement du vecteur.
Codialement benjamin
Salut Benjamin,
J'ai en colonne A une serie de text ayant des nombres au centre. exemple : PA3405Y, DU546XD, N345TVR, 897-B-983Z... Je souhaiterais obtenir le début du text jusqu'à la dernière partie de text.
Si tu cherches à récupérer l'ensemble des caractères d'une chaîne jusqu'au dernier chiffre, avec ta chaîne en A1, la matricielle (Ctrl-Maj-Entrée) suivante:
Pour la dernière formule: =LEFT(A1,MATCH(1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)-9))
Salutations,
Daniel M.
poy-poy
Bonjour Daniel et Isabelle,
Merci pour vos réponses cela marche...Mais j'avoue que je ne comprends pas pourquoi !!
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Dernière question, puis-je transformer la fonction pour la passer sous vba ? Ie est-il possible de faire des matricielles sous vba ?
Pour la dernière formule: =LEFT(A1,MATCH(1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)-9))
Salutations,
Daniel M.
Bonjour Daniel et Isabelle,
Merci pour vos réponses cela marche...Mais j'avoue que je ne comprends pas
pourquoi !!
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me
resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1
soit 3 non ?
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
Ie est-il possible de faire des matricielles sous vba ?
Merci pour vos réponses cela marche...Mais j'avoue que je ne comprends pas pourquoi !!
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Dernière question, puis-je transformer la fonction pour la passer sous vba ? Ie est-il possible de faire des matricielles sous vba ?
Pour la dernière formule: =LEFT(A1,MATCH(1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)-9))
Salutations,
Daniel M.
Daniel.M
Salut,
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante. Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1 j = Asc(Mid(s, i, 1)) If j >= 48 And j <= 57 Then ' c'est un nombre Exit For End If
Next i If i = 0 Then i = Len(s) s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ? Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.
Merci déjà pour la formule, elle est nickel !
Pas de problème.
Salutations,
Daniel M.
Salut,
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me
resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1
soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits
que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante.
Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour
résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1
j = Asc(Mid(s, i, 1))
If j >= 48 And j <= 57 Then ' c'est un nombre
Exit For
End If
Next i
If i = 0 Then i = Len(s)
s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ?
Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante. Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1 j = Asc(Mid(s, i, 1)) If j >= 48 And j <= 57 Then ' c'est un nombre Exit For End If
Next i If i = 0 Then i = Len(s) s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ? Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.
Merci déjà pour la formule, elle est nickel !
Pas de problème.
Salutations,
Daniel M.
poy-poy
Merci beaucoup,
le code, la formule, les explications, tout marche !!!
Cordialement benjamin
Salut,
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante. Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1 j = Asc(Mid(s, i, 1)) If j >= 48 And j <= 57 Then ' c'est un nombre Exit For End If
Next i If i = 0 Then i = Len(s) s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ? Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.
Merci déjà pour la formule, elle est nickel !
Pas de problème.
Salutations,
Daniel M.
Merci beaucoup,
le code, la formule, les explications, tout marche !!!
Cordialement
benjamin
Salut,
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me
resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1
soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits
que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante.
Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour
résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1
j = Asc(Mid(s, i, 1))
If j >= 48 And j <= 57 Then ' c'est un nombre
Exit For
End If
Next i
If i = 0 Then i = Len(s)
s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ?
Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.
le code, la formule, les explications, tout marche !!!
Cordialement benjamin
Salut,
En effet, pourquoi est ce que le match (1;{#value!;-8;-4;-7;#value!}) me resort 4 ?!?!? Il devrait me sortir la position du nombre le plus proche de 1 soit 3 non ?
Non. Il va te sortir le dernier nombre (car tous les nombres sont plus petits que 1) parce qu'il 'pense' que le tableau est TRIÉ de façon ascendante. Va voir l'aide de Match() avec 1 comme dernier paramètre.
Dernière question, puis-je transformer la fonction pour la passer sous vba ?
En VBA, tu disposes de d'autres outils qui sont parfois plus appropriés pour résoudre tes tâches.
Dim i As Integer, j As Integer, s As String
s = Range("A1")
For i = Len(s) To 1 Step -1 j = Asc(Mid(s, i, 1)) If j >= 48 And j <= 57 Then ' c'est un nombre Exit For End If
Next i If i = 0 Then i = Len(s) s = Left(s, i)
Ie est-il possible de faire des matricielles sous vba ? Oui, tu peux passer ta formule (sous forme de string) à la fonction Evaluate.