OK, więc wiem, że mogę to zrobić za pomocą VBA, ale jestem zainteresowany, czy jest to możliwe bez ....
Powiedzmy, że mam taki stół z kilkoma paskami:
Page | Ticker
----------------------
1 | UKX index
1 | SPX index
2 | usgg10yr index
3 | cesiusd index
3 | cesijpy index
3 | gukgin10 index
4 | GSPG10YR Index
Na osobnym arkuszu mam numer strony, powiedzmy 1. Chcę uzyskać wszystkie znaczniki z powyższej tabeli, które odpowiadają numerowi strony arkusza. Zasadniczo odfiltruj tabelę, ale umieść wyniki w innym arkuszu i pozostaw oryginalną tabelę bez zmian.
Oczywiście vlookup / index-match może to zrobić, gdy występuje tylko jedno wystąpienie numeru strony, ale potrzebuję go, aby móc zwrócić kilka znaczników dla danego numeru strony (np. 2 dla strony 1, 1 dla strony 2, 3 dla strona 3 itp.)
Edycja: Dla przejrzystości chciałbym mieć dodatkowe arkusze robocze, które wyglądają tak:
Lookup Value: 1
Tickers:
UKX index
SPX index
Tak więc dla powyższego przykładu, gdybym właśnie użył vlookup / index-match, dałby mi tylko „indeks UKX”, ponieważ jest to pierwszy na liście. Chcę metodę, która zwraca wszystkie dopasowania.
Odpowiedzi:
Zgadzam się ze wszystkimi powyższymi komentarzami, ale jest to możliwe tylko przy użyciu formuły tablicowej, pod warunkiem, że tabela zostanie posortowana według stron. Formuła taka jak poniżej to zrobi:
Gdzie:
Table
jest cała tabela w twoim przykładzie.Page
jest stroną do filtrowania.PageList
jest tylko pierwszą kolumnąTable
.źródło
Jeśli strony są w formacie A2: A100, a znaczniki w formacie B2: B100, to dzięki określonej stronie w D2 można użyć tej „formuły tablicowej” w D3
=IFERROR(INDEX(B$2:B$100,SMALL(IF(A$2:A$100=D2,ROW(A$2:A$100)-ROW(A$2)+1),ROWS(D$3:D3))),"")
potwierdź za pomocą CTRL + SHIFT + ENTER i skopiuj w dół. Kiedy zabraknie ci meczów, otrzymasz puste
Dla powyższego założyłem wszystko dla uproszczenia, ale tę samą formułę można wykorzystać do odniesienia danych na innym arkuszu, w razie potrzeby dodaj nazwy arkuszy. Nie potrzebuje danych w określonej kolejności
źródło