45 votes

Fonction Excel qui évalue une chaîne de caractères comme s'il s'agissait d'une formule ?

Supposons que j'aie une chaîne de texte comme "11+5" ou même "=11+5" stockée dans une cellule. Existe-t-il une fonction dans Excel qui me permette d'évaluer cette chaîne comme s'il s'agissait d'une formule ?

Cela me serait utile pour un autre projet dans lequel j'aimerais pouvoir écrire des formules "dynamiques" dans Excel.

1voto

ZygD Points 2341

Toutes les autres réponses qui emploient EVALUATE d'Excel 4.0 ne montrent que la façon d'évaluer le texte dans la référence absolue de la cellule. Par exemple, la formule évaluera toujours le contenu de la cellule A1 et pour évaluer le contenu d'une autre cellule, il faudrait créer une plage nommée distincte avec un chemin d'accès absolu différent.

Il s'agit de l'affichage de comment employer GET.CELL pour faire de la EVALUATE regarder une cellule vers la gauche.

Formules -> Gestionnaire de noms -> Nouveau...
Nom : EVAL_ON_LEFT
Se réfère à : =EVALUATE(GET.CELL(5,OFFSET(INDIRECT("RC",FALSE),0,-1))) Edit Name dialog

Résultat :
enter image description here

Cette formule est meilleure que l'alternative de la référence absolue également parce qu'elle ne présente pas de problème de recalcul .

0voto

jeorje Points 1

jlear La réponse du député est INCORRECTE en ce qui concerne Laurentiu Mirica en utilisant la fonction Macro d'Excel 4 EVALUATE() dans un Named Range : il recalculera CHAQUE fois que l'une des entrées changera. Ce qui en fait une solution idéale pour ce type de problème.

Bien sûr, on peut simplement utiliser A1 y B1 dans la formule, si c'est là que se trouvent les valeurs. Il n'est PAS nécessaire que toutes les valeurs soient des chiffres dans une chaîne de caractères dans une seule cellule. Bien que cela fonctionne également.

0voto

houthakker Points 101

Une note de bas de page 2021 - l'image change un peu avec l'introduction de la fonction LAMBDA (dans les bêtas d'Office 365 au moment de la rédaction), qui peut passer des arguments d'une cellule de feuille de calcul au gestionnaire de noms. evaluate fonction.

Un exemple minimum : pour un EVAL disponible pour les expressions de cellules, nous pourrions effectuer la liaison de noms suivante dans le gestionnaire de noms :

EVAL
=LAMBDA(s, evaluate(s))

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X