Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Выбор всех строк из таблицы, относящихся к одной группе.

Автор Re2, 16.08.2012, 03:40

« назад - далее »

Re2

Доброе время суток, коллеги!
Имеется книга с двумя листами.
Первый лист - это таблица с тремя колонками:
-дата выполненной работы;
-группа, к которой данная работа относится;
-описание выполненной работы.
Второй лист - содержит те же колонки и  раскрывающийся список, в котором можно выбрать одну из нескольких групп работ.
Как сделать, чтобы при выборе одной группы работ (из списка) в таблице отображались все строки первой таблицы, в которых в графе Group содержится указанная в списке группа?..

cheshiki1


Re2

А можно в двух словах механизм работы :)?? Хочу сделать так, чтобы еще даты работ отображались в фильтре. Объясните, если не сложно, как это работает??

Re2

Я не могу понять - вы это сделали с помощью макроса? Что это за раскрывающийся элемент и как просмотреть его свойства! Скопировал все формулы в исходную книгу, которую я выложил - у меня не работает! Помогите уж разобраться!!!

cheshiki1

Макросов там нет.
1. создаем список уникальных значений на отдельном листе (в дальнейшем его можно скрыть) с помощию формулы массива (формула массива вводится ctrl+shift+enter)
=ИНДЕКС('List of Works'!$D$6:$D$100;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ(список!E$1:E6;'List of Works'!$D$6:$D$100)=0;СТРОКА('List of Works'!$D$6:$D$100)-5);1)) но при её использовании в строках после окончания уникальных будет выскакивать ошибка.
=ЕСЛИ(ИЛИ(список=0;ЕОШ(список));"";список) - этой формулой избавляемся от ошибок. Чтоб формула не была громоздкой первой формуле присвоил имя "список" которое мы видим в формуле 2
2. создаем выпадающий список
формула для него =СМЕЩ(список!$A$1;1;;СЧЁТЕСЛИ(список!$A$2:$A$140;">""");1) присваиваем ей имя список2
Данные - Проверка данных  в открывшемся окне Тип данных - список
Источник - =список2

Re2

Спасибо за ответ! Респект вам!
Для меня это пока высший пилотаж(..

Njura

cheshiki1 , не могли бы вы пояснить как работает формула Список3 и будет ли она работать с динамическими диапазонами?

cheshiki1

Цитата: Njura от 24.08.2012, 12:55
cheshiki1 , не могли бы вы пояснить как работает формула Список3 и будет ли она работать с динамическими диапазонами?
с динамическими диапазонами - да будет.
Список3=ИНДЕКС('List of Works'!$E$6:$E$140;НАИМЕНЬШИЙ(ЕСЛИ((СЧЁТЕСЛИ('Filter of Works'!$E$6:$E6;'List of Works'!$E$6:$E$140)=0)*('List of Works'!$D$6:$D$140='Filter of Works'!$D$7);СТРОКА('Filter of Works'!$A$1:$A$134));1))
СЧЁТЕСЛИ('Filter of Works'!$E$6:$E6;'List of Works'!$E$6:$E$140)=0  -  проверяет было ли заданное значения выше, если значение было то ему будет присваиваться ЛОЖЬ если не было ИСТИНА.
('List of Works'!$D$6:$D$140='Filter of Works'!$D$7) - сравнивает диапазон со значением ячейки, если значение равно то ему будет присваиваться ИСТИНА если нет - ЛОЖЬ.
СЧЁТЕСЛИ('Filter of Works'!$E$6:$E6;'List of Works'!$E$6:$E$140)=0)*('List of Works'!$D$6:$D$140='Filter of Works'!$D$7) - получаем диапазон значение (например (ЛОЖЬ;ИСТИНА;.....)*(ИСТИНА;ИСТИНА;....)=(ЛОЖЬ*ИСТИНА;ИСТИНА*ИСТИНА;....)=(0;1;.....))
ЕСЛИ сверяет полученные значения и если ЛОЖЬ(0) то ЛОЖЬ, если ИСТИНА(1) по принимает значение строки в ячейке(формула СТРОКА('Filter of Works'!$A$1:$A$134))
НАИМЕНЬШИЙ принимает наименьшее значение диапазона полученного после ф-ции если
ну а про индекс я думаю описывать не нужно. Что то такое. надеюсь понятно.

Njura

С индексом всё ясно, да. С остальным буду разбираться. Спасибо!

cheshiki1

Лично я чтоб просмотреть поочередность работы формулы использую Формулы-Вычислить формулу, но лучше этим пользоваться на маленьких диапазонах.