Столкнулся с необходимостью написать формулу которая бы обрабатывала ячейки на повторения и в случае повторения помечала ячейку с наибольшей датой, но увы моих знаний и знаний коллег не хватает.
Пример желаемого:
Массив информации с одними и теми же контейнерами, есть даты убытия, прибытия, необходимо, что бы:
1) если контейнер уехал и приехал то на последнею дату выставлялась отметка, что он стоит. 2) если контейнер уехал и не сдан отметка, что он едет.
написал: пс: для примера достаточно было и сотни контейнер
В том и проблема, что ставить всем не подходит. Стоять может только последний по дате из повторов, задача и заключается в том, что бы можно было отфильтровать только те которые действительно стоят, что бы понять где они стоят. Пример который я приложил и так не полный есть контейнера которые в полном файле повторяются по 8 раз.
написал: Времени доброгоеще вариант{ }=ЕСЛИ(C2=МАКС(C$2:C$7714*(B$2:B$7714=B2));ЕСЛИ(E2="";"едет";"стоит");"")пс: для примера достаточно было и сотни контейнеров
Павел, доброго времени. Пробывал по вашей формуле, но у меня не получается, проставляет не корректно.
Erens, как вы думаете зачем я перед формулой поставил такой знак? - { } Объясняю, если не догадались или не знаете: Заходите в режим редактирования формулы в F2, жмете Ctrl+Shift+Enter и перепротягиваете Называется это - формула массива
пс: смотрю добавили данных в выборку. Может искать во всей и не надо? - а, например, в последней тысяче? На результат это не влияет, а вот на скорость обработки да
Павел спасибо, по вашему варианту помогло: =ЕСЛИ(N1385=МАКС(N$2:N$10944*(M$2:M$10944=M1385));ЕСЛИ(X1385="";"едет";"сдан");"")
Сейчас имеется *вложение* и вопрос возможно еще прописать подтяжку следующей даты выдачи в пустую колонку так же через поиск по массиву:
Если я правильно понимаю то формула встает в следующий участок, но снова же через поиск по массиву. =ЕСЛИ(N1385=МАКС(N$2:N$10944*(M$2:M$10944=M1385));ЕСЛИ(X1385="";"едет";"сдан");"__XXXX__")
И вам доброго Erens, Не совсем понятно: Вы хотите пустые значения, что возвращает формула заполнить датами? (и как я понял не из этой строки, а из "первой встретившейся" после нее) потом, вы пишете про дату выдачи, а на снимке другой столбец формулу "выдернули" из середины или у вас таблица с 1385 строки начинается? )
Есть таблица 10000 строк, искомое значение повторяется до 5-10 раз.
Каждая строка это рейс у которого есть: - начало: дата выдачи - конец: дата возврат - есть статус движения который по формуле МАКС при выданном но не сданном отображает едет либо сдан в случае если есть обе даты, в случае старого рейса мы видим пустую строку. (спасибо Вам за помощь и совет по написанию данной формулы.)
Возможно это реализовать, что бы в пустую строку к архивному рейсу подтягивалась дата выдачи в следующий рейс, возможно помощью технических полей которые будут присваивать каждому рейсу ID?
Erens, у вас есть повторы по данным - в файле сделан запрос pq, сделайте вывести запрос в таблицу (там только подключение, иначе файл не загружается по размеру), все "0" в столбце "простой" - это повторяющиеся данные. кмк, аналитику лучше в отдельной таблице от данных делать..
Код
let
fr = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
a0 = List.Buffer(Table.ColumnNames(fr)),
f = (x)=> [ z0=List.Buffer(Table.ToColumns(Table.Sort(x, a0{2}))),
z1 = List.Skip(z0{2}),
z2 = Table.FromColumns(z0&{z1}, a0&{"Отправление"}),
z3 = Table.AddColumn(z2, "Простой", (x)=> Duration.Days(x[Отправление]-Record.Field(x, a0{2})))][z3],
a1 = Table.Group(fr, a0{1}, {"new", (x)=>f(x)}),
a2 = Table.Combine(a1[new]),
to = Table.TransformColumnTypes(a2, {{a0{2}, type date}, {a0{4}, type date}, {"Отправление", type date}})
in
to
Если неохота сортировать в F2 { }: =ЕСЛИОШИБКА(ИНДЕКС(C:C;НАИМЕНЬШИЙ(ЕСЛИ((B$1:ИНДЕКС(B:B;ПОИСКПОЗ("яъ";B:B))=B2)*(C$1:ИНДЕКС(C:C;ПОИСКПОЗ("яъ";B:B))>C2);СТРОКА(B$1:ИНДЕКС(B:B;ПОИСКПОЗ("яъ";B:B))));1));ЕСЛИ(E2="";"едет";"сдан")) ВПР в отсортированной таблице, безусловно, пошустрее будет
Да вот крутил, отсортировать не получится, так как есть структура и очередность и с сортировкой не вяжется. Попробую Ваш вариант завтра, спасибо. Только пока не чего не понимаю Т_Т. Если вариант с ВПР мне был понятен по написанию и принципу, то ваша формула как заклинание.