Добрый день УВ. Форумчане!
Нужно попробовать упростить (оптимизировать по скорости) формулы, так как строк с данными получается около 10000 и когда они все заполнены считает очень долго...
Понимаю что задача сложная, но очень прошу помочь...
Логика формул:
Столбец G:
=ЕСЛИ(A2>0;(ЕСЛИ(ЕОШИБКА(ВПР($B2;VPRZ;2;0))=ИСТИНА;A2-1;ЕСЛИ(J2=1;ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8));ВПР($B2;VPRZ;2;0))));"")
A2>0 - проверят есть ли данные в строке, так как формулы протянуты на все 10000 строк, чтоб если нет данных то зря не лопатило.
ЕСЛИ(ЕОШИБКА(ВПР($B2;VPRZ;2;0))=ИСТИНА - Проверяю есть строка с нужным кодом на листе "ЗНВП"
A2-1 - Если строк нет то, дата указанна на листе НВП -1
ЕСЛИ(J2=1;ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8)) - Дата также может содержаться в комментариях. Условие в столбце "J" проверяет есть ли в комментариях дата.
J2=1 - Если была дата
ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8) - то преобразовать текст в дату и "записать"
ВПР($B2;VPRZ;2;0) - Ну и если все предыдущее не верно и строка по коду найдена то "верни то что нашел"
Условия в столбце "H":
=ЕСЛИ(A2>0;(ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0));"")
A2>0 - проверят есть ли данные в строке, так как формулы протянуты на все 10000 строк, чтоб если нет данных то зря не лопатило.
ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0 - Ищет повторяющиеся коды в столбце "F". Код считается повторяющимся если принадлежит несколько раз одному и тому же агенту за одну дату.
Условия в столбце "I":
=ЕСЛИ(A2>0;(ЕСЛИ(СЧЁТЕСЛИ($H$1:H1;ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0))=0;1;""));"")
Нужно для поиска одинаковых кодов в столбце "H", если код уникален 1, если нет 0. условия те же, код считается повторяющимся если принадлежит несколько раз одному и тому же агенту за одну дату.
Условия в столбце "J":
=ЕСЛИ(A2>0;ЕСЛИ(ТИП(ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8)))=1;1;"");"")
Проверяет являются ли 8-мь последних символов в строке комментария датой. Если да то ставит 1.
Нужно попробовать упростить (оптимизировать по скорости) формулы, так как строк с данными получается около 10000 и когда они все заполнены считает очень долго...
Понимаю что задача сложная, но очень прошу помочь...
Логика формул:
Столбец G:
=ЕСЛИ(A2>0;(ЕСЛИ(ЕОШИБКА(ВПР($B2;VPRZ;2;0))=ИСТИНА;A2-1;ЕСЛИ(J2=1;ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8));ВПР($B2;VPRZ;2;0))));"")
A2>0 - проверят есть ли данные в строке, так как формулы протянуты на все 10000 строк, чтоб если нет данных то зря не лопатило.
ЕСЛИ(ЕОШИБКА(ВПР($B2;VPRZ;2;0))=ИСТИНА - Проверяю есть строка с нужным кодом на листе "ЗНВП"
A2-1 - Если строк нет то, дата указанна на листе НВП -1
ЕСЛИ(J2=1;ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8)) - Дата также может содержаться в комментариях. Условие в столбце "J" проверяет есть ли в комментариях дата.
J2=1 - Если была дата
ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8) - то преобразовать текст в дату и "записать"
ВПР($B2;VPRZ;2;0) - Ну и если все предыдущее не верно и строка по коду найдена то "верни то что нашел"
Условия в столбце "H":
=ЕСЛИ(A2>0;(ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0));"")
A2>0 - проверят есть ли данные в строке, так как формулы протянуты на все 10000 строк, чтоб если нет данных то зря не лопатило.
ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0 - Ищет повторяющиеся коды в столбце "F". Код считается повторяющимся если принадлежит несколько раз одному и тому же агенту за одну дату.
Условия в столбце "I":
=ЕСЛИ(A2>0;(ЕСЛИ(СЧЁТЕСЛИ($H$1:H1;ПОИСКПОЗ(E2&F2&G2;Agent&KK&Data;0))=0;1;""));"")
Нужно для поиска одинаковых кодов в столбце "H", если код уникален 1, если нет 0. условия те же, код считается повторяющимся если принадлежит несколько раз одному и тому же агенту за одну дату.
Условия в столбце "J":
=ЕСЛИ(A2>0;ЕСЛИ(ТИП(ДАТАЗНАЧ(ПРАВСИМВ(ВПР($B2;VPRZ;3;0);8)))=1;1;"");"")
Проверяет являются ли 8-мь последних символов в строке комментария датой. Если да то ставит 1.