Hallo zusammen,
ich - bzw. meine Freundin :) - stehen vor einem Problem, dass wir nur mit Hilfe von VBA lösen können und leider kommen wir da nicht so weit...
Folgender Sachverhalt:
Es gibt 6 Spalten:
A: User_ID A (Sobald der Wert <>"" bedeutet das, der User löst eine Interaktion aus)
B: Datum (Zeitpunkt zu dem User_ID A "interagiert")
C: User_ID C (Sobald der Wert <>"" bedeutet das, der User erhält einen neuen Freund ("D+1"))
D: Anzahl_Freunde von User_ID C
E: Datum (Zeitpunkt zu dem User_ID C einen neuen Freund bekommt)
F: Zielspalte (Anzahl Freunde (D) des Users (A) zum Zeitpunkt seiner Interaktion (B))
Jetzt ist es so, dass in Spalte A mehrfach der gleiche User (zu unterschiedlichen Zeiten) agieren kann.
Somit sehen Spalten A und B so aus:
[A1-A4] = [1;1;1;2] Interpretation: User 1 interagiert dreimal, User 2 nur einmal
[B1-B4] = [01.01.2012 11:38:00; 01.01.2012 13:12:00; 25.05.2012 12:00:00; 01.01.2012 15:00:00] Interpretation: User 1 interagiert zu den genannten Zeitpunkten, User 2 zu dem letztgenannten Zeitpunkt.
Die Spalten C, D und E sehen bspw. so aus:
[C1-C5] = [1, 1, 1, 1, 2] Interpretation: User 1 bekommt insgesamt 4 mal einen neuen Freund, User 2 bekommt einmal.
(Achtung: A und C sind nicht identisch! Anzahl Interaktionen vs. Anzahl Freunde!)
[D1-D5] = [1, 2, 3, 4, 1] Interpretation: User 1 bekommt insgesamt 4 Freunde, User 2 bekommt einen Freund.
[E1-E5] = [01.01.2012 11:00:00; 01.02.2012 13:12:00; 01.02.2012 14:00:00; 01.03.2012 15:00:00; 01.02.2012 13:12:00] Interpretation: Zeitpunkte, zu denen die neuen Freundschaften geknüpft wurden.
Wir wollen nun herausfinden, wieviele Freunde der User zum Zeitpunkt seiner Interaktion hat.
Die Berechnungsschritte sollten iterativ für alle User_ID As aus unserer Sicht wie folgt sein:
1) Im ersten Schritt erfolgt ein Abgleich zwischen den User_IDs A und C.
2) Dann werden für alle User_ID A = User_ID C die Zeitwerte aus Spalte E mit den Zeitwerten aus Spalte B verglichen.
3) Sobald die Zeile gefunden ist, in der E > B, dann soll der Wert aus Spalte D (und einer Zeile vorher = Anzahl Freunde zum Zeitpunkt davor) in Spalte F geschrieben werden.
Beispielhaftes Ergebnis für die Interaktionen 1 und 3 des Users 1.
User 1 ist am 01.01.2012 um 11:38:00 aktiv, zu dem Zeitpunkt hat er einen Freund (=D1, da B1>E1 und B1<E2)
User 1 ist am 25.05.2012 um 12:00:00 aktiv, zu dem Zeitpunkt hat er vier Freunde (=D4, da B3>E4 und B3<E5)
Vielen Vielen Dank für Eure Unterstützung! :)
Viele Grüße
Andrea + Christian
|