Wpis z mikrobloga

Mam coś takiego:

Data Imię Kwota
2012-07-17 Marcin 1 zł
2012-07-17 Władek 2 zł
2012-07-17 Piotrek 5 zł
2012-07-17 Marcin 3 zł
2012-07-18 Władek 4 zł
2012-07-18 Marcin 1 zł
2012-07-19 Władek 3 zł
2012-07-19 Piotrek 1 zł
2012-07-19 Marcin 6 zł
2012-07-20 Władek 5 zł
2012-07-20 Marcin 1 zł
2012-07-20 Marcin 3 zł
2012-07-20 Władek 4 zł
2012-07-22 Piotrek 7 zł
2012-07-23 Piotrek 10 zł

CEL: Zrobić ranking osób, których suma wpłat będzie >= 10zł, ale
UWAGA: nie chodzi o ilość wpłaconych pieniędzy, a o to kto pierwszy wpłacił >= 10zł

#excel #pytanie #pytaniedoeksperta
  • 26
@Pitu_: wpierw suma.jezeli bez blokowania zakresu dla argumentów i dolnego zakresu dla sumy, potem sortowanie po dacie i obok funkcja jezeli większe od 10 to cos tam

Daj arkusz to Ci pokaże bo w głowie póki co działa ;)
@plemnik_w_piwie: no właśnie sypie się jak kwota po wymaganej jest dokładana ;) jak coś będziesz koło rozwiązania to daj znać :) sam już właściwie kończę, ale chętnie popatrzę na inny tok myślenia
@Pitu_: czyli ranking może mieć "nieskończoną" liczbę rekordów, a arkusz musi być dynamiczny? To mi trochę komplikuje sytuacje...eh, może jutro pomyślę nad tym. Ale zadanko ciekawe. Można poznać Twój front walki?:>
@plemnik_w_piwie: nieskończoną to raczej nie, gdzieś tam to się kończy zawsze, ale dynamiczny powinien być, mam tu na myśli fakt, że każdego nowego dnia możemy to nadpisywać i dokładać linijke z nowa kwotą odłożoną przez jedna z osób, a jeśli chodzi o mój front walki to jestem w momencie, że mam po kolei ranking np. Marek, Adam, Marcin, Władek, ale dublują się osoby(Marek, Adam, Marek, Marcin, Władek
@plemnik_w_piwie: zgadzam się, że zadanie dość ciekawe, banalne do rozwiązania przy użyciu kolumn pomocniczych, lub VBA

@Pitu_: Moja propozycja (dla danych jak na obrazku:

=INDEKS($B$2:$B$16;MIN.K(JEŻELI(MACIERZ.ILOCZYN(N(TRANSPONUJ(WIERSZ($C$2:$C$16))<=WIERSZ($C$2:$C$16))*(N(TRANSPONUJ($B$2:$B$16)=($B$2:$B$16)));N(MACIERZ.ILOCZYN(N(TRANSPONUJ(WIERSZ($C$2:$C$16))<=WIERSZ($C$2:$C$16))*(N(TRANSPONUJ($B$2:$B$16)=($B$2:$B$16)));($C$2:$C$16))>=10))=1;WIERSZ($C$2:$C$16)-MIN(WIERSZ($C$2:$C$16))+1;1E+307);E2))
Niezbyt ładna, chętnie zobaczyłbym prostsze rozwiązanie.
@Pitu_: Tak jak mówiłem, w VBA to jest banał, ale konkretny kod zależy od a) układu arkusza, b) od tego kiedy miałby być uruchamiany (czy po każdej zmianie arkusza, czy po naciśnięciu przycisku)