Znajdź zakres komórek za pomocą funkcji MATCH

0

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.

harryg
źródło
Czy chcesz, aby ta tabela „Core” zawierała wszystkie odwołania do arkusza roboczego (strony) dla wspomnianych informacji? Co kontroluje te tabele „Core”? Skąd pochodzą informacje, które będą wypełniać arkusze „dodatkowe”?
GoldBishop
Wygląda na to, że tabele przestawne mogą być dla Ciebie dobrym rozwiązaniem. Zasadniczo próbujesz uruchomić zapytanie dotyczące danych, na tym właśnie polegają tabele przestawne.
Stewbob
Jasne, ale muszę odwołać się do komórki w arkuszu, aby podać wartość wyszukiwania. W przypadku elementów przestawnych filtry należy ustawić ręcznie
1
Jeśli chcesz uniknąć robienia rzeczy ręcznie, jak możesz uniknąć VBA? Tabele przestawne są dość proste.
Daniel
Tak, myślę, że muszę użyć VBA. Zastanawiałem się, czy istnieje prostszy sposób na zrobienie tego

Odpowiedzi:

0

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:

=OFFSET(Table,MATCH(Page,PageList,0)-1,1,COUNTIF(PageList,Page),1)

Gdzie:

  • Table jest cała tabela w twoim przykładzie.
  • Page jest stroną do filtrowania.
  • PageListjest tylko pierwszą kolumną Table.
markblandford
źródło
0

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

Barry Houdini
źródło