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

Столкнулся с необходимостью написать формулу которая бы обрабатывала ячейки на повторения и в случае повторения помечала ячейку с наибольшей датой, но увы моих знаний и знаний коллег не хватает.

Пример желаемого:

Массив информации с одними и теми же контейнерами, есть даты убытия, прибытия, необходимо, что бы:

1) если контейнер уехал и приехал то на последнею дату выставлялась отметка, что он стоит.
2) если контейнер уехал и не сдан отметка, что он едет.

Во вложениях таблица с голым примером
Изменено: Erens - 04.10.2023 18:43:26
 
Если ставить всем, то довольно просто
 
Пришлось файл обрезать, не влезал
 
Времени доброго
еще вариант
{ }
=ЕСЛИ(C2=МАКС(C$2:C$7714*(B$2:B$7714=B2));ЕСЛИ(E2="";"едет";"стоит");"")

пс: для примера достаточно было и сотни контейнеров
 
Цитата
написал:
пс: для примера достаточно было и сотни контейнер
В том и проблема, что ставить всем не подходит.
Стоять может только последний по дате из повторов, задача и заключается в том, что бы можно было отфильтровать только те которые действительно стоят, что бы понять где они стоят.
Пример который я приложил и так не полный есть контейнера которые в полном файле повторяются по 8 раз.
 
Цитата
написал:
Времени доброгоеще вариант{ }=ЕСЛИ(C2=МАКС(C$2:C$7714*(B$2:B$7714=B2));ЕСЛИ(E2="";"едет";"стоит");"")пс: для примера достаточно было и сотни контейнеров
Павел, доброго времени.
Пробывал по вашей формуле, но у меня не получается, проставляет не корректно.

Текстовый пример выглядит так:
Пример 1
ОТ КУДАКонтейнерДата выдачиКУДАДата сдачи Вычисление формулой
КНРTHKU100001031.08.2022РФ08.10.2022
РФTHKU100001011.11.2022КНР28.12.2022
КНРTHKU100001030.12.2022РФ01.02.2023
РФTHKU100001011.02.2023КНР15.03.2023стоит
Пример   2
ОТ КУДАКонтейнерДата выдачиКУДАДата сдачи Вычисление формулой
КНРTHKU100002631.08.2022РФ01.10.2022
РФTHKU100002611.11.2022КНР28.12.2022
КНРTHKU100002630.12.2022РФ01.02.2023
РФTHKU100002611.02.2023КНРедет
 
Erens, как вы думаете зачем я перед формулой поставил такой знак? -  { }
Объясняю, если не догадались или не знаете:
Заходите в режим редактирования формулы в F2, жмете  Ctrl+Shift+Enter и перепротягиваете
Называется это - формула массива

пс: смотрю добавили данных в выборку. Может искать во всей и не надо? - а, например, в последней тысяче?
На результат это не влияет, а вот на скорость обработки  да
Изменено: Павел \Ʌ/ - 05.10.2023 10:42:24
 
Всем доброго времени суток!

Павел спасибо, по вашему варианту помогло:
=ЕСЛИ(N1385=МАКС(N$2:N$10944*(M$2:M$10944=M1385));ЕСЛИ(X1385="";"едет";"сдан");"")

Сейчас имеется *вложение* и вопрос возможно еще прописать подтяжку следующей даты выдачи в пустую колонку так же через поиск по массиву:


Если я правильно понимаю то формула встает в следующий участок, но снова же через поиск по массиву. =ЕСЛИ(N1385=МАКС(N$2:N$10944*(M$2:M$10944=M1385));ЕСЛИ(X1385="";"едет";"сдан");"__XXXX__")
Изменено: Erens - 27.11.2023 16:42:38
 
И вам доброго Erens,
Не совсем понятно:
Вы хотите пустые значения, что возвращает формула заполнить датами? (и как я понял не из этой строки, а из "первой встретившейся" после нее)
потом, вы пишете про дату выдачи, а на снимке другой столбец
формулу "выдернули" из середины или у вас таблица с 1385 строки начинается?  )
 

Павел, добрый день!

Коротко опишу задачу которая стоит:

Есть таблица 10000 строк, искомое значение повторяется до 5-10 раз.

Каждая строка это рейс у которого есть:
- начало: дата выдачи
- конец: дата возврат
- есть статус движения который по формуле МАКС при выданном но не сданном отображает  едет либо сдан в случае если есть обе даты, в случае старого рейса мы видим пустую строку.  (спасибо Вам за помощь и совет по написанию данной формулы.)


Возможно это реализовать, что бы в пустую строку к архивному рейсу подтягивалась дата выдачи в следующий рейс, возможно помощью технических полей которые будут присваивать каждому рейсу ID?

Пример с пояснением во вложении.

 
так?
 
Виктор, добрый день!

Смысл такой, но данный вариант, не совсем рабочий
Если протянуть то у нас уходит статус "Сдан" который отображается при отсутствии следующего рейса.

В конечном варианте, после протяжки формулы должен быть такой смысл в зависимости от наличия даты сдачи по последнему рейсу:

ОТ КУДАКонтейнерДата выдачиКУДАДата сдачи Движение
КНРTHKU100007331.08.2022РФ05.10.202229.10.2022
РФTHKU100007329.10.2022КНР29.01.202312.02.2023
КНРTHKU100007312.02.2023РФ22.04.2023сдан
ОТ КУДАКонтейнерДата выдачиКУДАДата сдачи Движение
КНРTHKU100007331.08.2022РФ05.10.202229.10.2022
РФTHKU100007329.10.2022КНР29.01.202312.02.2023
КНРTHKU100007312.02.2023РФ Едет
 
а так?
 
Виктор,

на первый взгляд, все отлично.
Правильно я понимаю, используя данную формулу требуется, что бы таблица была отсортирована строго по дате выдачи?
 
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="";"едет";"сдан"))
ВПР в отсортированной таблице, безусловно, пошустрее будет
 
Павел, спасибо.

Да вот крутил, отсортировать не получится, так как есть структура и очередность и с сортировкой не вяжется.
Попробую Ваш вариант завтра, спасибо. Только пока не чего не понимаю Т_Т.
Если вариант с ВПР мне был понятен по написанию и принципу, то ваша формула как заклинание.
Страницы: 1
Наверх