INDEX & VERGLEICH mit 2 Variablen (Datum)
#1
Hallo Liebe Forums-Mitglieder,

ich werde leider nicht fündig und komme mit einem Problem einfach nicht weiter. Ich hoffe mir kann jemand mit meiner Matrix Formel weiterhelfen. Das wäre wirklich fantastisch!!  :15:

Das Grundproblem ist folgendes: Ich bekommen eine Datentabelle per Schnittstelle mit Kontosalden, welche ich analysieren muss. Leider gibt es nicht für jeden Tag eine Saldo Information, sondern immer nur dann wenn es eine Bewegung auf dem Konto gegeben hat und sich der Saldo verändert hat. Die Datentabelle kann ich von der Struktur her auch nicht bearbeiten. 
Ich brauche für meine Analyse aber immer einen Überblick über den Saldo für die 14 Tage. Sprich wenn es zB keine Kontobewegung in den letzten Tagen gegeben hat, dann muss halt in meiner Analyse der älteste Eintrag, welcher vorhanden ist angezeigt werden. Genau hier scheitere ich dran!  
Ich bekomme mittels VERGLEICH von zwei Suchkriterien (Kontonummer & Datum) zwar mit dem "Vergleichstyp 1" der Sache schon ziemlich nahe aber leider tauchen dann doch immer noch einige Fehler auf.
Ich befürchte, dass ich den Vergleichstyp 1 hier nicht verwenden kann, da einfach zu ungenau und fehleranfällig, ich habe aber auch keine Idee, wie ich sonst an das "nähste" Datum für meine Analyse Matrix kommen könnte.

Zur Verdeutlichung habe ich eine Excel Tabelle abgehangen. Im Grunde funktioniert meine Analyse für KONTO A-D soweit, allerdings schlägt meine Formel bei Konto E fehl (rot markiert). Meine originale Datei ist natürlich noch wesentlich komplexer und beinhaltet auch noch Fehler dich nicht mehr nachvollziehen kann, wie Excel hier bei der VERGLEICH Suche auf diese Werte kommen könnte aber für das Beispiel, halte ich es jetzt mal etwas simpler.

Kann mir jemand vielleicht freundlicherweise einen Tipp geben, wie ich die Formel verbessere, so dass nicht einfach irgendwelche Werte genommenem werden, sondern wirklich nur die Werte der entsprechenden Konten?

Das wäre wirklich sehr freundlich und ich bedanke mich schon mal im Vorfeld für alle Ideen und Vorschläge.

Danke
Arjen


Angehängte Dateien
.xlsx   KONTENSALDEN Beispiel.xlsx (Größe: 12,79 KB / Downloads: 12)
Top
#2
Hallo, probier mal so..:

Code:
=WENNFEHLER(INDEX($C$3:$C$21;AGGREGAT(14;6;ZEILE($A$3:$A$21)-2/($A$3:$A$21=$A26)/($B$3:$B$21<=B$25);1));"")
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#3
Hallo,

EDIT: Ich sehe gerade, dass wohl die alten Stände mitgezogen werden sollen, daher ist meine Formel leider falsch! Daher gelöscht.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • Avdbos
Top
#4
Hallo Arjen,

du kannst auch deine Formel erweitern.
Du must nur dafür sorgen dass alle Zeilen, bei denen die Kontonummern nicht übereinstimmen zu einem Fehler führen und mit Wennfehler diesen abfangen. zB:


Code:
{
=WENNFEHLER(INDEX(Tabelle1[Schlußsaldo];VERGLEICH($A26&B$25;LINKS(Tabelle1[Kontonummer]&Tabelle1[Auszugsdatum];99/(Tabelle1[Kontonummer]=$A26));1));"")
}
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#5
Hallo,

hier noch eine Variante mit VERWEIS:
Code:
B26 =WENNFEHLER(INDEX(Tabelle1[Schlußsaldo];VERWEIS(1;1/(Tabelle1[Kontonummer]=$A26)/(Tabelle1[Auszugsdatum]<=B$25);ZEILE(Tabelle1[Kontonummer]))-2);"")
Gruß
Michael
Top
#6
@ Jockel. Vielen Dank . Genau das halt geholfen. Mittels AGGREGAT hat's geklappt. Mir war die Formel so nicht bekannt, daher um so schöner wieder etwas gelernt zu haben.

Thema ist für mich hier erfolgreich beendet! 

nochmals danke für den super schnellen Input!

Gruß
Arjen
Top
#7
Hallo, alternativ ginge auch..:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHIJKLMNO
24Cashflow Analyse Matrix
25 17.04.201718.04.201719.04.201720.04.201721.04.201722.04.201723.04.201724.04.201725.04.201726.04.201727.04.201728.04.201729.04.201730.04.2017
26KONTO A18001900200020002100210021002200230023002300240024002400
27KONTO B26002600260026002600260026002600260026002600260026002600
28KONTO C28002800280028002900290029003000310031003100320032003200
29KONTO D33003300330033003300330033003300330033003300330033003400
30KONTO E 3500

ZelleFormatWert
B26Standard;;1800

ZelleFormel
B26=MAX(INDEX($C$3:$C$21*($A$3:$A$21=$A26)*($B$3:$B$21<=B$25);))
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#8
Hallo Arjen,

Achtung: Jockels Alternative ist nur dann richtig, wenn -wie in deinem Beispiel- das Schlusssaldo pro Kontonummer monoton steigend ist.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#9
(05.05.2017, 01:21)Ego schrieb: Hallo Arjen,

Achtung: Jockels Alternative ist nur dann richtig, wenn -wie in deinem Beispiel- das Schlusssaldo pro Kontonummer monoton steigend ist.

Ähhhh...? Was stimmt mit der Variante denn nicht..?
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • Avdbos
Top


Gehe zu:


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