Microsoft 365 combinaison de plusieurs "=si"

Bemanace

XLDnaute Nouveau
Bonjour,
j'aimerai trouver une formule qui combine plusieurs options :
J'ai 2 cellules avec des horaires C3 et F3,
- si elles sont vident toutes les deux : ""
- si les deux sont renseignées : CONCATENER(" (";C3;" / ";F3;") "))

par contre une seule des deux est remplie il me faut juste la récupérer ente parenthèse et là je bloque...

pour le moment j'ai ça
=SI(ET(ESTVIDE(C3);ET(ESTVIDE(F3)));"";CONCATENER(" (";C3;" / ";F3;") "))
du coup quand j'ai qu'un horaire je me retrouve avec "(12h30 / )" ou "( / 9h45)"

est-ce qu'une âme charitable aurait la solution ?
Merci d'avance.
 
Dernière édition:
Solution
Vous pouvez aussi faire :
Code:
=" ("&C3&SI(OU(ESTVIDE(C3);ESTVIDE(F3));"";" / ")&F3&") "
Le '&' est un opérateur de concaténation. Je ne sais pas pourquoi il y a aussi une fonction CONCATENER, étant donné que c'est plus court comme ça.
Mais ceci reviendrait au même que la formule indiquée plus haut :
Code:
=CONCATENER(" (";C3;SI(OU(ESTVIDE(C3);ESTVIDE(F3));"";" / ");F3;") ")
Notez que si C3 et F3 sont vides les deux ça mettrait quand même "()". s'il fallait rien du tout plutôt, je reviendraits à mes SUBSTITUE :
Code:
=SUBSTITUE(SUBSTITUE(SUBSTITUE("("&C3&" / "&F3&")";"( / ";"(");" / )";")");"()";"")

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer:
VB:
=SI(C3+F3=0;"";SI(ET(ESTNUM(C3);ESTNUM(F3));CONCATENER(" (";TEXTE(C3;"hh:mm");" / ";TEXTE(F3;"hh:mm");") ");SI(ET(ESTNUM(C3);F3=0);"("&TEXTE(C3;"hh:mm")&")";SI(ET(ESTNUM(F3);C3=0);"("&TEXTE(F3;"hh:mm")&")";0))))

JHA
 

Pièces jointes

  • Classeur texte horaire.xlsx
    9.5 KB · Affichages: 5

xUpsilon

XLDnaute Accro
Re,

Pardon j'avais zappé la partie des parenthèses.
Les & fonctionnent comme des additions textuelles. = "A" & "B" = "AB"

Du coup ici on aurait :
=SI(ESTVIDE(C3);SI(ESTVIDE(F3);"";"(" & F3 & ")");SI(ESTVIDE(F3);"(" & C3 & ")";"(" & C3 & " / " & F3 & ")"))

Mais c'est moins classe qu'en passant par substitute.

Bonne continuation
 

Dranreb

XLDnaute Barbatruc
Vous pouvez aussi faire :
Code:
=" ("&C3&SI(OU(ESTVIDE(C3);ESTVIDE(F3));"";" / ")&F3&") "
Le '&' est un opérateur de concaténation. Je ne sais pas pourquoi il y a aussi une fonction CONCATENER, étant donné que c'est plus court comme ça.
Mais ceci reviendrait au même que la formule indiquée plus haut :
Code:
=CONCATENER(" (";C3;SI(OU(ESTVIDE(C3);ESTVIDE(F3));"";" / ");F3;") ")
Notez que si C3 et F3 sont vides les deux ça mettrait quand même "()". s'il fallait rien du tout plutôt, je reviendraits à mes SUBSTITUE :
Code:
=SUBSTITUE(SUBSTITUE(SUBSTITUE("("&C3&" / "&F3&")";"( / ";"(");" / )";")");"()";"")
 
Dernière édition:

Bemanace

XLDnaute Nouveau
Bonjour à tous,

A essayer:
VB:
=SI(C3+F3=0;"";SI(ET(ESTNUM(C3);ESTNUM(F3));CONCATENER(" (";TEXTE(C3;"hh:mm");" / ";TEXTE(F3;"hh:mm");") ");SI(ET(ESTNUM(C3);F3=0);"("&TEXTE(C3;"hh:mm")&")";SI(ET(ESTNUM(F3);C3=0);"("&TEXTE(F3;"hh:mm")&")";0))))

JHA
j'ai une erreur, la formule est super complexe je n'arrive pas à décrypter, un grand merci d'avoir pris le temps d'y réfléchir les réponses d'xUpsilon et d'Dranreb répondent à mes attentes.
bonne journée
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Avec les données heure en format texte
VB:
=SI(I3+L3=0;"";SI(ET(ESTTEXTE(I3);ESTTEXTE(L3));CONCATENER(" (";I3;" / ";L3;") ");SI(ET(ESTTEXTE(I3);L3="");"("&I3&")";SI(ET(ESTTEXTE(L3);I3="");"("&L3&")";0))))

JHA
 

Pièces jointes

  • Classeur texte horaire.xlsx
    9.9 KB · Affichages: 2

Discussions similaires

Réponses
3
Affichages
642

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof