Все не так плохо, как хотелось бы... 。。。 //未来、悲しみが終わる場所。
Вчера получил интересный опыт на работе. По задаче понадобилось немного заняться программированием на Excel, обработать выгрузку, в общем всё шло как обычно до определенной формулы. Внезапно выяснилось, что формула не работает на некоторых ячейках. А на некоторых — работает! Почему это? Пошел разбираться. После нескольких опытов выяснилось, что проблема в формуле ПОИСКПОЗ, который на некоторых строчках выдавал #Н/Д. Вопрос почему? Стал смотреть. Сначала нашел все проблемые строчки, вынес в отдельный столбик. Задал поиск тупо по первым же словам в ячейке у каждой — и не ищет! Моя первая гипотеза была, что формат ячейки не тот, стоит "Общий", вместо "Текстовый". Но проблема в том, что как раз уже стоял "Текстовый". Думаем дальше. Я начал тупо перепечатывать значения ячейки в нижнюю ячейку, и знаете что? На это ПОИСКПОЗ реагировал прекрасно! Так в чем же проблема? Я продолжил эксперимент и через некоторое время я смог поймать момент, когда формула перестала реагировать и на мою перепечатываемую ячейку! Я прямо увидел как значения резко сменились на #Н/Д. Но подождите, это произошло когда я напечатал новое слово, как оно может реагировать на определенное слово? Хорошо, а если я его удалю? Удаляю — формула тут же начинает работать. Сначала мне показалось, что это мистика и система распознаёт определенные слова, из-за которых формула ломается, но реальность оказалась куда проще и без мистики. Ввожу просто тупо случайную последовательность букв и цифр. Так же перестаёт работать. Удаляю — работает. Секундочку, но всё, что я сделал это изменил количество символов в строке! Замеряю ДЛСТР количество символов в строках: у проблемой ячейки 340, у работающей 254. Число наводит на мысль о 255 и... В итоге через пару проб я выяснил, что ПОИСКПОЗ отказывается работать, если в ячейке больше 255 символов. Вот так всё просто оказалось. Как только я разбил проблемную ячейку на две с числом символов меньше 255, так сразу же поиск заработал. Но как я мог заранее знать про такую особенность конкретного оператора? Никак, пока не столкнулся не узнал. Зато теперь вот обогатил свой опыт дебаггинга на Excel.
じゃ, ね!
じゃ, ね!