Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Simplification de formule

28 réponses
Avatar
P.Bastard
Bonjour à tous.

Excel 2002 SP3 .
En K4 : Nom du réceptionnaire=DELAUNAY Date de saisie=20080702-2343 Type
client=Professionnel
En K5 : Nom du réceptionnaire=PARNET Date de saisie=20080703-1638 Type
client=Particulier
Etc... toujours la même structure

Je dois en extraire la date pour la comparer à une autre date au format
jj/mm/aaaa en colonne D.
J'y parviens avec la formule suivante :
=DATE(GAUCHE(STXT(K4;TROUVE("20";K4);8);4);DROITE(GAUCHE(STXT(K4;TROUVE("20";K4);8);6);2);DROITE(STXT(K4;TROUVE("20";K4);8);2))

Mais il y a probablement une solution plus simple.

D'avance, merci pour vos suggestions.

Bien cordialement,

Patrick.

10 réponses

1 2 3
Avatar
P.Bastard
Re, Modeste

ÚTE(STXT(K4;TROUVE("sie=";K4)+4;4);STXT(K4;TROUVE("sie=";K4)+8;2);STXT(K4;TROUVE("sie=";K4)+10;2))

la mienne est plus courte que la votre !!!

Mes compliments, Modeste, pour ce bel exercice
Accordez, cependant que je vous la racourcisse.

DATE(STXT(K4;TROUVE("=2";K4)+1;4);STXT(K4;TROUVE("=2";K4)+5;2);STXT(K4;TROUVE("=2";K4)+7;2))

;-))

Patrick
Avatar
Modeste
Bonsour® P.Bastard avec ferveur ;o))) vous nous disiez :

Accordez, cependant que je vous la racourcisse.
DATE(STXT(K4;TROUVE("=2";K4)+1;4);STXT(K4;TROUVE("=2";K4)+5;2);STXT(K 4;TROUVE("=2";K4)+7;2))


Ah ! non ! c'est trop court, jeune homme !
On pouvait dire... oh ! Dieu !... bien des choses en somme...
En variant le ton - par exemple, tenez :
Agressif : 'Moi, monsieur, il est hors de propos ici que l'on me l'amputasse !'

Que dites-vous ?. C'est inutile ?. Je le sais !
Mais on ne se bat pas dans l'espoir du succès !
Non ! non, c'est bien plus beau lorsque c'est inutile

:o)))

en toute logique, la partie invariable est celle qui est à gauche du "=" ;o)))
je me serai limité à
"ie=" pour trouver la date
de façon similiaire,
"re=" pour trouver le réceptionnaire
et "nt=" pour trouver le client

Que ce serait-il passé :
pour traiter des archives avec :
Nom du réceptionnaireÞLAUNAY Date de saisie980702-2343 Type client=Professionnel
=1*(STXT(K4;TROUVE("ie=";K4)+3;4)&"/"&STXT(K4;TROUVE("ie=";K4)+7;2) &"/"&STXT(K4;TROUVE("ie=";K4)+9;2))
ÚTE(STXT(K4;TROUVE("ie=";K4)+3;4);STXT(K4;TROUVE("ie=";K4)+7;2);S TXT(K4;TROUVE("ie=";K4)+9;2))

si la date eut été de la forme jjmmaaaa ???
Nom du réceptionnaireÞLAUNAY Date de saisie081998-2343 Type client=Professionnel
=1*(STXT(K5;TROUVE("ie=";K5)+7;4)&"/"&STXT(K5;TROUVE("ie=";K5)+5;2) &"/"&STXT(K5;TROUVE("ie=";K5)+3;2))
ÚTE(STXT(K5;TROUVE("ie=";K5)+7;4);STXT(K5;TROUVE("ie=";K5)+5;2);S TXT(K5;TROUVE("ie=";K5)+3;2))



Que dites-vous ?. C'est inutile ?. Je le sais !
Mais on ne se bat pas dans l'espoir du succès !
Non ! non, c'est bien plus beau lorsque c'est inutile


--
--
@+
;o)))
Avatar
P.Bastard
Re, Denis.

| TROUVE("=2";...
Cela exclut toutes les dates d'avant l'an 2000


Pas de souci. Requête au jour le jour.

Si ce caractère "-" est vraiment unique dans les chaînes de caractères


C'est le cas.

pourquoi ne pas l'utiliser. "de saisie 080702-2343" , tu obtiendrais
quelque chose comme : =STXT(C3;TROUVE("-";C3;1)-8;8)
Cette formule n'est pas limitatif au niveau des dates et de plus, tu
sauves
encore quelques caractères...;-))



Bingo : gain de 3 caractères.

Avec "Nom du réceptionnaireÞLAUNAY Date de saisie 080704-2343 Type
client=Professionnel" en K4, cela donne au final :
=SI(K4="";"";DATE(STXT(K4;TROUVE("-";K4)-8;4);STXT(K4;TROUVE("-";K4)-4;2);STXT(K4;TROUVE("-";K4)-2;2)))
ce qui me convient parfaitement.
;-)

Amicordialement,

Patrick.
Avatar
P.Bastard
Merci, cher Edmond.
;-)

Amicordialement,

Patrick.

"Modeste" a écrit dans le message de
news:%
Bonsour® P.Bastard avec ferveur ;o))) vous nous disiez :

Accordez, cependant que je vous la racourcisse.
DATE(STXT(K4;TROUVE("=2";K4)+1;4);STXT(K4;TROUVE("=2";K4)+5;2);STXT(K4;TROUVE("=2";K4)+7;2))


Ah ! non ! c'est trop court, jeune homme !
On pouvait dire... oh ! Dieu !... bien des choses en somme...
En variant le ton - par exemple, tenez :
Agressif : 'Moi, monsieur, il est hors de propos ici que l'on me
l'amputasse !'

Que dites-vous ?. C'est inutile ?. Je le sais !
Mais on ne se bat pas dans l'espoir du succès !
Non ! non, c'est bien plus beau lorsque c'est inutile

:o)))

en toute logique, la partie invariable est celle qui est à gauche du "="
;o)))
je me serai limité à
"ie=" pour trouver la date
de façon similiaire,
"re=" pour trouver le réceptionnaire
et "nt=" pour trouver le client

Que ce serait-il passé :
pour traiter des archives avec :
Nom du réceptionnaireÞLAUNAY Date de saisie980702-2343 Type
client=Professionnel
=1*(STXT(K4;TROUVE("ie=";K4)+3;4)&"/"&STXT(K4;TROUVE("ie=";K4)+7;2)&"/"&STXT(K4;TROUVE("ie=";K4)+9;2))
ÚTE(STXT(K4;TROUVE("ie=";K4)+3;4);STXT(K4;TROUVE("ie=";K4)+7;2);STXT(K4;TROUVE("ie=";K4)+9;2))

si la date eut été de la forme jjmmaaaa ???
Nom du réceptionnaireÞLAUNAY Date de saisie081998-2343 Type
client=Professionnel
=1*(STXT(K5;TROUVE("ie=";K5)+7;4)&"/"&STXT(K5;TROUVE("ie=";K5)+5;2)&"/"&STXT(K5;TROUVE("ie=";K5)+3;2))
ÚTE(STXT(K5;TROUVE("ie=";K5)+7;4);STXT(K5;TROUVE("ie=";K5)+5;2);STXT(K5;TROUVE("ie=";K5)+3;2))



Que dites-vous ?. C'est inutile ?. Je le sais !
Mais on ne se bat pas dans l'espoir du succès !
Non ! non, c'est bien plus beau lorsque c'est inutile


--
--
@+
;o)))
Avatar
michdenis
Ah ! non ! c'est trop court, jeune homme !
On pouvait dire... oh ! Dieu !... bien des choses en somme...
En variant le ton - par exemple, tenez :
Agressif : 'Moi, monsieur, il est hors de propos ici que l'on me l'amputasse !'

Que dites-vous ?. C'est inutile ?. Je le sais !
Mais on ne se bat pas dans l'espoir du succès !
Non ! non, c'est bien plus beau lorsque c'est inutile

;-))
Avatar
Modeste
Bonsour® P.Bastard avec ferveur ;o))) vous nous disiez :

encore quelques caractères...;-))


Bingo : gain de 3 caractères.
Avec "Nom du réceptionnaireÞLAUNAY Date de saisie 080704-2343 Type
client=Professionnel" en K4, cela donne au final :
=SI(K4="";"";DATE(STXT(K4;TROUVE("-";K4)-8;4);STXT(K4;TROUVE("-";K4)- 4;2);STXT(K4;TROUVE("-";K4)-2;2)))
ce qui me convient parfaitement.


103 caractères !!!

;o)))
j'ai une solution de 94 caractères ... la la lala...

103 caractères =SI(K4="";"";DATE(STXT(K4;TROUVE("-";K4)-8;4);STXT(K4;TROUVE("-";K4)- 4;2);STXT(K4;TROUVE("-";K4)-2;2)))
94 caractères =SI(ESTERR(Sv(TROUVE("-";K4)));"";DATE(STXT(K4;Gv()-8;4);STXT(K4;Gv()-4 ;2);STXT(K4;Gv()-2;2)))

Façon LL (mpfe : 19 septembre 2000 9:00)
Dim V
Function Sv(Param)
'--- Set Variable
V = Param
Sv = Param
End Function

Function Gv()
'--- Get Variable
Gv = V
End Function


--
--
@+
;o)))
Avatar
michdenis
Façon LL (mpfe : 19 septembre 2000 9:00)
Dim V
Function Sv(Param)
'--- Set Variable
V = Param
Sv = Param
End Function

Function Gv()
'--- Get Variable
Gv = V
End Function

Dans sa structure,
Ceci ressemble étrangement à Property Let() et Property Get()
que l'on utilise habituellement dans un module de classe bien que non
défendu dans un module standard.

C'est asticieux comme approche mais tu ne peux pas t'inscrire au
concours de la formule la plus courte avec ça ;-)))
Avatar
ChrisV
Bonjour Patrick,

Difficile de résister à l'objet du message, et aux réponses déjà données
dans ce fil,
mais il y avait aussi:

=--TEXTE(STXT(A1;TROUVE("-";A1)-8;8);"0000""/""00""/""00")


ChrisV


"P.Bastard" a écrit dans le message de news:
%
Bonjour à tous.

Excel 2002 SP3 .
En K4 : Nom du réceptionnaireÞLAUNAY Date de saisie 080702-2343 Type
client=Professionnel
En K5 : Nom du réceptionnaire=PARNET Date de saisie 080703-1638 Type
client=Particulier
Etc... toujours la même structure

Je dois en extraire la date pour la comparer à une autre date au format
jj/mm/aaaa en colonne D.
J'y parviens avec la formule suivante :
ÚTE(GAUCHE(STXT(K4;TROUVE("20";K4);8);4);DROITE(GAUCHE(STXT(K4;TROUVE("20";K4);8);6);2);DROITE(STXT(K4;TROUVE("20";K4);8);2))

Mais il y a probablement une solution plus simple.

D'avance, merci pour vos suggestions.

Bien cordialement,

Patrick.


Avatar
Misange
ChrisV a écrit :
Bonjour Patrick,

Difficile de résister à l'objet du message, et aux réponses déjà données
dans ce fil,



Ah !! pour faire venir JièL il suffit de mettre HS dans l'objet, pour
toi c'est donc simplification de formule ;-) c'est bon à savoir !

Allo Alain ??? l'un des frères V étant là tu veux pas mettre ton grain
de sel aussi ? ;-)

Bises

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Avatar
ChrisV
;-)

Salut Flo,

C'est aussi le "duel" des échanges de ce fil qui à cette occasion m'a
rappelé d'excellents souvenirs sur les concours de "la plus courte",
rappelée d'ailleurs par GeeDee !

:-*


ChrisV


"Misange" a écrit dans le message de news:

ChrisV a écrit :
Bonjour Patrick,

Difficile de résister à l'objet du message, et aux réponses déjà données
dans ce fil,



Ah !! pour faire venir JièL il suffit de mettre HS dans l'objet, pour toi
c'est donc simplification de formule ;-) c'est bon à savoir !

Allo Alain ??? l'un des frères V étant là tu veux pas mettre ton grain de
sel aussi ? ;-)

Bises

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net


1 2 3