Хорошо, я знаю, что могу сделать это с VBA, но мне интересно, возможно ли это без ....

Скажем, у меня есть такой стол с тикерами:

Page   |   Ticker
----------------------
1      |   UKX index
1      |   SPX index
2      |   usgg10yr index
3      |   cesiusd index
3      |   cesijpy index
3      |   gukgin10 index
4      |   GSPG10YR  Index

На отдельном листе у меня есть номер страницы, скажем, 1. Я хочу получить все тикеры из таблицы выше, которые соответствуют номеру страницы листа. Таким образом, в основном фильтруйте таблицу, но поместите результаты в другой лист и оставьте исходную таблицу без изменений.

Очевидно, что vlookup/index-match может сделать это, когда есть только одно вхождение номера страницы, но мне нужно, чтобы он мог возвращать несколько тикеров для данного номера страницы (например, 2 для страницы 1, 1 для страницы 2, 3 для страница 3 и т. д.)

Изменить: Для ясности я хотел бы иметь вторичные листы, которые выглядят так:

Lookup Value: 1

Tickers:
UKX index
SPX index

Так что для приведенного выше примера, если бы я просто использовал vlookup/index-match, это дало бы мне только "индекс UKX", так как он был первым в списке. Я хочу метод, который возвращает все совпадения.

2 ответа2

0

Если страницы в A2:A100 и тикеры в B2:B100, то с определенной страницей в D2 вы можете использовать эту "формулу массива" в 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))),"")

подтвердите нажатием CTRL+SHIFT+ENTER и скопируйте вниз. Когда у вас заканчиваются спички, вы получаете пробелы

Для вышесказанного я предположил, что все на одном листе для простоты, но эту же формулу можно использовать для ссылки на данные на другом листе, добавляя названия листов, где это уместно. Не нужны данные в определенном порядке

0

Я согласен со всеми комментариями выше, но это возможно только при использовании формулы массива, при условии, что таблица отсортирована по Page. Формула как ниже сделает это:

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

Куда:

  • Table - это вся таблица в вашем примере.
  • Page - это страница для фильтрации.
  • PageList - это только первый столбец Table .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .