Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

Sverweis in Kombination mit Datum

Sverweis in Kombination mit Datum
15.03.2019 09:57:25
Slytha
Hallo zusammen,
ich stehe vor einem Excel Problem und komme so gar nicht weiter.
Anbei mal meine Beispieldatei.
https://www.herber.de/bbs/user/128405.xlsx
In der oberen Tabelle möchte ich den Wert aus der unteren Tabelle aus Spalte F wiedergeben.
Soweit wäre das relativ einfach mit einem Sverweis zu lösen.
Jetzt möchte ich das Ganze noch mit einem Datum verknüpfen.
Würde auch noch funktionieren, wenn in der Matrix auch jedes Datum vorkommt.
In die untere Tabelle füge ich aber nur etwas dazu wenn sich der Wert ändert.
Wenn die Kombination aus Datum und Name nicht vorhanden ist muss die Formel also den zu dem Zeitpunkt (letzten) gültigen Wert nehmen.
Immer den letzten Wert nehmen klappt aber auch nicht, da sich der Februar Wert ja nicht verändern soll wenn zu einem späteren Zeitpunkt ein neuer Wert hinzukommt.
Das Datum ist übrigens immer der erste jeden Monats.
Es gibt also keinen 15.01 o.ä. .
Habe hier schon mehrere Sachen versucht bin aber nie zum richtigen Ergebnis gekommen.
In Spalte G habe ich zur Anschauen manuell eingefügt welches Ergebnis richtig wäre.
Im Aufbau der Tabelle bin ich noch recht flexibel.
Kann also ohne Probleme Hilfsspalten einfügen wenn nötig.
Vielleicht kann mir der ein oder andere ja helfen
Vielen Dank und beste Grüße
Sebastian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit einer geschachtelten AGGREGAT()-Formel ...
15.03.2019 10:37:39
neopa
Hallo Sebastian,
... ist Dein angestrebtes möglich.
Meine Formel braucht auch keines spez. Formelabschluss wie eine klassische Matrixformel und kommt auch ganz ohne Deine Hilfsspalte in Spalte A aus.
In F2:
=AGGREGAT(14;6;F$15:F$99/(C$15:C$99=C2)/(B$15:B$99=AGGREGAT(14;6;B$15:B$99/(B$15:B$99&lt=B2)/(C$15:C$99=C2);1));1)
und nach unten kopieren.
Gruß Werner
.. , - ...
AW: Sverweis in Kombination mit Datum
15.03.2019 10:39:43
GeorgH
Hallo Sebastian,
folgende Formel in Zelle F2:
=WENNFEHLER(VERWEIS(9;1/($C$15:$C$20=$C2)/($B$15:$B$20=AGGREGAT(14;6;($B$15:$B$20)/($C$15:$C$20=$C2) /($B$15:$B$20<=$B2);1));$F$15:$F$20); "")
und runterkopieren.
(das Verketten in Spalte A ist dann auch überflüssig)
Viele Grüße
Georg
Anzeige
AW: Sverweis in Kombination mit Datum
15.03.2019 17:17:32
Slytha
Hallo,
vielen Dank euch beiden.
Grundsätzlich funktionieren beide Lösungen.
Hatte vergessen zu erwähnen, dass die Werte nicht nur aus Zahlen bestehen sondern auch Text enthalten können.
Demzufolge klappt Werners Lösung natürlich nicht, sondern nur die vom Georg.
(muss in der Originaldatei noch die Ergebnisse genau prüfen, es schaut aber sehr gut aus)
Vielen vielen Dank dafür.
Grundsätzlich würde ich aber gerne verstehen was ich da eingebe.
Die Aggregats Formel habe ich bisher noch nicht benutzt, mich aber inzwischen in die Funktionalität eingelesen.
Das ist also nachvollziehbar.
Was ich überhaupt nicht verstehe sind die ganzen "/" in euren beiden Formeln.
Was bewirken die?
Es wird doch nicht aktiv etwas geteilt, oder?
Kenne das bisher nur vom Summenprodukt.
Kann mir jemand mal die Formel von Georg genau erklären?
Möchte es das nächste Mal ja selber können :)
Danke & Grüße
Sebastian
Anzeige
AW: hierzu ...
15.03.2019 19:19:29
neopa
Hallo Sebastian,
... wenn in Spalte F auch Textwerte gefunden werden sollen, dann hättest Du dies auch schreiben sollen.
Meine Formel hätte dann z.B. in F2 wie folgt gelautet:
=VERWEIS(9;1/(C$15:C$99=C2)/(B$15:B$99=AGGREGAT(14;6;B$15:B$99/(B$15:B$99&lt=B2)/(C$15:C$99=C2);1));F$15:F$99)
Gruß Werner
.. , - ...
AW: hierzu ...
18.03.2019 08:18:37
Slytha
Guten Morgen Werner,
ja hatte das auch erst gemerkt, als deine Formel zwar in der Beispieldatei einwandfrei funktioniert hat, nicht jedoch in meiner Originaldatei.
Kannst du mir denn erklären was die ganzen "/" bedeuten bzw. bewirken?
Du benutzt die ja auch.
Habe das so vorher noch nie gesehen.
Danke & Grüße
Sebastian
Anzeige
AW: nun ...
18.03.2019 11:54:26
neopa
Hallo Sebastian,
... mit "/" wird dividiert und da wo der Divisor der Matrix infolge eines Bedingungsvergleiches eine 0 bzw. ein FALSCH ist, ergibt sich an dieser Stelle natürlich eine interne Fehlermeldung.
Sowohl VERWEIS() in dieser spez. Definition als auch AGGREGAT(), wenn dort das 2. Argument mit 6 definiert wurde, ignorieren derartige interne Fehlermeldungen und werten nur die Divisionen der Matrix aus, wo der jeweilige Bedingungsvergleich sich zu WAHR ergibt. Dadurch kann damit der jeweilige zutreffende Ergebniswert ermittelt werden.
Dazu schau Dir doch z.B. nur einmal ... 1/(C15:C22=C2)... an.
Gruß Werner
.. , - ...
Anzeige
AW: nun ...
18.03.2019 15:59:24
Slytha
Hallo Werner,
also teilen ist ja irgendwie logisch, aber wieso teilst du innerhalb einer Verweisfunktion?
Das mit dem ignorierend er Fehlerwerte verstehe ich auch (ist ja der große Vorteil der Aggregat Funktion).
Aber irgendwie ist mir nicht klar wie das ganze zusammenhängt.
Wenn ich deine Formel mal versuche auseinanderzunehmen:
=VERWEIS(9;1/(C$15:C$99=C2)/(B$15:B$99=AGGREGAT(14;6;B$15:B$99/(B$15:B$99

VERWEIS(9;1/(C$15:C$99=C2)

Wieso ist hier als Suchkriterium "9" angegeben?
Letztlich wird hier wahrscheinlich festgelegt nach welchen Namen gesucht werden soll.

(C$15:C$99=C2)/(B$15:B$99=AGGREGAT(14;6;B$15:B$99/(B$15:B$99

Was genau bewirkt hier, dass mehrmals dividiert wird?
Denke mal Ziel ist, dass es immer 1/1 ergibt, aber wieso?
Am Ende schaut es ja in etwa so aus: 1/1, wobei der Divisor ja vorher schon 1/1/1 ergeben muss.
Welche Auswirkungen hat es?

(C$15:C$99=C2)/(B$15:B$99=AGGREGAT(...

Welchen Sinn ergibt es gleich am Anfang Name (Spalte C) durch Datum (Spalte B) zu teilen?
Sorry das ich so viele blöde Fragen stelle, aber der "Weg" der Formel ist mir irgendwie nicht klar.
Das Ergebnis ist richtig, aber ich verstehe nicht wie Excel zu dem Ergebnis kommt.
Grüße
Sebastian
Anzeige
AW: hierzu nun ...
18.03.2019 16:52:37
neopa
Hallo Sebastian,
... hatte ich in einem anderen Forum mehrfach dazu Erläuterungen geschrieben. Leider ist dieses Forum (online-Excel) seit vorigem Jahr deaktiviert. Deshalb hab ich jetzt mal
Entscheidend ist, dass VERWEIS() eine der wenigen Funktionen ist, die Ergebnisse auch dann ermitteln kann, wenn Teile der Parameter Fehlerwerte beinhalten. Dies wird mit dem Konstrukt VERWEIS(9;1/(...);...) genutzt.
Einfach nachvollziehbar ist, dass im vorliegenden Formelbeispiel und dort der Teil (C$15:C#=C2) eine MATRIX aus Wahrheitswerten liefert. Wahrheitswerte kombiniert mit einer mathematischen Operation (egal welche) liefert numerische oder eben auch Fehlerwerte . In diesem spez. BeispielFall, weil mit 1/(C$15:C#=C2) ein Quotient gebildet wird, eine MATRIX bestehend aus "Einsen" (für 1/WAHR) und den Fehlerwerten #DIV/0! (für 1/FALSCH). Das kannst Du selbst auch mit der ExcelFunktion Formelauswertung oder nachdem Du in der Eingabezeile den entsprechenden Formelteil markiert hast, mit betätigen der Taste [F9] selbst leicht visuell nachvollziehen.
Die Funktion VERWEIS(), die bekanntlich von "hinten" (von rechts bzw. von unten) auswertet, ignoriert einfach jegliche Fehlerwerte ohne dadurch die Reihenfolge der MATRIXwerte zu ändern. Somit muß der erste Parameter der VERWEIS()-Formel (bei mir stets eine 9) lediglich ein Wert &gt1 sein, um zum gewünschten Ergebnis zu gelangen. Dies ist so, weil die erste 1 aus der der TeilMATRIX (dem Parameter "Suchvektor" von VERWEIS()) von rechts, ein Wert kleiner dem Parameter "Suchkriterium" ist und somit den "Standort" des Ergebniswertes im Parameter "Ergebnisvektor" von VERWEIS() angibt.
Die Auswertung des AGGREGAT()-Formelteil funktioniert vom Grundsatz her ähnlich. Die Mehrfachdivision der Bedingungsvergleich könnte man auch ersetzen durch im Beispiel für
=AGGREGAT(14;6;B$15:B$99/(B$15:B$99&lt=B2)/(C$15:C$99=C2);1) durch
=AGGREGAT(14;6;B$15:B$99/((B$15:B$99&lt=B2)*(C$15:C$99=C2));1)
Eine (übergeordnete) Division ist notwendig, um lediglich die Nicht-Fehlerwerte durch AGGREGAT(9 auswerten zu lassen. Ich bevorzuge die Mehrfachdivison, weil man in der alternativen Variante schnell mal die zusätzliche notwendige Klammerung vergisst, was zu falschen Ergebnis führen kann.
Bei Deiner Frage: "Welchen Sinn ergibt es gleich am Anfang Name (Spalte C) durch Datum (Spalte B) zu teilen?" kann es sich bei einem User mit Deinem angegebenen Excellevel doch nur um eine missverständliche Formelierung handeln. Denn was wird da wirklich dividiert? Doch nicht "Name" durch "Datum" sondern ... Ich denke das kannst Du jetzt selbst klären. Oder?
Gruß Werner
.. , - ...
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige