Страницы: 1
RSS
Вывод списка значений в хронологическом порядке
 
Здравствуйте
Помогите решить задачку:
Описание: есть список подписантов в одной таблице (накопительный). Мне его надо отобразить в другой таблице (раздел 1) в хронологическом порядке по дате начала работ с рядом условий (1. совпадение очереди строительства, 2. нужно ли его переносить в раздел 1, т.е. сам ставлю ограничение в табл. "подписанты").
Сложность в том, что некоторые подписанты имеют одинаковые даты начала работ и соответственно они дублируются по наименьшему значению.
Можно ли формулами добиться желаемого результата не прибегая к помощи PQ. Эксель 2021.

PS. Есть такая "хитрость" как строка()%%, которая дает небольшой "сдвиг", но не получается это реализовать в массиве отбора данных.
 
Если Excel 21 то там должно быть все проще, сейчас не могу проверить но, что-то вроде:
Код
=ИНДЕКС(СОРТ(ФИЛЬТР(Подписанты[[Дата начала работы]:[Фам & Ин]];(Подписанты[ООО Организации]=Р1_2я[@[ООО Организации]])*(Подписанты[Дата начала работы]=Р1_2я[@[Начало работы]])*(Подписанты[Нужен ли в раздел 1]<>"нет");"не найден");1;-1);1;4)
Изменено: R091n - 12.02.2024 10:43:11
 
Код
'Подписанты!'M3:M43    =ЕСЛИ(Подписанты[@[Нужен ли в раздел 1]]<>"нет";(Подписанты[@[Дата начала работы]]+СЧЁТЕСЛИМН($F$1:F3;Подписанты[@[Дата начала работы]])*СТЕПЕНЬ(10;-ОКРУГЛВВЕРХ(LOG10(СЧЁТЗ(F:F));0)));1+МАКС(Подписанты[Дата начала работы]))
'Раздел1_2я!'G7:G41    =ИНДЕКС(Подписанты!I:I;ПОИСКПОЗ(НАИМЕНЬШИЙ(Подписанты!$M:$M;СТРОКА(1:1));Подписанты!$M:$M;0))

 
R091n, спасибо, попробовал, но в п.3 дб. Бейгуленко, в п.4 Аносов
Изменено: IvI80 - 12.02.2024 13:14:46
 
Здравствуйте
Цитата
Есть такая "хитрость" как строка()%%
Для "№ п/п":
=ЕСЛИОШИБКА(ОКРУГЛ(ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ((Подписанты[Очередь]=G$1)*(Подписанты[Нужен ли в раздел 1]="");Подписанты[Дата начала работы]+СТРОКА(Подписанты[№ п/п])%%);ЧСТРОК(A$7:A7));1)/1%%;3)-СТРОКА(Подписанты[[#Заголовки];[№ п/п]]);"")
 
Подправил:
Код
=ИНДЕКС(ФИЛЬТР(Подписанты[[Дата начала работы]:[Фам & Ин]];(Подписанты[Очередь]=Раздел1_2я!$G$1)*(Подписанты[Дата начала работы]=Р1_2я[@[Начало работы]])*(Подписанты[Нужен ли в раздел 1]<>"нет");"не найден");1+СЧЁТЕСЛИ($D$6:D6;Р1_2я[@[Начало работы]]);4)

для дат динамический массив:
Код
=СОРТ(ФИЛЬТР(Подписанты[Дата начала работы];(Подписанты[Очередь]=Раздел1_2я!$G$1)*(Подписанты[Нужен ли в раздел 1]<>"нет");""))
Изменено: R091n - 12.02.2024 17:38:42
 
Я кажется своим изначальным примером сам немного "завел рака за камень" (хотел показать, что я тоже пробовал решить задачку)).
Изначально таблица "раздел 1" полностью пустая. Из таблицы "подписанты" нужно отобразить список подписантов в хронологическом порядке. И далее как в описании темы.
В результате меняя значение на очередь "2-я" или "3-я" в Разделе 1 хотелось чтобы менялся список подписантов в хронологическом порядке.

R091n, в коде "Подправил" массив Фильтра, я полагаю, достаточно указать один столбец [Фам & Ин]. А вот этот момент "*(Подписанты[Дата начала работы]=Р1_2я[@[Начало работы]])*" как то следует изменить...

МатросНаЗебре, Павел \Ʌ/,  Ваши варианты тоже рабочие спасибо, но пробуя менять очередь список не выводится.

Приложил новый файл примера "На форум_2".
Изменено: IvI80 - 13.02.2024 13:11:38
 
Цитата
IvI80: пробуя менять очередь список не выводится
попробуйте изменить текст на дату в ячейке  Подписанты!P31 (" 19.12.2023")
Обработку таких данных можно учесть в формуле, но лучше, таки, данные вводить корректно
 
Можно попробовать так (взят не один столбец, так как нужно иметь диапазон с датами для сортировки)
Код
=ЕСЛИОШИБКА(ИНДЕКС(СОРТ(ФИЛЬТР(Подписанты[[Дата начала работы]:[Фам & Ин]];(Подписанты[Нужен ли в раздел 1]<>"нет")*(Подписанты[Очередь]='Р1_2я'!$G$1);"");1);ЧСТРОК($C$7:$C7);8);"")
 
Павел \Ʌ/, R091n, спасибо Вам большое - то, что нужно)
Страницы: 1
Наверх