Registriert seit: 16.06.2019
Version(en): 2013
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
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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' |
| A | B |
1 | 1+2+3 | 6 |
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)
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
16.06.2019, 08:48
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2019, 08:49 von MisterBurns.)
Gelöscht!
Schöne Grüße
Berni
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
16.06.2019, 09:16
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2019, 09:16 von RPP63.)
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
| A | B |
1 | 1+2,75-1,5*2*4 | -8,25 |
2 | -8,25 | |
Name | Bezug |
Ergebnis | =AUSWERTEN(Tabelle1!$A$1) |
Zelle | Formel |
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:2 Nutzer sagen Danke an RPP63 für diesen Beitrag 28
• WillWissen, echo
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Moin Ralf,
Zitat: … nehme ich dann gleich "richtiges" VBA. … Text_ausrechnen = Evaluate(Replace(Zelle, ",", "."))
Ein Glück, dass nicht ExecuteExcel4Macro davor steht
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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.

Gruß Ralf
NB:
Ich musste tatsächlich nachschlagen, wie der Plural von Dollar lautet.
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)
Registriert seit: 16.06.2019
Version(en): 2013
Vielen Dank für eure schnelle Antwort.
Ihr habt mir sehr geholfen.
LG Klina