Страницы: 1
RSS
Построчное извлечение данных с другого листа по условию в выпадающем списке
 
Друзья, Всем доброго времени суток!

Столкнулся с очередной интересной задачей, файл примера прилагается.
На лист Отчет в ячейку С7 нужно написать формулу, которую можно будет протянуть на диапазон С7:F10 и она подтянет данные с листа Источник.
Единственное но, это то что ссылаться нужно на ячейку B2 (выпадающий список). Диапазон данных для ячейки B2 - Столбец А листа Источник.
Следовательно, при изменении значения в ячейке B2 должны обновиться все данные в диапазоне C7:F10
Заранее благодарю!
 
Здравствуйте, Артём.
Посмотрите, пожалуйста, предлагаемое решение со вспомогательным столбцом на листе источник. То ли это, что Вам нужно?
 
Код
=ФИЛЬТР(Источник!B2:E12;Источник!A2:A12=Отчет!B2)
 
Антон, спасибо, но это не для всех пользователей, т.к. не у всех есть pro версия Excel...

IKor, пример работает, спасибо!
А если задача немного изменится, и для каждого ID будет создан свой лист, как в новом примере, не могли бы помочь переписать формулу?
 
Если
Цитата
написал:
для каждого ID будет создан свой лист,
то для каждого ID потребуется свой дополнительный столбец на первом листе; а на соответствующих листах придётся ссылаться на правильный столбец.

Зато если Вы отсортируете исходную таблицу по ID, то можно будет обойтись без костылей в виде доп. столбцов.
А ещё Вы можете разобраться со сводными таблицами, возможностями power query и VBA. Всё это позволит лучше или хуже решить новую задачу, если она ещё немного изменится...
 
Если
написал:
для каждого ID будет создан свой лист,
то для каждого ID потребуется свой дополнительный столбец на первом листе; а на соответствующих листах придётся ссылаться на правильный столбец.

Именно так и реализовал пока что.

По поводу сортировки не совсем понял, т.к. на первом листе Мы ведь ссылаемся на ячейку в которой у нас выпадающий список, а если мы создаем несколько листов под каждый ID, то и ссылаться в любом случае надо будет на новый лист, а для этого и создается новый столбец (костыль)
 
=IF(ROWS($C$6:C6)>COUNTIF(Источник!$A:$A;$B$2);"";INDEX(Источник!B:B;SMALL(IF(Источник!$A$2:$A$13=$B$2;ROW(Источник!$A$2:$A$13));ROWS($C$6:C6)))) лист 2574
или
=IFERROR(INDEX(Источник!B:B;SMALL(IF(Источник!$A$2:$A$13=$B$2;ROW(Источник!$A$2:$A$13));ROWS($C$6:C6)));"") лист 57
Вторая короче, но медленнее при больших объемах, так как считает лишнее. Но
в идеале нужно вынести часть расчета в отдельный столбец .лист 2574(2)
По вопросам из тем форума, личку не читаю.
 
Благодарю!
Изменено: Артем_81 - 21.11.2021 16:23:14
Страницы: 1
Наверх