Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wie berechne ich eine wahlfrei eingegebe

Wie berechne ich eine wahlfrei eingegebe
15.12.2014 14:35:35
Rainer
Hallo,
habe das altbekannte Problem, eine als Text (in einer Excel-Zelle) vorliegende Formel mit einer Variablen (in anderer Excel-Zelle liegend) berechnen zu wollen.
Alle hier und anderswo beschriebenen Hilfen funktionieren nicht.
Beispiel (stark vereinfacht):
in Excel-Blatt Zelle A1 liegt die Formel als text "5+2*xyz^3-xyz^2"
xyz ist eine Variable und steht in zelle A2
in Zelle A3 soll Brechnung stattfinden
dito dann in Zellen B1 bis B3 etc.
1. Lösungsansatz: der Zelle A2 den Namen "xyz" zuweisen
funktioniert nun problemlos (auch ohne VBA direkt als zellenberechnung) aber bringt mich nicht weiter, da obige Formel mehrfach in Blatt verwendet werden soll, aber mit jeweils verschiedenen Werten für xyz, daher scheidet dies aus
2. Lösungansatz: aus dieser Forumshilfe übernommene Funktion "TextAlsWert(sFormula)"
hier komme ich auch nicht weiter, denn NUR wenn die Variable xyz im Excelblatt als NAME (also in einer konkreten Zelle) definiert wurde, wird sie in der Formelberechnung erkannt. Eine Zuweisung über Auslesen aus Zelle A2 funktioniert nicht!
Selbst wenn der Variablen xyz innerhalb der Funktion ein fester Wert zugewiesen wird (zum Austesten) ist dieser Wert zwar problemlos abrufbar (z.B. über Ändern von VBA-Code in: TextAlsWert=xyz) ABER NICHT in obiger Formel nutzbar
Ich hoffe das Problem ausreichend erklärt zu haben, wenn nicht bitte nachfragen
Viele Grüße und besten Dank im voraus für Eure Hilfe
Rainer

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie berechne ich eine wahlfrei eingegebe
15.12.2014 14:46:46
Daniel
Hi
das mit den Namen könnte schon funtionieren, wenn die Struktur immer gleich ist, dh wenn Formel und Variablenwert immer in der selben Zeile direkt nebeneinander stehen, links der Wert, rechts die Formel.
man kann nämlich mit einem Namen auch relative Zellbezüge beschreiben!.
hierzu musst du beim Anlegen des Names so vorgehen:
1. Markiere die Zelle mit der Formel (also die, in der der Name verwendet wird: A3)
2. öffne jetzt den Namensmanager und lege den Namen an, entferne die die $-Zeichen aus der Zelladresse =Tabelle1!A2
damit der relative Zellbezug richtig erstellt wird, musst du als Zellbezug immer die Zelle auswählen, die zur gerade aktiven Zelle passt.
eine zweite Variante ist, den Namen über die Indirekt-Funktion als Formel anzulegen, den relativen Zellbezug kann man über die Z1S1-Schreibweise darsstellen: =Indirekt("ZS(-1)",falsch)
Gruß Daniel

Anzeige
AW: Wie berechne ich eine wahlfrei eingegebe
15.12.2014 15:13:23
Rainer
Hallo, danke für die prompte Antwort, leider ist der Aufbau etwas vertrackter:
Der Formeltext selbst wird aus einer Matrix (gesondertes Arbeitsblatt mit Verdichter-Kennlinien) über eine verweis-Funktion ausgelesen. Die Variable (hier konkret das Verdichterverhältnis - in der Formel immer als x bezeichnet) steht in der gleichen Zeile wie die Berechnungszelle, von diesen Zeilen stehen mehrere untereinander ( es soll für versch. Verdichter mit versch. Verdichtungsverhältnissen in einer Tabelle berechnet werden)
eine Berechnung wird manuell über F9 ausgelöst, nach z.B. einer Änderung der Eingangstemperatur soll Blatt neu berehcnet werden
Hierfür kommt eigtl. nur Lösungansatz 2 infrage. oder ?!?
(Zumal die jeweilige Formeln auch vollkommen unterschiedl. aufgebaut sind - z.B. Für Verdichter A eine polynomische Formel, für Verdichter B eine logarithmische)
vor allem irritiert mich, dass bei Lösungansatz 2 die Variable xyz der Funktion zwar bekannt ist, aber nicht zur Berechnung in Formel nutzbar
Bsp.: Qellcode VBA:

Function TextAlsWert(sFormula As String, Pi_x As Double) As Double
Dim var As Variant
var = Application.Substitute(sFormula, ",", ".")
TextAlsWert = Application.Evaluate(var)
End Function

Bsp. Formel-String in Zelle:
>> 3*Pi_x^3+2*Pi_x^2 Jetzt kann ich Testen z.B. über Ändern des Codes in
TextAlsWert = Pi_x
und Aufrufen der Funktion, und sehe, dass die Variable Pi_x korrekt mit ihrem Wert angezeigt wird.
ABER bei der richtigen Formelberechnung
TextAlsWert = Application.Evaluate(var)
wird der Fehlerwert #WERT! angezeigt. Gehe ich jetzt her und vergebe den Namen Pi_x für eine Zelle im Blatt, rechnet die Funktion problemlos
Viele Grüße
Rainer

Anzeige
AW: Wie berechne ich eine wahlfrei eingegebe
15.12.2014 15:20:38
Daniel
Hi
Lösungansatz 2 kenne ich jetzt nicht, aber so wie du es beschreibst, müsste der Lösungsansatz über einen Namen mit relativem Zellbezug funktionieren.
Entscheidend ist, dass Wert und zugehörige Formel immer "den gleichen Abstand" zueinander haben.
wenn du beispielsweise die Zelle A3 aktivierst und dann den Namen mit dem Zellbezug =Tabelle1!A2 erstellst (also relativ) und dann diesen Namen in der Zelle B5 anwendest, dann wird sich dieser Name, weil er relativ ist, auf B4 beziehen (gleiche Spalte, eine Zeile höher).
gruß Daniel

AW: Wie berechne ich eine wahlfrei eingegebe
15.12.2014 15:13:32
Rainer
Hallo, danke für die prompte Antwort, leider ist der Aufbau etwas vertrackter:
Der Formeltext selbst wird aus einer Matrix (gesondertes Arbeitsblatt mit Verdichter-Kennlinien) über eine verweis-Funktion ausgelesen. Die Variable (hier konkret das Verdichterverhältnis - in der Formel immer als x bezeichnet) steht in der gleichen Zeile wie die Berechnungszelle, von diesen Zeilen stehen mehrere untereinander ( es soll für versch. Verdichter mit versch. Verdichtungsverhältnissen in einer Tabelle berechnet werden)
eine Berechnung wird manuell über F9 ausgelöst, nach z.B. einer Änderung der Eingangstemperatur soll Blatt neu berehcnet werden
Hierfür kommt eigtl. nur Lösungansatz 2 infrage. oder ?!?
(Zumal die jeweilige Formeln auch vollkommen unterschiedl. aufgebaut sind - z.B. Für Verdichter A eine polynomische Formel, für Verdichter B eine logarithmische)
vor allem irritiert mich, dass bei Lösungansatz 2 die Variable xyz der Funktion zwar bekannt ist, aber nicht zur Berechnung in Formel nutzbar
Bsp.: Qellcode VBA:

Function TextAlsWert(sFormula As String, Pi_x As Double) As Double
Dim var As Variant
var = Application.Substitute(sFormula, ",", ".")
TextAlsWert = Application.Evaluate(var)
End Function

Bsp. Formel-String in Zelle:
>> 3*Pi_x^3+2*Pi_x^2 Jetzt kann ich Testen z.B. über Ändern des Codes in
TextAlsWert = Pi_x
und Aufrufen der Funktion, und sehe, dass die Variable Pi_x korrekt mit ihrem Wert angezeigt wird.
ABER bei der richtigen Formelberechnung
TextAlsWert = Application.Evaluate(var)
wird der Fehlerwert #WERT! angezeigt. Gehe ich jetzt her und vergebe den Namen Pi_x für eine Zelle im Blatt, rechnet die Funktion problemlos
Viele Grüße
Rainer
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige