Bug fonction "ou" excel

Résolu
Bonjour,
J'ai une formule excel qui ne fonctionne pas bien et je ne comprends pas pourquoi:

=SI(OU(ESTERREUR(P264),P264=0),"/ ",JOUR(P264)&"/"&MOIS(P264)&"/"&ANNEE(P264))

Si la P264 =0 , ou contient une date, pas de problèmes, la formule marche très bien. Par contre si la case P264 contient #N/A, alors excel me renvoie #N/A au lieu de "/". Je trouve cela bizarre d'autant plus que si j'enlève la fonction ou et le P264=0 de la formule, alors j'obtiens bien "/"quand la cellule p264 contient #N/A
Quelqu'un peut me dire pourquoi.
Merci

4 réponses

  1. Contributeur
    Bonjour
    je pense qu'excel analyse les deux conditions en même temps et ne peut donc associer les deux simultanément :
    essayez de les séparer avec:
    =SI(ESTERREUR(P264);"/";SI(P264=0;"/";JOUR(P264)&"/"&MOIS(P264)&"/"&ANNEE(P264)))
    avec bien sur des virgules à la, place de point virgule selon votre séparateur de liste
    crdlmnt
    1. Je pense que c'est à cause de tes , il faut les remplacer par des ;
      1. Bonjour,
        On peut proposer un remède sans connaitre la cause du mal: imbriquer 2 SI au lieu d'utiliser un OU.
        =SI(ESTERREUR(P264);"/ ";SI(P2=0;"/ ";JOUR(P264)&"/"&MOIS(P264)&"/"&ANNEE(P264)))
        Une explication serait la bienvenue.
        1. Contributeur
          Salut tontong
          la solution est correcte et la cause du mal est assez facile à identifier:
          en utilisant le code OU, on demande à Excel de traiter simultanément les deux conditions avant de passer à la suivante
          et excel ne sait pas comparer un NA avec une valeur numérique, ici 0
          démonstration: inverse les deux conditions dans notre proposition et tu verras que cela ne fonctionne pas non plus.
          En séparant les deux , on arrête la lecture de la formule dès que la première condition est remplie.
          crtdlmnt
        2. À Vaucluse
          Bien sûr je n'avais pas vu ta réponse avant de poster: les mauvaises habitudes ne se perdent pas facilement!
          Seuls les tâtonnements m'ont conduit à une solution. En fait ce qui m'a le plus perturbé c'est que en cas de NA =OU(ESTERREUR(P264),P264=0) retourne VRAI.
          Merci encore pour l'explication. Je dormirai mieux ce soir ;-)
        3. Contributeur
          j'espère que ça ne t'empêchait pas de dormir:-))), tontong.
          ceci dit, je ne sais pas quel est ton excel, mais le mien renvoie NA si j'écris
          =OU(ESTERREUR(P264);P264=0) comme tu l'as testé et que P264 est NA

          bonne nuit quand même
        4. Je ne sais pas comment va être la nuit mais ce n'est pas mon jour!
          J'avais testé =OU(ESTERREUR(P264);Q264=0) pour voir si le problème venait d'un double test sur une même cellule. Mille excuses présentées pour avoir aggravé mon cas en écrivant une ânerie.
      2. Merci pour votre aide, la formule avec les si séparés marche très bien. :)