Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeile mit nächstgelegenem Datum finden
#1
Hallo zusammen,

ich habe eine Tabelle mit drei Spalten:
A = Parkhaus
B = Gebühren
C = Datum

In einer zweiten Tabelle stehen aufgelistet verschiedenste Parkhausbesuche an verschiedenen Tagen mit jeweiligem Datum:
A = Datum
B = Parkhaus

Nun geht es darum, die Gesamtgebühren für das Jahr X zu errechnen. Dafür sollte jedem Eintrag aus Tabelle2 der korrespondierende Gebührenbetrag zugeordnet werden.

Das knifflige ist, dass ein Parkhaus mehrmals in Tabelle1 vorkommen kann, da sich dessen Gebühren während des Jahres verändert haben können.

Es geht nun also darum, aus Tabelle1 alle Zeilen mit dem korrespondierenden Parkhaus zu suchen und alle diese Zeilen dann nach dem zum Datum aus Tabelle2 nächstgelegenen Datum zu durchsuchen.

Mit einer Matrixformel habe ich bereits herausgefunden, wie man das am naheliegensten Datum herausfinden kann über:
Code:
=MAX((DatumSpalte<=DatumAktuell)*DatumSpalte)

Allerdings weiß ich nicht, wie ich diese Formel nur über diejenigen Zeilen laufen lassen kann, in denen das gesuchte Parkhaus X steht.
So wie ich es bisher habe, liefert mir die Formel einfach das nächstgelegene Datum der gesamten Tabelle.

Hat jemand verstanden was ich vorhabe?

Vielen Dank bereits vorab.

PS: Bitte keine VBA-Lösungen

MfG
Martin
Antworten Top
#2
Hallo Martin

Code:
=VERWEIS(42;1/(Tabelle1!$A$2:$A$100=B2)/(Tabelle1!$C$2:$C$100<=A2);Tabelle1!$B$2:$B$100)
Voraussetzung ist dass in Tabelle1 innerhalb eines Parkhauses das Datum aufsteigend sortiert ist.
Wir sehen uns!
... Detlef

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

Antworten Top
#3
Hallo und danke für die schnelle Antwort.

Die Idee ist mir auch bereits gekommen, das erspart mir sogar die Matrixformel. Allerdings können auch nachträglich Einträge in die Tabelle erfolgen und somit kann eine sortierte Datumreihenfolge nicht garantiert werden.

Allerdings müsste es doch über ein paar Extraspalten mit automatischer Sortierung möglich sein, oder?

Stellt sich nur noch die Frage, wie ich über eine Formel sortiere.

Ich nutze parallel die SuFu, allerdings bin ich für Antworten trotzdem dankbar.

MfG
Antworten Top
#4
Hi Martin,


Zitat:Allerdings müsste es doch über ein paar Extraspalten mit automatischer Sortierung möglich sein, oder?
Stellt sich nur noch die Frage, wie ich über eine Formel sortiere.

Mein Vorschlag:

Tabelle3

ABC
1NamenHSNamen sort.
2Friedrich6Anton
3Ida9Berta
4Berta2Cäsar
5Heinrich8Dora
6Anton1Emil
7Cäsar3Friedrich
8Dora4Gustav
9Emil5Heinrich
10Gustav7Ida
Formeln der Tabelle
ZelleFormel
B2=ZÄHLENWENN($A$2:$A$10;"<"&$A2)+ZÄHLENWENN($A$2:$A2;"="&$A2)
C2=WENN(LÄNGE($A2)<>0;INDEX($A$2:$A$10;VERGLEICH(ZEILE(A1);$B$2:$B$10;0);1);"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
(03.03.2017, 22:59)Binary91 schrieb: Die Idee ist mir auch bereits gekommen, das erspart mir sogar die Matrixformel.
Äh... das ist eine Matrixformel.

(03.03.2017, 22:59)Binary91 schrieb: Allerdings können auch nachträglich Einträge in die Tabelle erfolgen und somit kann eine sortierte Datumreihenfolge nicht garantiert werden.
Du meinst im Jahre 2018 fällt jemanden ein dass am 04.08.2014 im Parkhaus am Park die Gebühr geändert wurde? Ein bisschen spät, oder?
Wir sehen uns!
... Detlef

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

Antworten Top
#6
@WillWissen:
Super, danke! Die Indizes mit der Zeilennummer zu vergleichen ist praktisch.


Zitat:Äh... das ist eine Matrixformel.
Das erklärt warum sie nicht funktionert hat.


Zitat:Du meinst im Jahre 2018 fällt jemanden ein dass am 04.08.2014 im Parkhaus am Park die Gebühr geändert wurde? Ein bisschen spät, oder?
Es geht nicht um Parkhäuser und Parkgebühren. Einige Rechnungen kommen Monate später als andere und wenn sich Gebühren von März im Mai geändert haben, allerdings mittlerweile Oktober ist und schon hunderte weitere Einträge existieren, dann wird man sicher nicht das rumschieben anfangen Dodgy
Antworten Top
#7
(03.03.2017, 23:54)Binary91 schrieb: Das erklärt warum sie nicht funktionert hat.
Genau, Matrixformeln funktionieren ja nie.

(03.03.2017, 23:54)Binary91 schrieb: Es geht nicht um Parkhäuser und Parkgebühren.
Huch?! Dann fällt das leider nicht mehr in meine Zuständigkeit.
Wir sehen uns!
... Detlef

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

Antworten Top
#8
@WillWissen:
Ein Problem ergibt sich bei der Sortierformel noch für mich. Leider kommen manche Daten mehrmals vor und somit kann nicht mehr jede Id einer Zeile zugeordnet bzw. doppelt zugeordnet werden.

Gibt es eine Möglichkeit, doppelte Werte zu inkrementieren und darauf basierend eben die darauffolgenden Werte ebenfalls? Mir fällt leider kein Weg ein, das zu realisieren.

Zitat:Dann fällt das leider nicht mehr in meine Zuständigkeit.
Dachte ich mir.
Antworten Top
#9
Hi,

warum nicht?

Tabelle1

ABCDE
1IDNamenHSIDNamen sort.
2100Friedrich7102Anton
3101Ida9102Anton
4102Anton1104Berta
5103Heinrich8104Berta
6104Berta3105Cäsar
7105Cäsar5106Emil
8104Berta4100Friedrich
9106Emil6103Heinrich
10102Anton2101Ida
Formeln der Tabelle
ZelleFormel
C2=ZÄHLENWENN($B$2:$B$10;"<"&$B2)+ZÄHLENWENN($B$2:$B2;"="&$B2)
D2=INDEX(A:A;VERGLEICH(E2;B:B;0))
E2=WENN(LÄNGE($B2)<>0;INDEX($B$2:$B$10;VERGLEICH(ZEILE(B1);$C$2:$C$10;0);1);"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Es wird jeweils die entsprechende ID zugeordnet. Ich setze natürlich voraus, dass es für den jeweiligen Begriff auch die jeweilige eindeutige ID gibt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#10
Hi,

danke für die schnelle Rückmeldung!

Das ist ja klasse! Danke, so passt das Ganze.

Liebe Grüße und einen schönen Sonntag wünsche ich :19:
Antworten Top


Gehe zu:


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