Показать полную графическую версию : Outlook и Excel
xoxmodav
12-05-2015, 08:22
На днях столкнулся с интересной особенностью работы различных продуктов MS Office 2013 - Outlook и Excel. Пользователь, получив документы в формате XLS по почте, произвёл их предпросмотр, в результате которого всё было нормально. Но как только он открыл эти файлы на изменение, внезапно конечная сумма изменилась с 2 до 35 миллионов. :) Путём отслеживания формул, выяснилось, что подсчёт производится неверно из-за того, что в нескольких ячейках в данных вместо запятых стоят точки и Excel их автоматом отнёс к формату текстовой даты с двухзначным годом.
Кто-нибудь с таким уже сталкивался? Мне вот непонятно - почему встроенный предпросмотр Outlook интерпретировал точки как запятые и правильно подсчитал результат, а Excel занялся каким-то гаданием и в 17 раз завысил результат? Это где-то настраивается?
Попробуй отключить автоматический пересчет формул, а затем вручную замени точки на запятые.
xoxmodav
12-05-2015, 08:53
okshef, как я понял - отключить для всех книг автоматический пересчёт формул нельзя - только для каждой книги отдельно? Проблема в том, что он автоматом при открытии файла рассчитывает 35 миллионов - хотелось, чтобы при нахождении ошибочно введённых данных с точкой (которые явно не заданы форматом ячеек) не производился любой дальнейший расчёт и выдавалась ошибка, так как в многолистовой книге пользователи редко отслеживают куда и как Excel отнёс данные - разве что только вылезет такая вот явная разница в цифрах.
xoxmodav, создай надстройку с кодом
Sub ManCalc()
Application.Calculation = xlManual
End Sub
Брось в %userprofile%\AppData\Roaming\Microsoft\AddIns\
Только тут сложности - нужно будет вручную книги пересчитывать. А вот как ошибку поймать... Можно тоже какой-нибудь код придумать и поместить в надстройку...
Любопытно, а как у автора файла этот документ вычислялся? Несмотря на точки вместо запятых у него получалась верная цифра в два миллиона, и автор отсылал абсолютно верный расчет? То есть 2 млн - это заведомо правильная величина (в смысле нет такого, что Excel просто проигнорировал значения с точками, и ошибочно получил 2 млн, а правильная величина - условно - 2,5 или там 3 млн)?
Навскидку - с таким я не сталкивался, у автора также не должен Excel правильно вычислять...
Видать - чего-то я упускаю, но в любом случае - очень любопытный прецедент :).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.