Berechnung durchführen mit unterstellten Zellwerten
#1
Hallo,

ich habe das folgende Problem:

Ich habe ein Tabellenblatt voll komplexer Formeln, die für den Eingabewert A1 den Ausgabewert A2 ergeben (Zinsrechner, bei dem abhängig vom Basiszinssatz und Anfangsdatum (B1) Zinsen bis zu einem Enddatum (B2) berechnet werden, dabei ist A1 der fällige Betrag und A2 ergibt die zu zahlenden Zinsen). Wenn ich manuell in die Zelle A1 einen Betrag und die Daten in die Zellen B1 und B2 eingebe, erhalte ich den Zinsbetrag in der Zelle A2.

Ich habe jetzt ein separates Tabellenblatt, in welchem eine Vielzahl von Beträgen und Fälligkeitsdaten stehen. Ist es möglich, die Werte per Formel in den Zinsrechner zu übertragen, so dass ich für jeden fälligen Betrag den Betrag der zu zahlenden Zinsen erhalte.
Im Endeffekt: Berechne A2 unterstellt A1 = X, B1 = Y und B2 = Z.

Gibt es eine Funktion mit der ich derartige Unterstellungen (letztlich Variable) definieren kann, ohne die Felder manuell ändern zu müssen?

Danke und viele Grüße
Axis
Top
#2
In dem separaten Blatt "Vielzahl" stehen die drei genannten Variablen in D:F (ich nehme diese als Beispiel, um nicht durcheinander zu kommen), also

D2: Anfang
E2: Ende
F2: Betrag

Neben Deinem Zinsrechner hast Du ein Steuerungsfeld H1, welches Dir die 3 Daten in den Zinsrechner schiebt.

Im Rechner selbst verwendest Du die Formeln

A1: =INDEX(F:F;H1)
B1: =INDEX(D:D;H1)
B2: =INDEX(E:E;H1)

Das Ergebnis A2 könntest Du nun mit einem Ereignis immer in G2 schreiben lassen. Das Worksheet_Change-Event täte dies, wenn Du z.B. den Inhalt von H1: von 2 auf 3 (oder egal wie) änderst.

Im Blatt "Zinsrechner" (Rechtsklick Tabellenreiter, Code Anzeigen) fügst Du ein (ungetestet):

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Row = 1 And Target.Column = 8 Then
   Worksheets("Vielzahl").Range(Cells(Target, 7)) = [A2].Value
 End If
End Sub


Die Datensätze in "Vielzahl" könnten natürlich ebenfalls gleich alle nacheinander versorgt werden. Aber das darf jetzt ein anderer.
Top
#3
(27.08.2017, 00:54)axis3 schrieb: Gibt es eine Funktion mit der ich derartige Unterstellungen (letztlich Variable) definieren kann, ohne die Felder manuell ändern zu müssen?

Also irgendwo wirst du ja was ändern müssen, woher soll Excel sonst wissen mit welcher Variable es jetzt rechnen soll.

Wenn es dir aber nur um etwas Erleichterung beim Eintragen der anderen Möglichkeiten geht, wäre eine Gültigkeitsliste schon mal eine Hilfe.


.xlsx   Zellwerte aus Liste.xlsx (Größe: 9,73 KB / Downloads: 1)
Top
#4
(27.08.2017, 08:17)Elex schrieb: Also irgendwo wirst du ja was ändern müssen, woher soll Excel sonst wissen mit welcher Variable es jetzt rechnen soll.

Genau das ist das Problem. Ich möchte lediglich für eine konkrete Berechnung eines Zellwerts unterstellen, dass die Variablen bestimmte Werte annehmen. Vom Gefühl her meine ich, dass ich die Variablen aus dem Zielwert selbst an den Zinsrechner senden können sollte. Als Beispiel:

In Tabellenblatt 1 gibt es das Feld X1 mit dem Wert EUR 10, in Feld X2 soll das Ergebnis (Zinsen) erscheinen.
Normalerweise trägt man in den Zinsrechner im Tabellenblatt 2 den Ausgangswert in Feld A1 ein, das Ergebnis (Zinsen) erscheint in Feld A2. In die Felder A3 und A4 kann mann

Untechnisch gesprochen möchte ich folgendes zur Berechung von X2 erreichen:

X2 = Tabelle2!A2, unterstelle dabei, dass Tabelle!A1 den Wert X1 annimmt, Tabelle!A3 das Datum 01.01.2014 und Tabelle!A4 das Datum 31.12.2014

Idealerweise sollte von überall im Tabellenblatt 1 auf den Zinsrechner zugegriffen werden können, egal wo die Werte dort stehen. z.B. möchte ich im Feld D3 ein Ergebnis aus dem Zinsrechner eintragen und dabei unterstellen, dass das Feld Tabelle2!A1 den Wert B6 annimmt.
Top
#5
(27.08.2017, 00:54)axis3 schrieb: Gibt es eine Funktion mit der ich derartige Unterstellungen (letztlich Variable) definieren kann, ohne die Felder manuell ändern zu müssen?
Ja.

Berechnen von mehreren Ergebnissen mit einer Datentabelle
Excel # 259 - mit Datentabelle zur MEHRFACHOPERATION
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#6
(27.08.2017, 09:11)axis3 schrieb: Idealerweise sollte von überall im Tabellenblatt 1 auf den Zinsrechner zugegriffen werden können, egal wo die Werte dort stehen. z.B. möchte ich im Feld D3 ein Ergebnis aus dem Zinsrechner eintragen und dabei unterstellen, dass das Feld Tabelle2!A1 den Wert B6 annimmt.
So wird es wohl nicht zu bewerkstelligen sein. ("von überall" und "egal wo" und hin und her.)

Du müßtes dir klarere Gedanken machen was wo sein soll.
Ausgabe hier; Variablen dort; Szenarien da


Wirst sehen die Lösungsvorschläge werden nicht lange auf sich warten lassen.

Mfg
Top
#7
Die Mehrfach-OP ist zwar schön, aber sie erlaubt für einen Rückgabewert nur zwei Eingangsgrößen. Außerdem entsteht dann eine Matrix. Üblicherweise möchte man aber einen Vektor.

Es gibt noch vier weitere Möglichkeiten:

a) Klassische Formel in der Zelle verwenden. So kompliziert wird die Zinsformel dann ja auch wieder nicht sein.

b) Klassische Formel in einen definierten Namen packen. Ist strenger, falls Daten verschoben werden.

c) VBA-Function: Da kann es sogar maximal komplex werden, ohne dass es Probleme gibt.

d) Mein Favorit: VBA nicht in einer Function, sondern in einer manuell anzustoßenden SUB. Aber mit dem gleichen Inhalt. Vorteil: Nur ein Wert als Ergebnis, keine Formel.
Top
#8
(27.08.2017, 15:35)lupo1 schrieb: Die Mehrfach-OP ist zwar schön, aber sie erlaubt für einen Rückgabewert nur zwei Eingangsgrößen. Außerdem entsteht dann eine Matrix. Üblicherweise möchte man aber einen Vektor.
Das liegt halt daran wie die Funkion programmiert ist.
Auf excelformeln.de wird eine Möglichkeit gezeigt wie man mit 3 Variablen arbeiten kann.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#9
Du meinst die http://www.herber.de/excelformeln und bitte suchen .../tips.html?welcher=43

Gute Sache! Ich (und der TE) würde dann ja auch mit n Eingangsgrößen zu meinem Vektor (statt Matrix) kommen. Sie müssen nur verkettet werden.
Top
#10
Genau, ich war nur faul zu suchen. :05:
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top


Gehe zu:


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