addieren einer Zahlenreihe in einer Zelle
#1
Hallo,

ich möchte eine Zahlenreihe 1+2,75-1,5*2*4, die in einer Zelle (als Text formatiert) eingegeben wurde, ausrechnen.
Auf dem Blatt soll diese Zahlenreihe in A1 auch so erscheinen, das Ergebnis soll in A2 stehen.

Könnt ihr mir helfen? Bitte erklärt es für Anfänger.

LG Klina
Top
#2
Hi,

das kannst du auf einem Umweg bewerkstelligen. In meinem Beispiel ist in A1 dein gewünschter Zahlentext und in B1 soll das Ergebnis stehen. Dann musst du B1 über den Namensmanager einen Namen vergeben (im Beispiel Ergebnis) und darin als Bezug die Formel
Code:
=AUSWERTEN(Tabelle1!$A$1)
schreiben.

Nun kannst du mit =Ergebnis deinen Text berechnen.

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
11+2+36

ZelleFormel
B1=Ergebnis
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Gelöscht!
Schöne Grüße
Berni
Top
#4
Hi Klina,

noch ein Nachtrag: wenn du einen Bereich benötigst (z.B A1:A10), dann gibst du diesen im Namensmanager an. Deine Datei musst du zwingend als .xlsm oder .xlsb abspeichern, weil es sich um ein so genanntes Excel4-Makro handelt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Moin und nur ergänzend!
Da das Excel4-Makro ohnehin als .xlsm oder *b abgespeichert werden muss …
… nehme ich dann gleich "richtiges" VBA.
Die UDF (user defined function) kann dann ebenfalls als ganz normale Tabellenfunktion genutzt werden.
Das Replace() ist hier notwendig, damit VBA den englischen Dezimaltrenner nimmt.
Code:
Function Text_ausrechnen#(Zelle$)
Text_ausrechnen = Evaluate(Replace(Zelle, ",", "."))
End Function

AB
11+2,75-1,5*2*4-8,25
2-8,25

NameBezug
Ergebnis=AUSWERTEN(Tabelle1!$A$1)

ZelleFormel
B1=Ergebnis
A2=Text_ausrechnen(A1)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 2 Nutzer sagen Danke an RPP63 für diesen Beitrag:
  • WillWissen, echo
Top
#6
Hi Ralf,

danke für die Ergänzung - hab' sie doch gleich mal in meine Sammlung aufgenommen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#7
Moin Ralf,

Zitat: … nehme ich dann gleich "richtiges" VBA. … Text_ausrechnen = Evaluate(Replace(Zelle, ",", "."))

Ein Glück, dass nicht ExecuteExcel4Macro davor steht Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Ja, sind beides Methoden der Application.  :21:
Ich persönlich empfinde allerdings die Übergabe des Strings als Argument einer Funktion "stimmiger" als die Namensdefinition, bei der man ja durchaus mit den Dollars spielen kann, was zu einer Verunsicherung der meisten Fragenden führt.

… und auch hier habe ich wiederum die Füßchen der Gänse bemüht. Wink

Gruß Ralf

NB:
Ich musste tatsächlich nachschlagen, wie der Plural von Dollar lautet.  Blush
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#9
Vielen Dank für eure schnelle Antwort.
Ihr habt mir sehr geholfen.

LG Klina
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste