Calculez la formule de text (NO VBA et NO Evaluate)

J'utilise Excel pour calculer une valeur de string où Evaluate () fonctionne bien mais je ne suis pas autorisé à utiliser assessment () dans le Gestionnaire de Nom et je ne suis pas autorisé à l'utiliser dans VB A car le file est converti en .xls. Voici le problème.

J'ai 100 s d'un exemple de formule longue:

($F$10+0)+($F$11+0.125)+($F$10+0.0625) 

dont j'ai besoin d'évaluer séparément les valeurs entre parenthèses.
Je peux séparer la formule à

 A1 is ($F$10+0) A2 is ($F$11+0.125) A3 is ($F$10+0.0625) 

Je voudrais mettre un signe "=" devant cette string et calculer les valeurs A1, A2 et A3.
Cependant, je ne suis pas autorisé à utiliser la fonction EVALUATE () dans le Gestionnaire de files, il ne fonctionne pas dans les cellules et je ne suis pas autorisé à utiliser VB A pour coder la formule.
Y a-t-il un rlocation pour évaluer que je peux utiliser?
Merci

Bienvenue sur le côté sombre d'Excel.

Si vous ne pouvez pas utiliser:

1) VBA

2) macros

3) Évaluer ()

4) Gestionnaire de files / Définir le nom

Ensuite, il n'y a pas de formules simples qui peuvent vous aider (plus vous ne pouvez pas faire votre propre). Microsoft n'a finalement pas abordé ce problème depuis de nombreuses années.

Donc, vous êtes laissé dans vos propres moyens pour créer votre propre parsingur dans les cellules Excel.

Cela peut être très difficile si vous avez différents types de formules qui peuvent changer les signes, ou la quantité de cellules adressées, ou toute autre folie que les formules peuvent prendre.

Cependant … si vous avez un nombre minimum d'écarts quant à la façon dont la formule est exprimée … vous pouvez écrire quelque chose qui fera l'affaire.

Cela vient avec une mise en garde … la formule doit être accompagnée des mêmes parameters à chaque fois. Et ce que vous avez donné à titre d'exemple, la structure a défini exactement la même chose pour chaque formule.

Donc, en utilisant vos exemples, vous pouvez écrire ce code dans la colonne A2:

 =INDIRECT(MID(A1,SEARCH("$",A1),SEARCH("+",A1)-SEARCH("$",A1)),TRUE)+MID(A1,SEARCH("+",A1)+1,LEN(A1)-SEARCH("+",A1)-1) 

Ensuite, vous pouvez copyr ce code sur B2 et C2.

Cela vous donnera les mathématiques correctes comme s'il s'agissait d'une formule.

Les parameters structurels nécessaires à ce travail sont les suivants:

1) L'adresse de la cellule doit toujours commencer par un signe dollar $

2) L'adresse de la cellule doit être immédiatement suivie d'un signe plus +

3) Un seul ajout est fait comme formule

4) L'opérande après le signe plus doit être numérique

5) La formule doit se terminer par une parenthèse)

6) Il ne peut pas mal de commencer par une parenthèse soit (

Et puisque toutes vos formules adhèrent à cette structure … la formule que j'ai fournie fonctionnera.

Si vous devez changer l'élément 3 pour permettre également la «soustraction», vous devrez append des instructions if à la formule et cela va devenir compliqué très rapidement. Impossible? Non. Mais un énorme désordre? Oui.

Quoi qu'il en soit, cela devrait fonctionner avec toutes vos ressortingctions que vous avez. C'est … si vos formules ne s'écartent pas de la structure qui a été fournie. Si vous avez des structures de formule différentes, vous devriez nous en informer … ou mieux encore, écrivez votre propre code.

J'espère que ça m'a aidé. 🙂