Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert in Matrix suchen und ggf. interpolieren

Forumthread: Wert in Matrix suchen und ggf. interpolieren

Wert in Matrix suchen und ggf. interpolieren
07.08.2018 16:43:43
klausreich@web.de
Guten Tag Herber's
eigentlich ein bekanntes Thema : liefere mir Zellenwerte. Doch wie geht's, wenn ich auch Daten von Zwischenwerten brauche ? Will sagen : 51,27/Aug sollte mit dem Ergebnis ( Dreisatz ), also via bekannter 51 und 52 Grad für 51,27 mit 393,19 beantwortet/interpoliert werden.
Ein anderer Ansatz : ich habe auch monatliche lineare Funktionen im Sinne von y = a mal x + b parat, um für alle gesuchten - auch Zwischenwerte - Daten zu ermitteln. Für den Aug z.B. 3,103xGrad+552,1. Hier müßten nun aus einer Tabelle von Jan bis Dez die Parameter a und b "herausgefischt" werden. Welches Verfahren haltet Ihr für eleganter ? Wie würdet Ihr eine 12-Zeilen-Tabelle mit a- und b-Konstanten einbinden ?
Guckt bitte https://www.herber.de/bbs/user/123189.xlsx
Danke vorab, Klaus Reich
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit INDEX() und VERGLEICH() ...
07.08.2018 17:10:23
neopa
Hallo Klaus,
... lässt sich das mit dem "1. Verfahren" wie folgt ermitteln:
=INDEX(A:M;VERGLEICH(E16;A1:A12);VERGLEICH(E17;1:1;0))-(INDEX(A:M;VERGLEICH(E16;A1:A12);
VERGLEICH(E17;1:1;0))-INDEX(A:M;VERGLEICH(AUFRUNDEN(E16;);A1:A12);VERGLEICH(E17;1:1;0)))*REST(E16;1)

Das "2. Verfahren würde eine kürzer Formel ergeben, aber dazu müsste man erst die zweite Tabelle aufstellen ;-)
Gruß Werner
.. , - ...
Anzeige
AW: mit INDEX() und VERGLEICH() ...
07.08.2018 22:06:15
klausreich@web.de
Danke ! Ihr seid eine tolle Truppe ! Hier auch die Parameter, also die zweite Tabelle
https://www.herber.de/bbs/user/123193.xlsx
Klaus
AW: nun wie bereits geschrieben ...
08.08.2018 11:47:10
neopa
Hallo Klaus,
... dann wird die Formel viel einfacher. Angenommen der Monat steht in H1 und die Gradzahl in G1, dann:
=WENN(VERGLEICH(1;INDEX(IDENTISCH(A$1:A$9;A1)*1;);0)=ZEILE();A1;"")
Übrigens, eine "Truppe" sind wir nicht. Hier in Herbers Forum helfen ein freiwilliger "Haufen" von Individualisten.
Gruß Werner
.. , - ...
Anzeige
AW: nun wie bereits geschrieben ...
08.08.2018 12:34:59
klausreich@web.de
Guten Mittag, Leute
um igendwelche Feinheiten zu erkennen reichen meine Kenntnisse leider einfach nicht aus : ich habe zum Teil schon Probleme, auch nur Zeilen-, Bereichsangaben an mein Sheet anzupassen
die "Truppe" war nicht böse gemeint : ich wollte damit nur ausdrücken : Ihr seid eine tolle, aktive, rasend schnell reagierende Gemeinschaft. Wie bei der Bundeswehr : wenn einer ( mangels Wissen ) nicht mehr kann, trägt der Stärkere ( der Kundige ) seinen Rucksack.
Nochmals Danke, Klaus
Anzeige
AW: hierzu ...
08.08.2018 12:53:12
neopa
Hallo Klaus,
... stell ich eben fest, dass mich vor dem Mittag offensichtlich die Hitze dazu verführt hatte, Dir ein Formel bereitzustellen, die mit Deiner Thematik überhaupt nicht zu tun hat :-( Sorry.
Die richtige Formel ist natürlich =INDEX(B:B;VERGLEICH(H1;A:A;0))*G1+INDEX(C:C;VERGLEICH(H1;A:A;0))
unter der bereits noch richtig geschriebenen Voraussetzung: "der Monat steht in H1 und die Gradzahl in G1"
Das mit der der "Truppe" hatte ich auch nicht böse verstanden. Ich wollte nur darauf hinweisen, das die Helfer hier nur ein Art "virtuelle Gemeinschaft" sind und die mE nicht mit einer Truppe vergleichbar sind.
Ich hoffe mit der neuen Formel kommst Du auf jeden Fall klar. Andernfallsmelde Dich einfach wieder.
Gruß Werner
.. , - ...
Anzeige
AW: mit INDEX() und VERGLEICH() ...
08.08.2018 07:23:25
Luschi
Guten Morgen Werner,
habe mir Dein Formelkonstrukt mal angeschaut und für gut befunden, habe aber folgende Amnerkungen:
- das Weglassen von Parametern (VERGLEICH(E16;A1:A12)) habe ich noch nie gut gefunden,
  weder bei Excel-Formeln noch in der Vba-Programmierung
- da 2mal der selbe Bereichswert berechnet werden muß (INDEX(A:M;VERGLEICH(E16;A1:A12)),
  würde ich alle Index-Bereiche in Namen verpacken und dann mit den Namen rechnen
- oder 3 Teilformeln erstellen und dann damit rechnen
- bin mal gespannt, ob der Fragesteller die Feinheiten Deiner Lösung erkennt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: zu Deinen Anmerkungen ...
08.08.2018 10:35:08
neopa
Hallo Luschi,
... zu: "das Weglassen von Parametern (VERGLEICH(E16;A1:A12)) habe ich noch nie gut gefunden" Ich schon ;-) So wie von mir hier genutzt, ist es in der MSO-Hilfe ("1 oder nicht angegeben") explizit angegeben (wenn auch insofern falsch dokumentiert, weil da dann noch das Semikolon steht und dann der Parameter nicht wie eine 1 sondern wie eine 0 wirkt). Im Beispiel ist ist aber von mir nicht nur die 1 sondern auch das Semikolon weggelassen wurden. Und so ist es 100% korrekt.
Auf den Einsatz von benannten Formeln hatte ich hier verzichtet, weil ich dazu mehr im Beitrag hätte schreiben müssen.
So lang/unübersichtlich ist die Formel nun auch wieder nicht, dass ich hätte diese in 3 Teilformeln zerlegen wollen.
Gruß Werner
.. , - ...
Anzeige
AW: zu Deinen Anmerkungen ...
08.08.2018 14:10:08
{Boris}
Hi Werner,
ich denke, dass es Luschi nicht um "korrekt" oder "falsch" ging, sondern um die Tatsache, dass man optionale Parameter - obwohl sie eben optional sind - dennoch angeben soll, damit man den Default-Wert nicht "erraten" bzw. nachlesen muss - und damit Defaultwerte auch im Nachhinein vielleicht mal geändert werden können, ohne dass die Funktion ein anderes (unerwünschtes) Verhalten an den Tag legt. Das alles ist aus Sicht eines Programmierers (und so einer ist Luschi) dann wohl schlicht "sauberer". ;-))
Ich selbst lass sie ja auch weg - kann aber die Argumentation FÜR deren explizite Angabe schon nachvollziehen.
VG, Boris
Anzeige
AW: zu Deinen Anmerkungen ...
08.08.2018 14:10:09
{Boris}
Hi Werner,
ich denke, dass es Luschi nicht um "korrekt" oder "falsch" ging, sondern um die Tatsache, dass man optionale Parameter - obwohl sie eben optional sind - dennoch angeben soll, damit man den Default-Wert nicht "erraten" bzw. nachlesen muss - und damit Defaultwerte auch im Nachhinein vielleicht mal geändert werden können, ohne dass die Funktion ein anderes (unerwünschtes) Verhalten an den Tag legt. Das alles ist aus Sicht eines Programmierers (und so einer ist Luschi) dann wohl schlicht "sauberer". ;-))
Ich selbst lass sie ja auch weg - kann aber die Argumentation FÜR deren explizite Angabe schon nachvollziehen.
VG, Boris
Anzeige
AW: sehe ich etwas anders ...
08.08.2018 15:15:33
neopa
Hallo Boris,
... ich kenne Luschi persönlich und weiß um seine Fähigkeiten und Vorzüge.
Das war u.a. auch ein Grund, warum ich ihm meine Feststellungen und Meinung dargelegt habe, obwohl ich natürlich auch die Argumentation für eine explizite Angabe des Vergleichtyp-Arguments nachvollziehen kann. Aus letzterem Grund stelle ich in meinen Forenbeiträgen seit längerer Zeit das Argument 0 für exakte Suche mit einer VERGLEICH() und SVERWEIS()-Formel auch ein. Und dies obwohl es auch nicht notwendig wäre. Doch führte jedoch ein abschließendes ";" ohne Folgewert vor der schließenden Klammer manchmal zu Nachfragen, weil die MSO-Hilfe was anderes suggeriert.
Mit anderen Worten, stünde in der MSO-Hilfe anstelle:
"=VERGLEICH(Suchkriterium; Suchmatrix; [Vergleichstyp])" es so: "=VERGLEICH(Suchkriterium; Suchmatrix;Vergleichstyp)" dann wäre es wirklich "unsauber", eine VERGLEICH()-Formel ohne das 3. Argument anzugeben, auch wenn es ohne dies richtig auswertet.
Aber so ist mE die MSO-Hilfe "=VERGLEICH(Suchkriterium; Suchmatrix; [Vergleichstyp])" betrachte ich als "unsauber" oder sogar falsch dokumentiert. Denn richtig(er) wäre: "=VERGLEICH(Suchkriterium; Suchmatrix [;Vergleichstyp])"
Insofern betrachte ich auch meine hier eingestellten Formel weiterhin als "sauber" und das wollte ich Luschi vermitteln.
Gruß Werner
.. , - ...
Anzeige
AW: zu Deinen Anmerkungen ...
08.08.2018 15:33:12
Luschi
Hallo {Boris},
danke für Deinen Beistand! aber aus Werners professioneller Sicht auf Excelformeln kann ich ihn auch verstehen. Aber seine tiefgründigen Lösungsvorschläge (und das ist sehr positiv gemeint) sind halt oft für meinen Geschmack ein bischen zu professionell; aber er kennt da ja meine Meinung.
Meine Sicht auf optionale Parameter hat sich auch geändert und ist nicht mehr so starrsinnig wie früher, seit ich mich verstärkt mit Dot.Net/C# beschäftige. Dort wird von Version zu Version die Faulheit des Programmierers dahingegen unterstützt, daß man ganze Passagen von Parameter weglassen kann - nur da steht eben noch der Roslyn-Compiler im Hintergrund und überwacht meine Vekürzungsbemühungen. Alles das, was ich bei Delegaten/anonymen Funktionen / Linq / funktionaler Programmierung usw. bewußt weglasse, schreibt der Compiler dann doch in das Kompilat.
Du hast Recht, Formel (aber auch Vba) muß man lesen können wie ein Buch und nicht immer daran denken müssen, ob es da noch was gibt, was zwar nicht angegeben, aber mit Voraussetzungen verbunden ist. Gerade in der von mir zitierten Teilfunktion ist die größenmäßige Sortierung Grundvorrausetzung - was aber der User nicht erkennen kann, weil er nicht weiß, daß da was weggelassen wurde aber für den Profi zum Einmaleins des Wissens gehöhrt.
Gruß von Luschi
aus klein-Paris
Anzeige
spätestens (früheres) LO/OO benötigte manche ...
08.08.2018 17:44:05
lupo1
... dieser Argumente dann explizit, wenn man Excel-Dateien öffnen wollte.
Das hat sich vermindert, aber ob alle Excel-Verkürzungen mittlerweile erkannt werden?
OT: LO/OO kann z.B. auch nicht =VERWEIS(2;1/(..., den relativ wichtigen Rückwärtsverweis.
AW: Wert in Matrix suchen und ggf. interpolieren
10.08.2018 13:32:11
klausreich@web.de
Hi in's Team,
ist ja toll, daß ein Anfänger eine Diskussion unter Spezialisten auslösen kann. Schaut Euch bitte 'mal https://www.herber.de/bbs/user/123259.xlsx an ! Mein zweiter Lösungsansatz arbeitet wenig elegant mit monatlichen Funktionen als y = ax+b, die ich mit SVERWEIS berechne. Gibt's da nicht auch ohne VBA eine "wirkliche, mathmatische" Funktion im Sinne von y = f(Monat, x) ?
Schönes Wochenende, Klaus
Anzeige
AW: die Formel dafür hast Du doch in F20 owT
10.08.2018 14:02:06
neopa
Hallo Klaus,
AW: die Formel dafür hast Du doch in F20 owT
11.08.2018 12:02:06
klausreich@web.de
Richtig neopa C ! Ich suchte jedoch etwas schöneres, eleganteres als SVERWEIS. Also etwas, das mir H. Kühnlein unter http://www.excelformeln.de/tips.html?welcher=14 vormacht ( die Funktion ist als String hinterlegt ). Ich scheitere jedoch daran, mir nur auf Monat hin den Text mit den Monatsfaktoren zusammenzustellen. Aber : Thema erledigt. Quick and dirty ist sinnvoller als schön und aufwendig.
Danke an alle, Klaus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Wert in Matrix suchen und interpolieren


Schritt-für-Schritt-Anleitung

Um Werte in einer Matrix zu suchen und diese gegebenenfalls zu interpolieren, kannst du folgende Schritte befolgen:

  1. Matrix erstellen: Erstelle eine Tabelle in Excel mit den bekannten Werten, z.B. Temperaturen oder andere Messwerte.

  2. Suchwerte definieren: Lege die Werte fest, für die du die Zwischenwerte berechnen möchtest. Zum Beispiel, wenn du die Temperatur für 51,27 Grad interpolieren möchtest.

  3. Formel anwenden: Nutze die Excel-Funktionen INDEX() und VERGLEICH(), um die Daten zu interpolieren. Eine mögliche Formel könnte wie folgt aussehen:

    =INDEX(A:M;VERGLEICH(E16;A1:A12);VERGLEICH(E17;1:1;0)) - (INDEX(A:M;VERGLEICH(E16;A1:A12);VERGLEICH(E17;1:1;0)) - INDEX(A:M;VERGLEICH(AUFRUNDEN(E16;0);A1:A12);VERGLEICH(E17;1:1;0))) * REST(E16;1)
  4. Ergebnis überprüfen: Achte darauf, dass die Formel korrekt angewendet wurde und überprüfe das Resultat auf Plausibilität.


Häufige Fehler und Lösungen

  • Fehler bei der Formel: Achte darauf, dass die Zellbezüge korrekt sind. Ein häufiger Fehler ist das Vergessen von Argumenten in den Funktionen INDEX() und VERGLEICH().
  • Falsche Ergebnisse: Wenn das Ergebnis nicht dem erwarteten Wert entspricht, überprüfe, ob die Matrix korrekt sortiert ist und die Suchwerte in der richtigen Reihenfolge stehen.
  • Interpolation nicht möglich: Wenn die Werte außerhalb des Matrixbereichs liegen, kann keine Interpolation stattfinden. Stelle sicher, dass deine Suchwerte innerhalb der Grenzen der Matrix liegen.

Alternative Methoden

  • SVERWEIS: Eine einfache Methode, um Werte zu interpolieren, ist die Verwendung von SVERWEIS(). Diese Funktion kann jedoch bei der Berechnung von Zwischenwerten weniger präzise sein.
  • Lineare Interpolation: Du kannst auch eine separate Funktion für die lineare Interpolation erstellen, die auf der Formel y = ax + b basiert. Diese Methode ist besonders effektiv, wenn du mit monatlichen Werten arbeitest.
  • Extrapolation: Wenn du Werte außerhalb der Matrix vorhersagen möchtest, kannst du die Funktion TREND() verwenden, um die Daten zu extrapolieren.

Praktische Beispiele

  1. Temperaturinterpolation: Angenommen, du hast eine Tabelle mit Temperaturen für verschiedene Monate. Um die Temperatur für einen spezifischen Tag zu interpolieren, kannst du die oben genannte Formel verwenden.

  2. Monatsfunktion: Wenn du eine monatliche lineare Funktion hast, z.B. y = 3,103 * x + 552,1, kannst du diese Funktion in Excel implementieren und die Werte für jeden Monat berechnen.

  3. Vergleich von Daten: Wenn du zwei Datensätze hast und deren Werte interpolieren möchtest, kannst du eine Excel-Interpolations-Tabelle erstellen, die die Daten für beide Sätze vergleicht.


Tipps für Profis

  • Benannte Bereiche verwenden: Um die Lesbarkeit deiner Formeln zu verbessern, kannst du benannte Bereiche in Excel verwenden. Dies erleichtert die Identifizierung der Bereiche in komplexen Formeln.
  • Formeln dokumentieren: Füge Kommentare in deine Formeln ein, um den Zweck und die Funktionsweise zu erklären, insbesondere bei komplexeren Berechnungen.
  • Vorlagen nutzen: Suche nach einer linearen Interpolation Excel Vorlage, die dir hilft, die Struktur zu verstehen und deine eigenen Daten effizient zu interpolieren.

FAQ: Häufige Fragen

1. Wie kann ich Werte interpolieren, wenn ich nur zwei bekannte Werte habe?
Du kannst die lineare Interpolation verwenden, indem du die beiden Punkte (x1, y1) und (x2, y2) nutzt, um den Zwischenwert mit der Formel y = y1 + (y2 - y1) * ((x - x1) / (x2 - x1)) zu berechnen.

2. Ist es möglich, mehrere Zwischenwerte gleichzeitig zu berechnen?
Ja, du kannst eine Matrixformel oder eine Schleife in VBA verwenden, um mehrere Werte gleichzeitig zu interpolieren. Alternativ kannst du auch die Daten in einer Excel-Tabelle anordnen und die Formeln entsprechend anpassen.

3. Wie kann ich sicherstellen, dass meine Interpolation genau ist?
Vergewissere dich, dass deine Daten gut verteilt sind und keine großen Lücken aufweisen. Überprüfe auch die Genauigkeit deiner Ausgangswerte, um sicherzustellen, dass sie korrekt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige