Partager via

Excel change mes formules contenant des fonctions INDIRECT en matricielles

Anonyme
2023-09-06T17:42:02+00:00

Bonjour,

J'ai une feuille de calcul qui contient plusieurs formules contenant une ou plusieurs fonctions INDIRECT. Lorsque je ferme le document puis le rouvre, toutes les formules contenant des fonctions INDIRECT sont transformées en formules matricielles. Lorsque la formule ne contient qu'une seule fonction INDIRECT, la valeur renvoyée est la bonne, mais dans les cas des formules avec plusieurs INDIRECT, une erreur de type #VALEUR est retournée. Je sais que mes formules fonctionnent car lorsque j'enlève les accolades de la formule matricielle, la bonne valeur est renvoyée sans erreur.

Autre information qui peut peut-être aider, ce phénomène ne se produit uniquement dans des fichiers Excel 97-2003 et pas dans 365. Je ne connais pas bien 97-2003 donc c'est peut-être lié à cela.

Merci beaucoup !

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. Hecatonchire 53,540 Points de réputation Modérateur bénévole
    2023-09-06T18:46:04+00:00

    Quand j'enregistre ta formule en 97-2003 Excel alerte que la formule va poser un problème

    Alerte 1 : La fonction SI.CONDITIONS

    Alerte 2 :

    Tentes cette syntaxe :

    =@SI(

    OU($A6=0;

      G$5<@INDIRECT("'PARAMÈTRES'!E"&(LIGNE())); 
    
      G$5>@INDIRECT("'PARAMÈTRES'!G"&(LIGNE())) 
    
     ); 
    

    "";

    SI.CONDITIONS(

                 ET(G$5>@INDIRECT("'PARAMÈTRES'!F"&(LIGNE())); 
    
                    G$5<=@INDIRECT("'PARAMÈTRES'!G"&(LIGNE())) 
    
                   ); 
    
                 4; 
    
                 G$5=@INDIRECT("'PARAMÈTRES'!F"&(LIGNE())); 
    
                 3; 
    
                 G$5>=@INDIRECT("'PARAMÈTRES'!E"&(LIGNE())); 
    
                 1))
    

    cf https://1forme.fr/formules_de-tableaux_dynamiques/#qui-a-ajout%C3%A9-des-arobases-%C3%A0-ma-formule

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

7 réponses supplémentaires

  1. Anonyme
    2023-09-06T18:29:22+00:00

    Est-ce que changer la version du fichier pourrait poser de gros problèmes ou non?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Hecatonchire 53,540 Points de réputation Modérateur bénévole
    2023-09-06T18:19:11+00:00

    Bonjour

    En version 365, Excel travaille par défaut "en matriciel"

    Cf https://1forme.fr/excel-et-les-matrices-pas-celles-des-cours-de-mathematiques/#le-mode-ae-array-evaluation

    donc, si tu passes le fichier 365 dans une ancienne version, tu as des surprises.

    Mais il y a peut être quelque chose dans tes formules car cela ne me semble pas normal qu'elles fonctionnent sans accolades dans ce cas !

    => voir la réponse de Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-09-06T18:16:35+00:00

    La formule contenant un INDIRECT: =INDIRECT("'PROJETS'!B"&(LIGNE()+2))

    La formule contenant plusieurs INDIRECT: =SI(OU($A6=0;G$5<INDIRECT("'PARAMÈTRES'!E"&(LIGNE()));G$5>INDIRECT("'PARAMÈTRES'!G"&(LIGNE())));"";SI.CONDITIONS(ET(G$5>INDIRECT("'PARAMÈTRES'!F"&(LIGNE()));G$5<=INDIRECT("'PARAMÈTRES'!G"&(LIGNE())));4;G$5=INDIRECT("'PARAMÈTRES'!F"&(LIGNE()));3;G$5>=INDIRECT("'PARAMÈTRES'!E"&(LIGNE()));1))

    Ici elles sont sans accolades. Cette version fonctionne.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2023-09-06T17:57:41+00:00

    Bonjour,

    Peux-tu donner un exemple de ces formules ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire