Registriert seit: 05.01.2022
Version(en): 2007
Hallo zusammen,
ich habe folgendes Problem, das es zu lösen gilt.
Es werden aus verschiedenen Excel Tabellen einzelne Zellen in einer neuen Tabelle als Addition eingesetzt, das sieht vereinfacht ohne die Tabellennamen dann Beispielsweise so aus:
=A1+B1+C1
Der Wunsch ist nun das die Formel anstatt der Zellen die tatsächlichen Werte anzeigt:
=123,54+254,25+125,00
Die Verknüpfung soll dabei aufgehoben werden, es soll der Rechenweg nachvollziehbar werden und das ist nur mit den wirklichen Werten möglich, da die anderen Tabellen zum Zeitpunkt der Prüfung nicht vorhanden sind. Es reicht also nicht nur das Ergebnis als Wert zu übernehmen, die Umwandlung ist mir bekannt.
Vielen Dank für eure Hilfevorab.
LG
Registriert seit: 12.04.2014
Version(en): Office 365
Moin
Markiere jeden Zellbezug in der Formel, drücke F9 und dann ENTER.
Wir sehen uns!
... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 09.08.2017
Version(en): 2016
Servus!
Wie wäre es mit =VERKETTEN("=";A1;"+";B1;"+";TEXT(C1;"##0,00")).
Die Werte kannst du schon noch ändern, aber du siehst die komplette Rechnung.
Liebe Grüße
Alex
Registriert seit: 05.01.2022
Version(en): 2007
Die Variante von @shift-del macht was es soll, gibts das auch noch mit einem Befehl, das dann alle Bezüge in der Formel in Werte gewandelt werden?
Wenn nicht ist das auf jeden Fall trotzdem eine riesen Hilfe, vielen Dank.
@Oldiefan Die Version mit Formeln ist viel zu kompliziert, das muss am Ende jemand ohne Vorkentnisse bedienen können und es sollen nur stumpf die Werte dort stehen. Aber die Idee ist sonst auch Klasse.
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
Zitat:gibts das auch noch mit einem Befehl, das dann alle Bezüge in der Formel in Werte gewandelt werden?
Das ist eine hochkomplexe Angelegenheit, da man den Formelstring komplett parsen und jedes Argument / jeden Bezug auf Auswertbarkeit überprüfen muss. Müssen ja vielleicht auch nicht immer einzelne Bezüge sein, sondern auch sowas wie =A1+SUMME(B5:B7)-B1.Hatten wir zuletzt schon mal irgendwo - aber eine bereits existierende Lösung gab es nicht.
Registriert seit: 05.01.2022
Version(en): 2007
Nee es sollen am Ende ja nur die wirklichen Werte dort stehen, keine Formel. Der Idealfall wäre das mit F9, oder was auch immer, die ganze Formel einfach auf die tatsächlichen Werte geändert würde. Die Verknüfungen alle auf einen Klick in die Werte umgeschrieben werden und die Formel weiter funktioniert.
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Wieso "Neee" - genau dazu hatte ich Dir doch geantwortet und geschrieben, dass das hochkomplex ist - auch wenn es immer nur einzelne Zellbezüge und simple mathematische Operatoren sind. Es wird halt nochmal um den Faktor 1000 komplexer, wenn man auch Funktionen innerhalb der Formel auswerten müsste - daher mein Beispiel mit SUMME(...). Wenn das in Deiner Anwendung nicht der Fall ist, fällt das natürlich weg - es bleibt aber nach wie vor ein sehr aufwändiges Unterfangen. Und ich kenne da auch keine bereits existierende Vorlage / UDF / Lösung.
Aber vielleicht fühlt sich jemand motiviert, das mal anzupacken.
Wenn es beispielsweise immer nur Additionen sind - und dazu nur mit einzelnen Zellbezügen - wäre das mit vertretbarem Aufwand machbar.
Die Erfahrung lehrt allerdings, dass es am Ende nicht bei der simplen Annahme bleibt.
Registriert seit: 05.01.2022
Version(en): 2007
Nee war darauf bezogen, das es nichts sein darf, was mit einer Formel einher geht. Die F9 Funktion ist genau was ich suche, nur am liebsten halt auf alle Verknüpfungen der Zelle. Wenn das nicht geht ist mit trotzdem geholfen und ich bedanke mich nochmal ganz herzlich!
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
mit durchgängig Addition in der Formel ist es noch recht einfach.
Diese Funktion in ein allgemeines Modul packen:
Code:
Function Parsen(DieFormelzelle As Range) As String
Dim arr, x As Long, s As String
s = DieFormelzelle.Formula
arr = Split(s, "+")
For x = 0 To UBound(arr)
s = Replace(s, arr(x), Evaluate(arr(x)))
Next x
Parsen = "=" & s
End Function
In Der Datei dann aufrufen mit:
=PARSEN(D1)
wobei D1 die Zelle mit der Formel ist (z.B. =A1+B1+C1)
Per VBA könnte man damit dann auch alle Zellen abklappern und die Formeln (=A1+B1+C1) durch die ausgewertete Variante (
=123,54+254,25+125,00) ersetzen.
Registriert seit: 05.01.2022
Version(en): 2007
Ist lieb das du dir die Arbeit noch machst, aber das ist zu komplex, alleine weil dann schon weitere Zellen für die Übertragung benötigt werden.