Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Wie kann man Formeln zu einem Bereich verknüpfen

Betrifft: Wie kann man Formeln zu einem Bereich verknüpfen von: Sebastian
Geschrieben am: 17.09.2014 12:31:50

Hallo,

vermutlich ist die Lösung ganz einfach - finde aber nichts dazu ...

Ich möchte mit der TREND-Funktion eine lineare Interpolation zwischen zwei Punkten durchführen. Nichts leichter als das: TREND(A1:A2;B1:B2;C1).

Nun sollen die Werte für x1, x2, y1 und y2 aber aus je einer Formel berechnet werden. Also etwa so:

TREND((C1+D1;C2+D2);(A1+B1;A2+B2);E1).

Das funktioniert aber so nicht. Wie kann man in Excel einen "Bereich" erstellen, der aus einzelnen Formeln besteht?

Da das ganze etwas komplexer wird, möchte ich die Zwischenergebnisse für x1, x2 usw. nicht in separaten Zellen ablegen. Natürlich könnte ich in diesem Beispiel die Lineare Interpolation einfach "zu Fuß" ausrechnen ... aber es muss doch eine einfache Lösung dafür geben (?)

Vielen Dank!
Sebastian

  

Betrifft: Wie kann man Formeln zu einem Bereich verknüpfen von: Hajo_Zi
Geschrieben am: 17.09.2014 14:31:36

Hallo Sebastian,

die Funktion sagt mir nichts. Es wäre gut gewesen, wenn du für das Ziel die ausführliche Formel dargestellt hättest.
Keine Ahnung ob korrekt in E4.

Tabelle3

 ABCDE
11254 
234   
31254TREND((C1+D1;C2+D2);(A1+B1;A2+B2);E1)
434493
5 39 3
6 713  

verwendete Formeln
Zelle Formel Bereich N/A
D1,D3=TREND(A1:A2;B1:B2;C1)  
E4=TREND(B3:B4+A3:A4;C3:C4+D3: D4)  
E5=TREND(B5:B6;C5:C6)  
B5:B6=A3+B3  
C5:C6=C3+D3  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.13 einschl. 64 Bit



GrußformelHomepage


  

Betrifft: AW: Wie kann man Formeln zu einem Bereich verknüpfen von: Sebastian
Geschrieben am: 17.09.2014 16:24:16

Hallo Hajo,

vielen Dank! Soweit ich das sehe, ist deine Lösung völlig korrekt für mein Beispiel. Ich habe aber leider ein zu stark vereinfachtes Beispiel gewählt. Ich versuch's noch einmal ... :)

Für die x-Werte der Trend-Funktion muss ein Bereich angegeben werden. Z.B. "A1:A2". Operationen mit Bereichen sind natürlich auch möglich: "B3:B4+A3:A4". Ich brauche aber eine Syntax, bei der ich eine Formel für das erste Element und eine andere Formel für das zweite Element der x-Werte-Liste angeben kann.

Ich ändere mein Beispiel einmal ab (Man beachte das "*" statt "+"):

TREND((C1+D1;C2*D2);(A1+B1;A2*B2);E1).

Das geht aber syntaxmäßig nicht, denn "(C1+D1;C2*D2)" ist kein gültiger Bereich.

Zur realen Anwendung: Ich möchte eine stückweise lineare Interpolation über unsortierte Daten machen. (Bei sortierten Daten geht das.) Ich habe eine Formel, die mir die nächstgelegene linke Stützstelle (x1) aus einer Matrix heraussucht und eine andere Formel, die mir die nächstgelegene rechte Stützstelle (x2) heraussucht.

Ich könnte natürlich Zwischenwert-Tabellen für die berechneten x1, x2 anlegen. Ich hätte aber gern alles in einer Formel, denn sonst muss ich jedesmal, wenn ich mehr Punkte hinzunehmen möchte auch die Zwischenwert-Tabellen vergrößern.

VBA kann ich nicht nehmen, weil das ganze ohne Makros laufen soll.


  

Betrifft: Man kann hierbei nur EINE Fml für ALLE ... von: Luc:-?
Geschrieben am: 17.09.2014 19:14:56

…Elemente eines Arguments angeben, Sebastian,
denn deine Schreibweise taugt nur für unzusammen­hängende Bereiche (mit denen auch die allermeisten XlFktt nicht umgehen können, viele nicht mal mit Datenfeldern!), nicht für Daten­felder (im Ergebnis von Ausdrücken). Ohne VBA kannst du das nur in einer benannten Fml mit der alten XLM-Fkt AUSWERTEN lösen (allerdings muss die Mappe ab Xl12/2007 dann als .xlsm/b gespeichert wdn!):
TrArgX=AUSWERTEN("{"&A1+B1&";"&A2*B2&"}")
TrArgY=AUSWERTEN("{"&C1+D1&";"&C2*D2&"}")
(Hier wird eine sog MatrixKonstante als Text gebildet und anschld ausgewertet.)
Die ZellFml kann dann =TREND(TrArgY;TrArgX;E1) lauten. Alles Andere würde VBA erfordern (auch eine UDF!).
Gruß, Luc :-?


  

Betrifft: AW: Man kann hierbei nur EINE Fml für ALLE ... von: Sebastian
Geschrieben am: 18.09.2014 12:05:27

Hallo Luc,

hm - veraltete EXCEL4-Makros zu verwenden ist natürlich auch kein Lösung. Das der Umgang vieler Excel-Funktionen mit unzusammenhängenden Bereichen problematisch ist, habe ich auch schon gemerkt. Da steckt irgendwie kein schönes Objektmodell dahinter.

Nun ja, nachdem die Berechnung eines von vier Stützstellenwerten schon über zwei Zeilen geht

{=INDEX($C3:$L3*(1-$O3:$X3/100);0;WENN(C5<MIN(WENN(ISTFEHLER($C3:$L3*(1-$O3:$X3/100));
"";$C3:$L3*(1-$O3:$X3/100)));VERGLEICH(MIN(WENN(ISTFEHLER($C3:$L3*(1-$O3:$X3/100));
"";$C3:$L3*(1-$O3:$X3/100)));$C3:$L3*(1-$O3:$X3/100);0);VERGLEICH(MAX(WENN(WENN(
ISTFEHLER($C3:$L3*(1-$O3:$X3/100));C5;$C3:$L3*(1-$O3:$X3/100))<C5;$C3:$L3*
(1-$O3:$X3/100);""));$C3:$L3*(1-$O3:$X3/100);0)))}

halte ich meine Idee, alles in eine Formel zu packen auch nicht mehr für eine gute Lösung ... ;-)

Mal sehen, ob ich es irgendwie anders hinbekommen. Trotzdem vielen Dank!

Seb.


  

Betrifft: Das liegt nicht unbedingt am Objektmodell, ... von: Luc:-?
Geschrieben am: 18.09.2014 16:12:17

…Sebastian,
sondern eher daran wie die jeweiligen Fktt pgmmiert wurden (viele wurden offensichtlich von externen Firmen im MS-Auftrag geschaffen). Denn man kann so etwas durchaus berücksichtigen, allerdings wohl weniger in der Notationsform, da passte wohl die ggw Xl-Syntax nicht (insofern kann ein gewisser Objektmodell-Einfluss postuliert wdn). Leider hat MS es bisher nicht für nötig gehalten, entsprd zusammenfassende Fktt zu schaffen. Das müsste man dann selber tun. Eine einfachere Variante hierzu wäre eine UDF auf Basis der vbFkt Evaluate, die quasi das Gleiche tut wie die alte XLM. Allerdings müsste der auszuwertende Text dann in US-Fml-Notation vorliegen - wäre einfacher -, denn die Umsetzung dt FmlTexte in die benötigte Form wäre deutlich aufwendiger und die FmlForm ggf ebenso gewöhnungs­bedürftig (ich hatte das mal anhand meiner UDFs Compute und Explore demonstriert - Erstere US-Texte, Letztere dt Texte, deren Code aber zu aufwendig fürs Forum ist). Einfachere Varianten analog Compute sind aber im Forumsarchiv zu finden bzw kann man leicht selbst erstellen (im Prinzip reicht ein 1Zeiler).
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: Habe nun aufgegeben ... von: Sebastian
Geschrieben am: 19.09.2014 16:01:20

... es ohne VBA zu probieren. Selbst wenn es eine Lösung ohne die Zuhilfenahme von Makros gäbe - es wäre einfach nicht wartbar.

Mit VBA hingegen (ja, mit UDFs) ist das ganze nun recht übersichtlich. Fehlt nur noch die Überzeugungsarbeit beim Nutzer ... :-/

Vielleicht gibt es ja noch eine Geheimfunktion MAKERANGEBUTDONTTELLANYBODY(Zahl1;Zahl2,...). Falls jemand einen Trick kennt: Immer her damit!

Danke Luc!

Seb.


  

Betrifft: mE liegen hierzu alle 'Tricks' bei VBA! ;-) owT von: Luc:-?
Geschrieben am: 19.09.2014 16:17:45

:-?


 

Beiträge aus den Excel-Beispielen zum Thema "Wie kann man Formeln zu einem Bereich verknüpfen"