Страницы: 1
RSS
Сформировать строки по условию с других листов
 
Добрый вечер.
Подскажите, в каком направлении двигаться)

Мне нужно выводить на листе "СПИСОК" строки с двух других листов (Лист "Юг" и Лист "Север"), выводить те строки с этих  двух листов, у которых в столбце L есть любое значение(<>""). Осложняется все тем, что на лист "СПИСОК" такие строки с двух других листов нужно выводить последовательно, то есть не отображая пустые строки, еще осложняется тем, что выводить такие строки нужно учитывая месяц и лист( выпадающие списки в В2 и С2 на листе "СТРОКИ"). В общем в файле написал что нужно сделать и в ручную накинул пример как это должно получится.

Я крутил ИНДЕКС с ПОИСКПОЗ, потом добавил ВПР, потом пытался с СУММЕСЛИМН, но не могу дотянуть саму идею, как сформировать список из строк по условию наличия значения в этих строках, соблюдая при этом условия поиска по выбранному месяцу и выбранному листу.
Макрос точно может, но нужно без макросов. Примеры конечно же здесь искал, но такой комплекс не нашел
 
Добрый вечер.
Макросом легко.
Формулами в последних версиях ФИЛЬТР() поможет наверное.
Есть у Вас фильтр()?
 
Проверил, нет. эксель ответил "Неверная функция"
 
А почему в Вашем примере отобраны 3 строки, если в столбце "Дата" апрель только в первой из них, остальные - март?
 
Да, ошибся. спасибо.
Поправил пример. но сути не меняет
 
Цитата
ESavin написал:
Да, ошибся.
- там ещё и в источнике ошибки есть, кто-то года криво правил...
Сделал макросом по событию.
 
Спасибо. Макрос работает. Но вариант решения нужен именно формулами
 
Возможно ли реализовать формулой?
 
Код
'СПИСОК!'B4        =ЕСЛИОШИБКА(ИНДЕКС(ДВССЫЛ($B$2&"!L:L");ПОИСКПОЗ(СТРОКА(1:1);ДВССЫЛ($B$2&"!$N:$N");0);1);"")
'СПИСОК!'C4:L4     =ЕСЛИОШИБКА(ИНДЕКС(ДВССЫЛ($B$2&"!"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1)&":"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1));ПОИСКПОЗ(СТРОКА(1:1);ДВССЫЛ($B$2&"!$N:$N");0);1);"")
'Юг!'N3:N202       =N2+ЕСЛИОШИБКА((МЕСЯЦ(B3)=МЕСЯЦ(СПИСОК!$C$2))*(ГОД(B3)=ГОД(СПИСОК!$C$2))*(L3<>"");0)
'Север!'N3:N202    =N2+ЕСЛИОШИБКА((МЕСЯЦ(B3)=МЕСЯЦ(СПИСОК!$C$2))*(ГОД(B3)=ГОД(СПИСОК!$C$2))*(L3<>"");0)
                                

 
Огромное спасибо. Формулы работают, все отлично.
Я пытаюсь понять, что за текст вы записываете в формуле:
=ЕСЛИОШИБКА(ИНДЕКС(ДВССЫЛ($B$2&"!"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1)&":"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1));ПОИСКПОЗ(СТРОКА(1:1);ДВССЫЛ($B$2&"!$N:$N");0);1);"")

В книге нет текстовых значений с таким именем
 
Код
=$B$2&"!"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1)&":"&ПСТР(ЯЧЕЙКА("адрес";B$1);2;1)
Это
Юг!B:B
 
Цитата
ESavin написал:
что за текст вы записываете в формуле
Это первый аргумент функции ЯЧЕЙКА()
Согласие есть продукт при полном непротивлении сторон
 
на листе "СПИСОК"  столбец "КОРРЕКЦИЯ" и даты отображаются, а вот все остальные ячейки строк отображаются формате числа пятизначного( 45413,45416 и тд)
Не пойму, дело в формате? Приложил файл
Изменено: ESavin - 12.07.2024 15:47:48
 
Все понял. извиняюсь. формулу нужно было тащить.
Большое спасибо еще раз
Страницы: 1
Наверх