Куперс

Бухучет и анализ

Почему в Excel

Одной из наиболее востребованных возможностей Excel является работа с формулами. Благодаря данной функции программа самостоятельно производит различного рода расчеты в таблицах. Но иногда случается так, что пользователь вписывает формулу в ячейку, но она не выполняет своего прямого назначения – вычисления результата. Давайте разберемся, с чем это может быть связано, и как решить данную проблему.

Устранение проблем с вычислением

Причины проблем с вычислением формул в Экселе могут быть совершенно разными. Они могут быть обусловлены, как настройками конкретной книги или даже отдельного диапазона ячеек, так и различными ошибками в синтаксисе.

Способ 1: изменение формата ячеек

Одной из самых распространенных причин, по которой Эксель вообще не считает или не правильно считает формулы, является неверно выставленный формат ячеек. Если диапазон имеет текстовый формат, то расчет выражений в нем вообще не производится, то есть, они отображаются как обычный текст. В других случаях, если формат не соответствует сути рассчитываемых данных, результат, выводимый в ячейку, может отображаться некорректно. Давайте выясним, как решить эту проблему.

  1. Для того, чтобы посмотреть, какой формат имеет конкретная ячейка или диапазон, переходим во вкладку «Главная». На ленте в блоке инструментов «Число» имеется поле отображения текущего формата. Если там указано значение «Текстовый», то формула точно вычисляться не будет.

Для того, чтобы произвести смену формата достаточно кликнуть по данному полю. Откроется список выбора форматирования, где можно выбрать значение, соответствующее сути формулы.

Но выбор типов формата через ленту не такой обширный, как через специализированное окно. Поэтому лучше применить второй вариант форматирования. Выделяем целевой диапазон. Кликаем по нему правой кнопкой мыши. В контекстном меню выбираем пункт «Формат ячеек». Можно также после выделения диапазона нажать комбинацию клавиш Ctrl+1.

  • Выделите поочередно ячейки, в которых функция не считалась, и для пересчета нажмите функциональную клавишу F2.
  • Теперь будет производиться расчет формулы в стандартном порядке с выводом результата в указанную ячейку.

    Способ 2: отключение режима «Показать формулы»

    Но возможно причина того, что вместо результатов расчета у вас отображаются выражения, состоит в том, что в программе включен режим «Показать формулы».

    1. Чтобы включить отображение итогов, переходим во вкладку «Формулы». На ленте в блоке инструментов «Зависимости формул», если кнопка «Показать формулы» активна, то кликаем по ней.

  • После этих действий в ячейках снова вместо синтаксиса функций начнет отображаться результат.
  • Способ 3: исправление ошибки в синтаксисе

    Формула также может отображаться как текст, если в её синтаксисе были допущены ошибки, например, пропущена или изменена буква. Если вы вводили её вручную, а не через Мастер функций, то такое вполне вероятно. Очень распространенной ошибкой, связанной с отображением выражения, как текста, является наличие пробела перед знаком «=».

    В таких случаях нужно внимательно пересмотреть синтаксис тех формул, которые неправильно отображаются, и внести в них соответствующие коррективы.

    Способ 4: включение пересчета формулы

    Бывает и такая ситуация, что формула вроде и отображает значение, но при изменении связанных с ней ячеек сама не меняется, то есть, результат не пересчитывается. Это означает, что у вас неправильно настроены параметры вычислений в данной книге.

      Перейдите во вкладку «Файл». Находясь в ней, следует кликнуть по пункту «Параметры».

  • Откроется окно параметров. Нужно перейти в раздел «Формулы». В блоке настроек «Параметры вычислений», который расположен в самом верху окна, если в параметре «Вычисления в книге», переключатель не установлен в позицию «Автоматически», то это и есть причина того, что результат вычислений неактуальный. Переставляем переключатель в нужную позицию. После выполнения вышеуказанных настроек для их сохранения в нижней части окна жмем на кнопку «OK».
  • Теперь все выражения в данной книге будут автоматически пересчитываться при изменении любого связанного значения.

    Способ 5: ошибка в формуле

    Если же программа все-таки производит расчет, но в результате показывает ошибку, то тут вероятна ситуация, что пользователь просто ошибся при вводе выражения. Ошибочными формулами считаются те, при расчете которых в ячейке появляются следующие значения:

    В этом случае нужно проверить, правильно ли записаны данные в ячейках, на которые ссылается выражение, нет ли в них ошибок в синтаксисе или не заложено ли в самой формуле какое-либо некорректное действие (например, деление на 0).

    Если функция сложная, с большим количеством связанных ячеек, то легче проследить вычисления с помощью специального инструмента.

      Выделяем ячейку с ошибкой. Переходим во вкладку «Формулы». На ленте в блоке инструментов «Зависимости формул» кликаем по кнопке «Вычислить формулу».

  • Открывается окно, в котором представляется полный расчет. Нажимаем на кнопку «Вычислить» и просматриваем вычисление пошагово. Ищем ошибку и устраняем её.
  • Как видим, причины того, что Эксель не считает или не правильно считает формулы, могут быть совершенно различными. Если вместо расчета у пользователя отображается сама функция, тот в этом случае, скорее всего, либо ячейка отформатирована под текст, либо включен режим просмотра выражений. Также, возможна ошибка в синтаксисе (например, наличие пробела перед знаком «=»). В случае если после изменения данных в связанных ячейках результат не обновляется, то тут нужно посмотреть, как настроено автообновление в параметрах книги. Также, нередко вместо корректного результата в ячейке отображается ошибка. Тут нужно просмотреть все значения, на которые ссылается функция. В случае обнаружения ошибки следует устранить её.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Ошибка #ЗНАЧ! в Excel означает: «Формула вводится неправильно. Или что-то не так с ячейками, на которые указывают ссылки». Эта ошибка возникает в самых разных случаях, и найти ее точную причину может быть сложно. Сведения на этой странице включают распространенные проблемы и решения ошибки. Возможно, понадобится попробовать одно или несколько решений, чтобы устранить конкретную ошибку.

    Исправление ошибок определенных функций

    • Какую функцию вы используете?
    • СРЗНАЧ
    • СЦЕПИТЬ
    • СЧЁТЕСЛИ, СЧЁТЕСЛИМН
    • ДАТАЗНАЧ
    • ДНИ
    • НАЙТИ, НАЙТИБ
    • ЕСЛИ
    • ИНДЕКС, ПОИСКПОЗ
    • ПОИСК, ПОИСКБ
    • СУММ
    • СУММЕСЛИ, СУММЕСЛИМН
    • СУММПРОИЗВ
    • ВРЕМЗНАЧ
    • ТРАНСП
    • ВПР
    • * Другая функция

    Ваша функция не отображается в этом списке? Попробуйте другие решения, перечисленные ниже.

    Проблемы с вычитанием

    Если вы раньше не работали в Excel, вероятно, вы неправильно вводите формулу вычитания. Это можно сделать двумя способами:

    Вычтите одну ссылку на ячейку из другой

    Введите два значения в двух отдельных ячейках. В третьей ячейке вычтите одну ссылку на ячейку из другой. В этом примере ячейка D2 содержит плановую сумму, а ячейка E2 — фактическую. F2 содержит формулу =D2-E2.

    Или используйте функцию СУММ с положительными и отрицательными числами

    Введите положительное значение в одной ячейке и отрицательное — в другой. В третьей ячейке используйте функцию СУММ, чтобы сложить две ячейки. В этом примере ячейка D6 содержит плановую сумму, а ячейка E6 — фактическую как негативное число. F6 содержит формулу =СУММ(D6;E6).

    Если используется Windows, ошибка #ЗНАЧ! может возникнуть даже при вводе самой обычной формулы вычитания. Проблему можно решить следующим образом.

    Для начала выполните быструю проверку. В новой книге введите 2 в ячейке A1. Введите 4 в ячейке B1. Затем введите формулу =B1-A1 в ячейке C1. Если возникнет ошибка #ЗНАЧ! перейдите к следующему шагу. Если сообщение об ошибке не появилось, попробуйте другие решения на этой странице.

    В Windows откройте панель управления «Региональные стандарты».

    Windows 10. Встроке поиска введите регион и выберите панель управления Региональные стандарты.

    Windows 8. На начальном экране введите регион, щелкните Параметры и выберите пункт Региональные стандарты.

    Windows 7. Нажмите кнопку Пуск, введите регион и выберите пункт Язык и региональные стандарты.

    На вкладке Форматы нажмите кнопку Дополнительные параметры.

    Найдите пункт Разделитель элементов списка. Если в поле разделителя элементов списка указан знак «минус», замените его на что-то другое. Например, разделителем нередко выступает запятая. Также часто используется точка с запятой. Однако для вашего конкретного региона может подходить другой разделитель элементов списка.

    Нажмите кнопку ОК.

    Откройте книгу. Если ячейка содержит ошибку #VALUE!, дважды щелкните ее для редактирования.

    Если там, где для вычитания должны быть знаки «минус», стоят запятые, замените их на знаки «минус».

    Нажмите клавишу ВВОД.

    Повторите эти действия для других ячеек, в которых возникает ошибка.

    Введите две даты в двух отдельных ячейках. В третьей ячейке вычтите одну ссылку на ячейку из другой. В этом примере ячейка D10 содержит дату начала, а ячейка E10 — дату окончания. F10 содержит формулу =E10-D10.

    Или используйте функцию РАЗНДАТ

    Введите две даты в двух отдельных ячейках. В третьей ячейке используйте функцию РАЗНДАТ, чтобы найти разницу дат. Дополнительные сведения о функции РАЗНДАТ см. в статье Вычисление разницы двух дат.

    Растяните столбец по ширине. Если значение выравнивается по правому краю — это дата. Но если оно выравнивается по левому краю, это значит, что в ячейке на самом деле не дата. Это текст. И Excel не распознает текст как дату. Ниже приведены некоторые решения, которые помогут решить эту проблему.

    Проверка наличия начальных пробелов

    Дважды щелкните дату, которая используется в формуле вычитания.

    Разместите курсор в начале и посмотрите, можно ли выбрать один или несколько пробелов. Вот как выглядит выбранный пробел в начале ячейки:

    Если в ячейке обнаружена эта проблема, перейдите к следующему шагу. Если вы не видите один или несколько пробелов, перейдите к следующему разделу и проверьте параметры даты на компьютере.

    Выделите столбец, содержащий дату, щелкнув его заголовок.

    Выберите Данные > Текст по столбцам.

    Дважды нажмите кнопку Далее.

    На шаге 3 из 3 в мастере в разделе Формат данных столбца установите переключатель дата.

    Выберите формат даты и нажмите кнопку Готово.

    Повторите эти действия для других столбцов, чтобы убедиться, что они не содержат пробелы перед датами.

    Проверка параметров даты на компьютере

    Excel полагается на систему дат вашего компьютера. Если дата в ячейке введена в другой системе дат, Excel не распознает ее как настоящую дату.

    Например, предположим, что компьютер отображает даты в формате мм.дд.гггг. Если ввести такую дату в ячейке, Excel распознает ее как дату, а вы сможете использовать ее в формуле вычитания. Однако если ввести дату в формате мм.дд.гг, Excel не распознает ее как дату. Вместо этого дата будет рассматриваться как текст.

    Существует два решения этой проблемы: Вы можете изменить систему дат, которая используется на компьютере, чтобы она соответствовала системе дат, которая нужна в Excel. Или в Excel можно создать новый столбец и использовать функцию ДАТА, чтобы создать настоящую дату на основе даты в текстовом формате. Вот как это сделать, если система дат вашего компьютера — дд.мм.гггг, а в ячейке A1 записан текст 12/31/2017.

    Создайте такую формулу: =ДАТА(ПРАВСИМВ(A1;4);ЛЕВСИМВ(A1;2);ПСТР(A1;4;2))

    Результат будет 31.12.2017.

    Чтобы использовать формат дд.мм.гг, нажмите клавиши CTRL+1 (или + 1 на Mac).

    Выберите другой языковой стандарт, в котором используется формат дд.мм.гг, например Немецкий (Германия). После применения формата результат будет 31.12.2017, причем это будет настоящая дата, а не ее текстовая запись.

    Примечание: Формула выше написана с использованием функций ДАТА, ПРАВСИМВ, ПСТР и ЛЕВСИМВ. Обратите внимание, что формула записана с учетом того, что в текстовой дате используется два символа для дней, два символа для месяцев и четыре символа для года. Возможно, вам понадобится откорректировать формулу под свою запись даты.

    Проблемы с пробелами и текстом

    Часто ошибка #ЗНАЧ! возникает, потому что формула ссылается на другие ячейки, содержащие пробелы или (что еще сложнее) скрытые пробелы. Из-за этих пробелов ячейка может выглядеть пустой, хотя на самом деле таковой не является.

    Выберите ячейки, на которые указывают ссылки

    Найдите ячейки, на которые ссылается формула, и выделите их. Во многих случаях рекомендуется удалить пробелы для всего столбца, так как можно заменить несколько пробелов одновременно. В этом примере, если щелкнуть E, выделится весь столбец.

    Найдите и замените

    На вкладке Главная щелкните Найти и выделить > Заменить.

    Удалите пробелы

    В поле Найти введите один пробел. Затем в поле Заменить удалите все, что там может быть.

    Замените одно или все вхождения

    Если вы уверены, что следует удалить все пробелы в столбце, нажмите кнопку Заменить все. Если вы хотите просмотреть и удалить пробелы по отдельности, можно сначала нажать кнопку Найти далее, а затем — Заменить, когда вы будете уверены, что пробел не нужен. После этого ошибка #ЗНАЧ! должна исчезнуть. Если нет — перейдите к следующему шагу.

    Включите фильтр

    Иногда из-за скрытых символов (а не просто пробелов) ячейка может выглядеть пустой, хотя на самом деле таковой не является. Например, это может происходить из-за одинарных кавычек в ячейке. Чтобы убрать эти символы из столбца, включите фильтр, последовательно выбрав Главная > Сортировка и фильтр > Фильтр.

    Установите фильтр

    Щелкните стрелку фильтра и снимите флажок Выделить все. Затем установите флажок Пустые.

    Установите все флажки без названия

    Установите все флажки, напротив которых ничего не указано, как на этом рисунке.

    Выделите пустые ячейки и удалите их

    Если Excel вернет пустые ячейки, выделите их. Затем нажмите клавишу DELETE. Все скрытые символы в ячейках будут удалены.

    Очистите фильтр

    Щелкните стрелку фильтра и выберите команду Удалить фильтр из. для отображения всех ячеек.

    Результат

    Если причиной появления ошибки #ЗНАЧ! были пробелы, вместо ошибки отобразится результат формулы, как показано в нашем примере. Если нет — повторите эти действия для других ячеек, на которые ссылается формула. Или попробуйте другие решения на этой странице.

    Примечание: В этом примере обратите внимание, что ячейка E4 содержит зеленый треугольник, а число выравнивается по левому краю. Это значит, что число имеет текстовый формат. Это может вызвать проблемы в дальнейшем. Если вы заметили эту проблему, рекомендуем преобразовать числа из текстового формата в числовой.

    Ошибку #ЗНАЧ! могут вызвать текст и специальные знаки в ячейке. Но иногда сложно понять, в каких именно ячейках они присутствуют. Решение: используйте функцию ЕТЕКСТ для проверки ячеек. Обратите внимание, что функция ЕТЕКСТ не устраняет ошибку, она просто находит ячейки, которые могут ее вызывать.

    Пример с ошибкой #ЗНАЧ!

    Вот пример формулы с ошибкой #ЗНАЧ! . Ошибка, скорее всего, возникает из-за ячейки E2. Здесь есть специальный знак, который выглядит как небольшой прямоугольник «00». Или, как показано на следующем рисунке, можно использовать функцию ЕТЕКСТ в отдельном столбце для поиска текста.

    Этот же пример с функцией ЕТЕКСТ

    Здесь в столбец F добавлена функция ЕТЕКСТ. Все ячейки в порядке, кроме одной со значением ИСТИНА. Это значит, что ячейка E2 содержит текст. Чтобы решить эту проблему, можно просто удалить содержимое ячейки и еще раз ввести число 1865,00. Вы также можете использовать функцию ПЕЧСИМВ, чтобы убрать символы, или функцию ЗАМЕНИТЬ, чтобы заменить специальные знаки на другие значения.

    Использовав функцию ПЕЧСИМВ или ЗАМЕНИТЬ, вы можете скопировать результат в буфер обмена, а затем выбрать Главная > Вставить > Специальная вставка > Значения. Кроме того, может потребоваться преобразовать числа из текстового формата в числовой.

    Формулам с математическими операторами (такими как + и *) не всегда удается вычислить ячейки, содержащие текст или пробелы. В таком случае попробуйте использовать вместо них функцию. Функции часто пропускают текстовые значения и определяют все значения как числовые, избегая ошибки #ЗНАЧ! . Например, вместо =A2+B2+C2 введите =СУММ(A2:C2). Или вместо =A2*B2 введите =ПРОИЗВЕД(A2,B2).

    Иногда может потребоваться изменить уже существующую формулу в Excel. Это может произойти по многим причинам, например, допущена ошибка, опечатка или необходимо изменить ссылки на ячейки. В данном уроке мы научимся изменять формулы в Excel на базе очень простого примера.

    Как изменить формулу в Excel

    В приведенном ниже примере мы ввели в формулу неправильную ссылку на ячейку, и нам необходимо исправить это.

    1. Выделите ячейку, формулу в которой необходимо изменить. В нашем примере мы выбрали ячейку B3.
    2. Щелкните по Строке формул, чтобы приступить к редактированию формулы. Вы также можете дважды щелкнуть по ячейке, чтобы посмотреть и отредактировать формулу прямо в ней.
    3. Все ячейки, на которые ссылается формула, будут выделены разноцветными границами. В нашем примере, мы изменим вторую часть формулы, чтобы ссылка вела на ячейку B2 вместо C2. Для этого выделите в формуле адрес, который необходимо отредактировать, а затем выберите мышью требуемую ячейку или измените адрес вручную.
    4. По окончании нажмите Enter на клавиатуре или воспользуйтесь командой Ввод в Cтроке формул.
    5. Формула обновится, и Вы увидите новое значение.

    Если Вы передумаете, можно нажать клавишу Esс на клавиатуре или щелкнуть команду Отмена в Строке формул, чтобы избежать случайных изменений.

    Чтобы показать все формулы в электронной таблице Excel, вы можете воспользоваться комбинацией клавиш Ctrl + ` (апостроф). При нажатии этой комбинации еще раз, все вернется к нормальному виду. Вы также можете использовать команду Показать формулы, которая находится в группе команд Зависимости формул на вкладке Формулы.

    Ячейка в Excel – это основной структурный элемент листа, куда Вы можете вводить данные и прочее содержимое. В рамках данного урока мы освоим основы работы с ячейками и их содержимым, чтобы производить вычисления, анализировать и систематизировать данные в Excel.

    Основные сведения о ячейках в Excel

    Каждый лист в Excel состоит из тысяч прямоугольников, которые называют ячейками. Ячейка – это пересечение строки и столбца. Столбцы в Excel обозначают буквами (A, B, C), в то время как строки обозначают числами (1, 2, 3).

    Исходя из строки и столбца, каждой ячейке в Excel присваивается имя, его также называют адрес. Например, C5 – это ячейка, которая находится на пересечении столбца С и строки 5. При выделении ячейки ее адрес отображается в поле Имя. Обратите внимание, что при выборе ячейки, заголовки строки и столбца, на пересечении которых она находится, становятся подсвеченными.

    В Microsoft Office Excel имеется возможность выбирать сразу несколько ячеек. Набор из двух или более ячеек принято называть диапазоном. Любой диапазон, точно также, как и ячейка, имеет свой адрес. В большинстве случаев адрес диапазона состоит из адреса левой верхней и правой нижней ячеек, разделенных двоеточием. Такой диапазон называют смежным или непрерывным. Например, диапазон, который состоит из ячеек B1, B2, B3, B4 и B5, будет записан как B1:B5.

    На рисунке ниже выделены два разных диапазона ячеек:

    • Диапазон A1:A8
    • Диапазон A1:B8

    Если столбцы на листе обозначены числами вместо букв, необходимо изменить стиль ссылок в Excel, заданный по умолчанию. Для получения подробной информации обратитесь с уроку: Что такое стиль ссылок в Excel.

    Выделение ячеек в Excel

    Чтобы ввести данные или отредактировать содержимое ячейки, сначала ее нужно выделить.

    1. Щелкните по ячейке, чтобы выделить ее.
    2. Выбранная ячейка будет обозначена границами, а заголовки столбца и строки станут подсвеченными. Ячейка останется выделенной, пока Вы не выберите любую другую ячейку.

    Вы также можете выделять ячейки при помощи клавиш со стрелками на клавиатуре (клавиши управления курсором).

    Выделение диапазона ячеек в Excel

    При работе с Excel часто возникает необходимость выделить большую группу ячеек или диапазон.

    1. Нажмите на первую ячейку диапазона и, не отпуская кнопку, переместите мышь пока все прилегающие ячейки, которые вы хотите выбрать, не будут выделены.
    2. Отпустите кнопку мыши, требуемый диапазон будет выбран. Ячейки останутся выделенными, пока вы не выберите любую другую ячейку.

    Урок подготовлен для Вас командой сайта office-guru.ru

    Автор/переводчик: Антон Андронов
    Правила перепечатки
    Еще больше уроков по Microsoft Excel

    Оцените качество статьи. Нам важно ваше мнение:

    Не один раз сталкивался с ситуацией, когда открываешь «экселевский» файл, присланный по почте, ставишь в ячейках новые числа (цифры), а ячейки с формулами остаются неизменными – не считаются (не складываются, не делятся, не перемножаются). Это явление довольно распространенное, и обусловлено тем, что в программе Excel отключен автоматический расчет формул в ячейках.

    Отключать автоматический расчет удобно если у Вас слабый компьютер и приходится работать с большими таблицами по нескольку сотен тысяч строк. Если отключены расчеты машина (компьютер) не зависает и не тормозит.

    Как же посчитать значения формул при отключенном автоматическом расчете?

    Все довольно просто. Необходимо:

    • Зайти во вкладку «формулы»;
    • Группа элементов «Вычисление»;
    • Кнопка «Произвести вычисления»

    Как включить автоматические выключения формул в Excel?

    Включить вычисления можно двумя способами:

    Первый способ – все в той же вкладке «формулы» в группе элементов «вычисления» выбрать кнопку «Параметры вычислений». Появится выпадающий список из трех позиций:

    1. Автоматически – автоматическое вычисление;
    2. Автоматически, кроме данных таблиц;
    3. Вручную – ручная активация расчетов.

    Второй способ.

    • Открыть меню «Файл» => «Параметры»;
    • В появившемся окне перейти во вкладку «Формулы»;
    • Поставить флажок напротив пункта «Автоматически» в меню «Вычисления в книге»;
    • Нажать кнопку «Ок».

    Как видите все несложно.

    Удачи в изучении Excel и успехов в работе.

    Хитрости » 18 Март 2018 Дмитрий 60321 просмотров

    Часто при вычислении разницы двух ячеек в Excel можно видеть, что она не равна нулю, хотя числа одинаковые. Например, в ячейках A1 и B1 записано одно и тоже число 10,7, а в C1 мы вычитаем из одного другое:
    И самое странное то, что в итоге мы не получаем 0! Почему?

    Причина очевидная — формат ячеек
    Сначала самый очевидный ответ: если идет сравнение значений двух ячеек, то необходимо убедиться, что числа там действительно равны и не округлены форматом ячеек. Например, если взять те же числа из примера выше, то если выделить их -правая кнопка мыши -Формат ячеек(Format cells) -вкладка Число(Number) -выбираем формат Числовой и выставляем число десятичных разрядов равным 7:
    Теперь все становится очевидным — числа отличаются и были просто округлены форматом ячеек. И естественно не могут быть равны. В данном случае оптимальным будет понять почему числа именно такие, а уже потом принимать решение. И если уверены, что числа надо реально округлять до десятых долей — то можно применить в формуле функцию ОКРУГЛ:
    =ОКРУГЛ(B1;1)-ОКРУГЛ(A1;1)=0
    =ROUND(B1,1)-ROUND(A1,1)=0
    Так же есть более кардинальный метод:

    Это запишет все числа на всех листах книги ровно так, как они отображены форматом ячеек. Данное действие лучше выполнять на копии книги, т.к. оно приводит все числовые данные во всех листах книги к тому виду, как они отображены на экране. Т.е. если само число содержит 5 десятичных разрядов, а форматом ячеек задан только 1 — то после применения данной опции число будет округлено до 1 знака после запятой. При этом отменить данную операцию нельзя, если только не закрыть книгу без сохранения.

    Причина программная
    Но нередко в Excel можно наблюдать более интересный «феномен»: разница двух дробных чисел, полученная формулой не равна точно такому же числу, записанному напрямую в ячейку. Для примера, запишите в ячейку такую формулу:
    =10,8-10,7=0,1
    по виду результатом должен быть ответ ИСТИНА(TRUE). Но по факту будет ЛОЖЬ(FALSE). И этот пример не единственный — такое поведение Excel далеко не редкость при вычислениях. Его можно встретить и в менее явной форме — когда вычисления основаны на значении других ячеек, которые тоже в свою очередь вычисляются формулами и т.д. Но причина во всех случаях одна.

    Почему с виду одинаковые числа не равны?
    Сначала разберемся почему Excel считает приведенное выше выражение ложным. Ведь если вычесть из 10,8 число 10,7 — в любом случае получится 0,1. Значит где-то по пути что-то пошло не так. Запишем в отдельную ячейку левую часть выражения: =10,8-10,7. В ячейке появится 0,1. А теперь выделяем эту ячейку -правая кнопка мыши -Формат ячеек(Format cells) -вкладка Число(Number) -выбираем формат Числовой и выставляем число десятичных разрядов равным 15:
    и теперь видно, что на самом деле в ячейке не ровно 0,1, а 0,100000000000001. Т.е. в 15 значащем разряде у нас появился «хвостик» в виде лишней единицы.
    А теперь будем разбираться откуда этот «хвостик» появился, ведь и логически и математически его там быть не должно. Рассказать я постараюсь очень кратко и без лишних заумностей — их на эту тему при желании можно найти в интернете немало.
    Все дело в том, что в те далекие времена(это примерно 1970-е годы), когда ПК был еще чем-то вроде экзотики, не было единого стандарта работы с числами с плавающей запятой(дробных, если по простому). Зачем вообще этот стандарт? Затем, что компьютерные программы видят числа по своему, а дробные так вообще со статусом «все сложно». И при этом одно и то же дробное число можно представить по-разному и обрабатывать операции с ним тоже. Поэтому в те времена одна и та же программа, при работе с числами, могла выдать различный результат на разных ПК. Учесть все возможные подводные камни каждого ПК задача не из простых, поэтому в один прекрасный момент началась разработка единого стандарта для работы с числами с плавающей запятой. Опуская различные подробности, нюансы и интересности самой истории скажу лишь, что в итоге все это вылилось в стандарт IEEE754. А в соответствии с его спецификацией в десятичном представлении любого числа допускаются ошибки в 15-м значащем разряде. Что и приводит к неизбежным ошибкам в вычислениях. Чаще всего это можно наблюдать именно в операциях вычитания, т.к. именно вычитание близких между собой чисел ведет к потере значимых разрядов.
    Подробнее про саму спецификацию так же можно узнать в статье Microsoft: Результаты арифметических операций с плавающей точкой в Excel могут быть неточными
    Вот это как раз и является виной подобного поведения Excel. Хотя справедливости ради надо отметить, что не только Excel, а всех программ, основанных на данном стандарте. Конечно, напрашивается логичный вопрос: а зачем же приняли такой глючный стандарт? Я бы сказал, что был выбран компромисс между производительностью и функциональностью. Хотя возможно, были и другие причины.

    Куда важнее другое: как с этим бороться?
    По сути никак, т.к. это программная «ошибка». И в данном случае нет иного выхода, как использовать всякие заплатки вроде ОКРУГЛ и ей подобных функций. При этом ОКРУГЛ здесь надо применять не как в было продемонстрировано в самом начале, а чуть иначе:
    =ОКРУГЛ(10,8-10,7;1)=0,1
    =ROUND(10.8-10.7,1)=0,1
    т.е. в ОКРУГЛ мы должны поместить само «глючное» выражение, а не каждый его аргумент отдельно. Если поместить каждый аргумент — то эффекта это не даст, ведь проблема не в самом числе, а в том, как его видит программа. И в данном случае 10,8 и 10,7 уже округлены до одного разряда и понятно, что округление отдельно каждого числа не даст вообще никакого эффекта. Можно, правда, выкрутиться и иначе. Умножить каждое число на некую величину(скажем на 1000, чтобы 100% убрать знаки после запятой) и после этого производить вычитание и сравнение:
    =((10,8*1000)-(10,7*1000))/1000=0,1

    Хочется верить, что хоть когда-нибудь описанную особенность стандарта IEEE754 Microsoft сможет победить или хотя бы сделать заплатку, которая будет производить простые вычисления не хуже 50-рублевого калькулятора 🙂 Статья помогла? Поделись ссылкой с друзьями! Видеоуроки

    Поиск по меткам

    Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки Надстройки Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Наверх