Mam taką tabelę porównywania ROI:
Month | ROI | 1 | 2 | 3 |
Jul | A | 1% |
Jul | B | 3% |
Jul | C | 2% |
Jun | A | 4% | 6% |
Jun | B | 5% | 7% |
Jun | C | 6% | 8% |
May | A | 2% | 4% | 7% |
May | C | 3% | 5% | 6% |
Chciałbym klasyfikować ROI każdego produktu (A, B i C) każdego miesiąca - dlatego należy klasyfikować najbardziej odpowiedni procent dla danego miesiąca.
Jednak zakres musi być dynamiczny, ponieważ każdy produkt może mieć inną datę uruchomienia. Na przykład miesiąc majowy nie ma produktu B.
Tak więc wyjście będzie:
Month | ROI | 1 | 2 | 3 | Rank
Jul | A | 1% | | | 3
Jul | B | 3% | | | 1
Jul | C | 2% | | | 2
Jun | A | 4% | 6% | | 3
Jun | B | 5% | 7% | | 2
Jun | C | 6% | 8% | | 1
May | A | 2% | 4% | 7% | 1
May | C | 3% | 5% | 6% | 2
Myślę o użyciu funkcji Index / Match:
=RANK(INDEX(G3:S3,MATCH(9^99,G3:S3,1)),G3:G5,0)
Ale nie jestem pewien, jak sprawić, by G3: G5 był dynamiczny.
Odpowiedzi:
0 dla odpowiedzi № 1Myślę, że udało mi się go uruchomić za pomocą następującej formuły w kolumnie rang:
=RANK(OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1),
OFFSET(G3,COUNTIF(E3:$E$999,E3)-COUNTIF($E$1:$E$999,E3),
SUM(--ISNUMBER(G3:S3))-1,COUNTIF($E$1:$E$999,E3)))
(zakładając, że twoje miesiące się skończyły E1:E999
).
Na to wygląda G3
i przesuwa się w najbardziej na lewo niepusty (ISNUMBER
) kolumna za pomocą OFFSET
i uważa, że ta wartość ma miejsce w rankingu OFFSET
tablica, w której miesiąc odpowiada bieżącemu miesiącowi wiersza.
Przełammy drugi OFFSET
formuła (zakładając, że rozważamy Jul
rząd):
- Zacznij od
G3
. - Przesunięcie wiersza: liczba
Jul
wiersze poniżej bieżącego wiersza (włącznie) - całkowita liczbaJul
wydziwianie. - Przesunięcie kolumny: liczba komórek zawierających liczby w bieżącym wierszu - 1
- Wysokość: całkowita liczba
Jul
wydziwianie.
Jest to formuła tablicowa, więc należy ją wprowadzić za pomocą Ctrl+Przesunięcie+Wchodzić.
Uwaga: Formuła zakłada, że wartości skrajne po prawej są w tej samej kolumnie, jeśli miesiąc jest taki sam. Dotyczy to twojego podanego przykładu, ale nie wiem, czy zachowuje on dla twojego pełnego zestawu danych. Jeśli nie jest to prawdą, możesz utworzyć kolumnę pomocniczą przy użyciu pierwszego OFFSET
kawałek formuły
=OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1)
aby uzyskać swój najbardziej prawy numer w każdym wierszu, a następnie wykonaj ranking w tej kolumnie pomocnika.
0 dla odpowiedzi nr 2
Zacznij od prostego rankingu podgrupy za pomocą Funkcja LICZ.JEŻELI.
=COUNTIFS(A:A, A2, C:C, "<="&C2)
Zmodyfikuj zakres wartości procentowych, aby złapać najbardziej prawy numer z tego wiersza INDEKS w zakresie wielu kolumn z przybliżonym MECZ.
=COUNTIFS(A:A, A2, INDEX(A:F, 0, MATCH(1E+99, A2:F2)), ">="&INDEX(A:F, ROW(2:2), MATCH(1E+99, A2:F2)))
Wypełnij w razie potrzeby.