Нет ребята, дело не в этом - Вы обратите внимание: если в В19 записать =LOOKUP(A20;$E$1:$E$5952), то формула работает, а если =LOOKUP(A20;$E$1:$E$5953), тогда нет. В то же время эта
"критическая" ячейка 5953 ничем не примечательна, то что там другие (ненулевые) цифры начинаются, это я сам ставил для пробы.
Кроме того, в предыдущей ячейке формула работает, каково бы не было это число.
Вот над этим бются теперь около 5 человек
, вчера даже в skype разбирали.
Gerdewski,
Цитата:
должны быть отсортированы по возрастанию.
А у тебя с е5767 до конца стоят нули.
|
я почему говорю что сортировка непричем - список же один для всех ячеек - и желтых, и белых, по той-же причине нет смисла менять диапазон. Более того - я стер большинство ячеек в третьем списке, и ничего не менялось, а стирание некоторых ячеек какраз и влияет, но непонятно почему.
Нули в конце - это значения формул, которые примут какое-то значение при добавлении новых абонентов, поэтому их стирать нелзя. Вообще этот список получается с помощю сводной таблицы, это я их заменил значениями для простоты.
Greyman
Цитата:
Однако обрати внимание на строку №45. Такого значения в массиве поиска нет и твой вариант будет выдавать ближайшее, которое найдет. Т. е. в твоем варианте формулы, если где-то допущена ошибка в ФИО (я про начало темы), то ты этого так и не заметишь
|
Greyman, правильно - так должно быть, но ведь на самом деле пишет не ближайшую, а то, что написано в ячейку с "критическим" адресом.
Цитата:
если где-то допущена ошибка в ФИО (я про начало темы), то ты этого так и не заметишь.
|
Это тоже правильно, а заметят это формулы в другом месте, потому и исползуется Lookup. Если б формула при ненахождении выдавала ошибку (как это сделал бы VLOOKUP - ВПР, т е вертикальный просмотр, который используется, когда задан не один столбец, а арея из нескольких, и надо решать вертикально просмотреть эту ареу (или арею))), т е по столбцам, или горизонтально. А если только один столбец или одна строка, там ведь и решать нечего) , его было бы труднее обработать, чем сравнить двух ячеек. Вообще эти списки - часть большой довольно сложной таблицы, а меня типа консультанта пригласили из-за некоторых проблем. Проблемы те уже решены, а этот вопрос так и остаетса для меня, хотя там все уже исправил путем подгона диапазона.
Вообще мне не нравится когда такие вещи делаются в эксел - он хорош для обработки уже законченной таблицы или списка, а для "живых", куда постаянно добавляются новые данные, могут создаваться проблемы, но эта таблица уже сделана, с репортами и разными наворотками, и сделать заново все это - я лучше в отпуск
Pliomera
Твой "скрипт" работает действително гарантированно, но действительно жутко медленно. Я циклы поменял местами, но от этого он быстрее не стал. Нелзя его как-то ускорить? и на что там так много времени уходит - выборка ячейки, сравнение - что-нибудь известно о том, какой процесс более прожорлив?
Или может что-нибудь типа WHILE не отыщется в VB?
И плз большая просьба - как сделать так, чтоб при обнаружении соответствии (и печати ячейки) iCount сразу наращивался, а не бежал зря до конца списка (одинаковых будем считать что не будет), ато ничего умнее кроме как ставить метку в голову старого ассемблерщика не приходит