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.


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.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.