Страницы: 1
RSS
Связать дату с готовой выборкой
 
День добрый!

Есть таблица с данными- лист "п-у". Столбец "Дата", "№" с 8-ми значными числами, "Имя" с произвольными именами, связанными с числами в "№". Числа в столбце "№" не уникальны, в разные дни повторяются и имена тоже не привязаны к этим номерам, одному и тому же номеру могут соответствовать в разные даты различные имена. В файле есть Лист1, где в столбце А вставляется блок из 30-50 номеров, которые однозначно есть в столбце "№" листа "п-у". Также в ячейке А1 в Листе1 проставлена определенная дата.
Задача: создать формулу на Листе1 , которая:
1. сверит номер в столбце А с номером в столбце "№" листа "п-у", нет ли ошибки, и свериться только с теми номерами, которые представлены за последние 3 дня до контрольной даты, указанной на Листе1 в ячейке А1.
2. на Листе1 отдельным столбцом создать формулу, которая будет возвращать Имя с листа "п-у", соответствующее именно этому номеру и соответствующей дате. Если не увязать с датой, то формула будет возвращать имя за предыдущие даты.

Готовая формула, представленная Андреем VG (за что еще раз приношу ему благодарность), сверяет номера в блоке со всей базой листа "п-у" (довольно-таки  большой, строк тысяч 15, и ежедневно увеличивается). А увязать по дате я не смог.

P.S. Если сумбурно объяснил,-извините
 
Александр Чекирда, чет не понял что нужно в итоге...а вдруг
Код
=ПРОСМОТР(2;1/(($A3*1='п-у'!$B$1:$B$69)*(($A$1-3>='п-у'!$A$1:$A$69)*($A$1>'п-у'!$A$1:$A$69)));'п-у'!$C$1:$C$69)
Изменено: Mershik - 24.02.2020 13:54:46
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо.
Mershik, начиная с 8-й строки дает #Н/Д. Причина в формате?
 
Александр Чекирда, причина что нет
Цитата
Александр Чекирда написал:
соответствующей дате
т.е. период между датой указанной вами и на три дня меньше чем она...есл данные есть они попадают есл нет ошибка( так как данных нет). можете завернуть формулу в если ошибка
Код
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/(($A3*1='п-у'!$B$1:$B$69)*(($A$1-3>='п-у'!$A$1:$A$69)*($A$1>'п-у'!$C$1:$C$69)));'п-у'!$C$1:$C$69);ПРОСМОТР(2;1/(($A3*1='п-у'!$B$1:$B$69));'п-у'!$C$1:$C$69))
Изменено: Mershik - 24.02.2020 14:41:44
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо, повоюю с ПРОСМОТР, ни разу ею не пользовался.
 
С функциями дружить надо, а не воевать :)
 
Mershik, пока есть нестыковка.
Номер
94725082
за 1 февраля, он не должен был попасть в результатирующий список.
 
vikttur,  :oops:
...чтобы подружиться, надо узнать друг друга получше, посидеть, поговорить. Выпить... Спросить, как дети, узнать, что любит, что беспокоит, чем занимается в свободное время. Не так все это и быстро. :)  
Изменено: Александр Чекирда - 24.02.2020 15:44:03
 
Александр Чекирда, тогда первая формула  и все !
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, Номер 94725082 закреплен на листе "п-у" за 1 фев., т.е. не попадает в интервал "7-02" - 3. Не сможете ли подкорректировать Вашу формулу?
Другими словами, номера должны сверяться с базовыми и по номеру и по дате. И только тогда выдавать имя.
 
Цитата
Александр Чекирда написал:и свериться только с теми номерами, которые представлены за последние 3 дня до контрольной даты, указанной на Листе1 в ячейке А1.

Если не увязать с датой, то формула будет возвращать имя за предыдущие даты.
к чему это тогда?? не пойму вообще ....
Изменено: Mershik - 24.02.2020 19:39:20
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
к чему это тогда??
Уточните, пжл, вопрос. Не знаю, где именно я плохо объяснил?
 
Александр Чекирда, ну что вас не устраивает в решении предложенном мною?
оно выполняет Ваши желания  1
Цитата
Александр Чекирда написал:
свериться только с теми номерами, которые представлены за последние 3 дня до контрольной даты
оно так же и сверяет (без учета контрольной даты)
так же  2 условие
Цитата
Александр Чекирда написал:
соответствующее именно этому номеру и соответствующей дате
противоречит так как ранее до даты, а здесь соответствует....
В итоге что же должно быть?
Изменено: Mershik - 24.02.2020 19:11:35
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, извините, что отнимаю столько времени. Прикрепляю файл. Создал еще 1 дополн. "Лист2" с расширенным фильтром. С его помощью отфильтровал номера, которые в столб. А на Листе1 и имеющие дату после 3 фев. (окрашены оранжевым). так и должно быть после применения формулы. Но существующая формула не отсеяла номер 94725082, хотя этот номер не входит в период 4 фев -- 7 фев.
 
Александр Чекирда, а те которые не попали в период дат? что с ними?
Код
=ПРОСМОТР(2;1/(($B3*1='п-у'!$B$1:$B$69)*(($B$1-3<='п-у'!$A$1:$A$69)*($B$1>'п-у'!$A$1:$A$69)));'п-у'!$C$1:$C$69)
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, если есть время, не откроете ссылку https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=125152 ?
Может, начальные мои затруднения лучше объяснят ситуацию.
 
Александр Чекирда, а что не так сейчас?
вы можете просто в файле показать конечный результат того что должно получиться без формул(руками вбить)

а если данные не точно совпадают то Вам там дали ссылку не точный поиск
Изменено: Mershik - 24.02.2020 19:59:57
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, Специально изменил имена и номера под "боевой режим".
 
Азбука пишет, что использование ПРОСМОТР требует сортировки диапазона. Не подходит это, хлопотно...
 
Цитата
Александр Чекирда написал:  использование ПРОСМОТР требует сортировки диапазона.
Азбука говорит правильно. Но это для стандартного написания и правило можно перехитрить.
 
Цитата
vikttur написал:
перехитрить
Каким образом?
 
Например (без привязки к примерам в теме)
=ПРОСМОТР(2;1/A2:A99=225;B2:B99)
 
Спасибо.
Страницы: 1
Наверх