Microsoft 365 fonction qui peut contenir du texte ou une date

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

j'ai un souci sur une formule que je ne parviens pas à faire.
J'ai fait des tests et des recherches sans trouver mon bonheur lol

Et je m'adresse à nos Ténors pour demander de l'aide :)

=SI(REPT(J636;1)<>"";0;SI(CNUM(GAUCHE(J636;10))<AUJOURDHUI()+1;1;0))

1 - SI(CNUM(GAUCHE(J636;10))<AUJOURDHUI()+1;1; = fonctionne bien si la cellule ne contient que des chiffres,
2 - Dans ma colonne, j'ai des cellules qui ne contiennent que des lettres et si c'est le cas, je voudrais résultat = 0
J'ai tenté un tas de trucs sans succès Grrrr !!!:mad:

Auriez-vous la bonne formule ?
Si besoin, je ferai une p'tit fichier test.

Je vous remercie et continue mes recherches,
lionel :)
 

patricktoulon

XLDnaute Barbatruc
Bonsoir à tous
@job75 semble etre a l'aise avec des petit caractères placés bizarrement dans ces formules le "N" , les "-" etc...
j'ai beau chercher sur la toile je ne trouve rien qui expliquerait la chose correctement
si notre camarade job veux bien nous en dire un peu plus je l'en remercie d'avance
 

laurent950

XLDnaute Accro
Bonsoir @job75
Bon -- c'est classique pour convertir un texte en nombre
je traduirais plutôt cela comme une fonction boolean --
=N(SI(ESTNUM(J3);--GAUCHE(J3;10)< AUJOURDHUI()+1))
si la cellule J3 est numérique; si vrai -- GAUCHE(J3;10) donc True = 1 mais a contrario si faux = 0
C'est donc le
-- devant qui fait office de test Boolean True (1) Ou False (0)
convertir un texte en nombre ? ou plutôt en fonction boolean qui renvois True (1) ou False (0) ? c'est pour comprendre @job75 si vous avez un complément de réponse merci.

J'ai trouvé cela :

Laurent
 

TooFatBoy

XLDnaute Barbatruc
C'est donc le -- devant qui fait office de test Boolean True (1) Ou False (0)
convertir un texte en nombre ? ou plutôt en fonction boolean qui renvois True (1) ou False (0) ?
Un moins n'est pas une fonction booléenne. Et deux moins bout à bout, c'est comme faire SIGNE(x) * ABS(x), ce n'est pas non plus une fonction booléenne. ;)

Comme tu le dis, une fonction booléenne renvoie soit 1 soit 0.
Mais --x renvoie x, donc ce n'est pas une fonction booléenne.

Par exemple, pour J3 (le 13 novembre 2021) ça renvoie 44513. ;)
 

TooFatBoy

XLDnaute Barbatruc
Un peu plus simple :
=N(SI(ESTNUM(J4);--GAUCHE(J4;10)< AUJOURDHUI()+1))
Bon -- c'est classique pour convertir un texte en nombre, ça prend 2 octets alors que 1* en prend 4.
Juste pour mon information personnelle, est-ce que c'est utile de "convertir le texte en nombre" vu qu'on a déjà fait le test sur J4 qui est donc numérique ?


De toute façon vu que la cellule contient une date au sens Excel (d'après le fichier en #18), ça ne fait pas grand sens de faire un GAUCHE(x;10)... un GAUCHE(x;5) marcherait tout aussi bien. 😄

Pour moi, la formule à utiliser pourrait se résumer à ceci :
=1*SIERREUR(J4<(AUJOURDHUI()+1);0)
Ou, en reprenant le principe de Job75 :
=--(J4<(AUJOURDHUI()+1)) ou =N(J4<(AUJOURDHUI()+1))
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 147
Messages
2 085 767
Membres
102 968
dernier inscrit
Tmarti