Страницы: 1
RSS
Вывести список агентов согласно выбранному графику работы
 
Добрый вечер.

Есть следующая задача:
На первом листе есть таблица, которую нужно заполнить. Заполнить ее нужно данными из таблицы, находящимися на листе 2. При условии, что в первом столбце таблицы указано "8-20".

Сначала думала, что справлюсь ВПР:  
Код
=ВПР(Лист2!A3;Лист2!A2:B21;2;0)

Но данные начали задваиваться.
Добавила условие ИЛИ, чтобы сравнивать с предыдущими ячейками (для второй и третьей ячеек):
Код
=ЕСЛИ((ВПР(Лист2!$A$3;Лист2!$A$2:$B$21;2;0))=B11;ВПР(Лист2!$A$3;Лист2!$A$4:$B$21;2;0);ВПР(Лист2!$A$3;Лист2!$A$2:$B$21;2;0))
=ЕСЛИ(ИЛИ((ВПР(Лист2!$A$3;Лист2!$A$2:$B$21;2;0))=B11;(ВПР(Лист2!$A$3;Лист2!$A$2:$B$21;2;0))=B12);ВПР(Лист2!$A$3;Лист2!$A$5:$B$21;2;0);ВПР(Лист2!$A$3;Лист2!$A$2:$B$21;2;0))

Стало понятно, что для 20-ой ячейки формула будет огромной. И плюс ко всему, если следующей условие на листе 2 выполнится, допустим, в 8-ой строке, то опять будет дубль.

Скрины 1-го и 2-го листов прилагаю.
Целевое состояние: чтобы на лист 1 в таблицу выгрузились только те Агенты, у которых на листе 2 стоит график "8-20".

Прошу помощи, не соображу, как сделать.
 
Маргарита Пыркина, где вы видите тут
Цитата
Маргарита Пыркина написал:
из таблицы, находящимися на листе 2.
Цитата
Маргарита Пыркина написал:
первом листе есть таблица,
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,я не поняла Вас. Что мне нужно уточнить в вопросе своем?
 
Цитата
Маргарита Пыркина написал:
Что мне нужно уточнить в вопросе своем?
Файл приложить к вопросу своему дабы обрести ответ следует
Соблюдение правил форума не освобождает от модераторского произвола
 
1. Ознакомиться с правилами форума.
2. Предложить (уточнить) название темы по конкретной задаче. Заменят модераторы
3. Прикрепить небольшой пример в формате Excel
 
Mershik, buchlotnik,дошло теперь, извините. Приложила.
 
Тема: Вывести список агентов согласно выбранному графику работы
1
Код
=ЕСЛИОШИБКА(ИНДЕКС(Лист2!$B$2:$B$21;АГРЕГАТ(15;6;СТРОКА(Лист2!$A$1:$A$21)/(Лист2!$A$2:$A$21="8-20");СТРОКА(Лист2!A1));1);"")
2 https://www.planetaexcel.ru/techniques/2/81/
3 еще вариант если агенты не повторятся
Код
=ЕСЛИОШИБКА(ИНДЕКС(Лист2!$B$2:$B$21;ПОИСКПОЗ(1;ИНДЕКС((СЧЁТЕСЛИ($B$10:B10;Лист2!$B$2:$B$21)=0)/(Лист2!$A$2:$A$20="8-20");0);0));"")

4 держите еще макрос)

Код
Sub mrshkei()
Dim  i As Long, lr As Long, arr, arr2
With Worksheets("Лист2")
lr = .Cells(Rows.Count, 1).End(xlUp).Row
arr = .Range("A2:B" & lr)
ReDim arr2(1 To Application.WorksheetFunction.CountIf(.Range("A2:A" & lr), "8-20"), 1 To 1)
j = 1
For i = LBound(arr) To UBound(arr)
    If arr(i, 1) = "8-20" Then
        arr2(j, 1) = arr(i, 2)
        j = j + 1
    End If
Next i
End With
Worksheets("Лист1").Range("B11").Resize(UBound(arr2), 1) = arr2
End Sub

Изменено: Mershik - 23.01.2021 23:12:46
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,огромное спасибо! Видео просмотрела. Сложилась теперь картинка! Спасибо!
Страницы: 1
Наверх