Ошибка ЗНАЧ в Excel
Эта ошибка возникает в самых разнообразных случаях, и означает что что-то не так с данными или ячейками, из которых используются данные. Иногда достаточно сложно разобраться, почему возникает ошибка, однако основные причины возникновения ошибки #ЗНАЧ можно выделить.
Причина № 1 — Формула ссылается на другой файл
Бывают ситуации, когда в одном файле у нас представлена база данных (файл № 1), а в другой файл (файл № 2) нужно подтянуть данные из этой базы. И есть ряд формул, которые будут выдавать ошибку, если файл № 1 будет закрыт в момент вычислений. Это особенности работы Excel, их нужно просто запомнить и учитывать.
Функции, которые будут выдавать ошибку ЗНАЧ при ссылке на другой файл, следующие:
-
-
- СУММЕСЛИ()
- СУММЕСЛИМН()
- СЧЁТЕСЛИ()
- СЧЁТЕСЛИМН()
- СЧИТАТЬПУСТОТЫ()
- СМЕЩ()
- ДВССЫЛ()
-
Рассмотрим на примере функции СУММЕСЛИ. Ситуация: оба файла открыты.
Ситуация: файл № 1 (с базой) закрыт.
Что делать с ошибкой ЗНАЧ в таком случае:
-
-
- вариант 1: исключить ссылки на внешние файлы, перенеся базу в тот же файл, где происходят вычисления.
- вариант 2: Совместное использование формул СУММ() и ЕСЛИ() в массиве.
- вариант 3: Всегда открывать файл с базой, на который ссылается файл итогов. Т.е. открывать оба файла одновременно, и тогда ошибка ЗНАЧ не будет возникать.
- вариант 4: Использовать конструкцию ЕСЛИОШИБКА (о ней рассказано ниже в статье), которая будет предлагать открыть файл с базой.
-
Причина № 2 — Вычитание или сложение ячеек с датами
В этом случае ошибка ЗНАЧ означает, что одна из ячеек с датами имеет другой формат (отличный от формата даты). Например, имеются лишние пробелы.
Что делать: проверить ячейки и убрать лишние пробелы. Это можно сделать, например, выделив ячейки, участвующие в формуле, и заменить (Ctrl + H) пробел на пустоту.
Причина № 3 — Лишние пробелы в числах
Такая ситуация часто возникает, когда используются выгрузки из различных учетных систем. В выгрузках, например, из 1C, часто присутствуют пробелы в числах, и в этом случае excel воспринимает число как текст. И если производить вычисления с такими ячейками, то будет возникать ошибка ЗНАЧ.
Как исправить: заменить пробелы на пустоту, как в предыдущем варианте.
Используйте ЕСЛИМН вместо вложенных ЕСЛИ
Если вы используете Excel 2016, у Office 365 есть новая функция, которую вы можете использовать вместо вложенных ЕСЛИ: функция ЕСЛИМН (IFS). Функция ЕСЛИМН (IFS) предоставляет специальную структуру для оценки нескольких условий без вложенности
Перепишем формулу из примера про оценки с использованием ЕСЛИМН:
Обратите внимание, в формуле всего одна пара скобок!
Что происходит, когда вы открываете электронную таблицу, которая использует функцию ЕСЛИМН (IFS) в более старой версии Excel? В Excel 2013 и 2010 (и я верю в Excel 2007, но не могу проверить) вы увидите «_xlfn» в ячейке. Ранее вычисленное значение все еще будет там, но если формула пересчитается, вы увидите ошибку #ИМЯ?.
Математическая логика: основные понятия
Основателем формальной логики считают Аристотеля. В XVII в. Г. Лейбниц предложил вводить символы для определения высказываний. Д. Буль закрепил усвоенные знания и впервые обозначил предложения символами.
Схематически «ИСТИНА» замещается 1, а «ЛОЖЬ» – 0.
Под высказыванием понимают любое повествовательное предложение, дающее какую-либо информацию и способное принимать значение истинности или ложности. В алгебре логики отвлекаются от смысловой нагрузки предложений и рассматривают только логические значения.
Под отрицанием понимают новое выражение, принимающее значение истины в случае его ложности и наоборот.
Конъюнкцией двух переменных называют новое предложение, принимающее значение истинности в случае одновременного обозначения «1» и ложности в остальных ситуациях.
Под дизъюнкцией двух высказываний понимают новое выражение, принимающее значение «ЛОЖЬ» только при одновременном наличии «0» и «ИСТИНА» в остальных вариациях.
Импликацией двух переменных называют новое предложение, в котором:
- если посылка истинна, а следствие ложно, то выражение равняется «0»;
- высказывание равняется «1» в остальных случаях.
Под эквиваленцией двух переменных понимают новое высказывание, принимающее значение истинности только в случае одинаковости элементов. Иначе предложение равняется «0».
Логические значения выражений принято оформлять в табличном виде. Есть и другое название у такого рода информации. Говорят, для высказывания нужно построить таблицу истинности. В ней указываются первоначальные значения для всех переменных, а потом вычисляется результат всего выражения.
Какие существуют ошибки в Excel и как их исправлять — Трюки и приемы в Microsoft Excel
Когда вы вводите или редактируете формулу, а также когда меняется одно из входных значений функции, Excel может показать одну из ошибок вместо значения формулы. В программе предусмотрено семь типов ошибок. Давайте рассмотрим их описание и способы устранения.
- #ДЕЛ/О! — данная ошибка практически всегда означает, что формула в ячейке пытается разделить какое-то значение на ноль. Чаще всего это происходит из-за того, что в другой ячейке, ссылающейся на данную, находится нулевое значение или значение отсутствует. Вам необходимо проверить все связанные ячейки на предмет наличия таких значений. Также данная ошибка может возникать, когда вы вводите неправильные значения в некоторые функции, например в ОСТАТ(), когда второй аргумент равен 0. Также ошибка деления на ноль может возникать, если вы оставляете пустые ячейки для ввода данных, а какая-либо формула требует некоторые данные. При этом будет выведена ошибка #ДЕЛ/0!, что может смутить конечного пользователя. Для этих случаев вы можете использовать функцию ЕСЛИ() для проверки, например =ЕСЛИ(А1=0;0;В1/А1). В этом примере функция вернет 0 вместо ошибки, если в ячейке А1 находится нулевое или пустое значение.
- #Н/Д — данная ошибка расшифровывается как недоступно, и это означает, что значение недоступно функции или формуле. Вы можете увидеть такую ошибку, если введете неподходящее значение в функцию. Для исправления проверьте прежде всего входные ячейки на предмет ошибок, особенно если в них тоже появляется данная ошибка.
- #ИМЯ? — данная ошибка возникает, когда вы неправильно указываете имя в формуле или ошибочно задаете имя самой формулы. Для исправления проверьте еще раз все имена и названия в формуле.
- #ПУСТО! — данная ошибка связана с диапазонами в формуле. Чаще всего она возникает, когда в формуле указывается два непересекающихся диапазона, например =СУММ(С4:С6;А1:С1).
- #ЧИСЛО! — ошибка возникает, когда в формуле присутствуют некорректные числовые значения, выходящие за границы допустимого диапазона.
- #ССЫЛКА! — ошибка возникает, когда были удалены ячейки, на которые ссылается данная формула.
- #ЗНАЧ! — в данном случае речь идет об использовании неправильного типа аргумента для функции.
Если при вводе формулы вы случайно неправильно расставили скобки, Excel выведет на экран предупреждающее сообщение — см. рис. 1. В этом сообщении вы увидите предположение Excel о том, как их необходимо расставить. В случае если вы подтверждаете такую расстановку, нажмите Да. Но зачастую требуется собственное вмешательство. Для этот нажмите Нет и исправьте скобки самостоятельно.
Обработка ошибок с помощью функции ЕОШИБКА()
Перехватить любые ошибки и обработать их можно с помощью функции ЕОШИБКА(). Данная функция возвращает истину или ложь в зависимости от того, появляется ли ошибка при вычислении ее аргумента. Общая формула для перехвата выглядит так: =ЕСЛИ(ЕОШИБКА(выражение);ошибка; выражение).
Рис. 1. Предупреждающее сообщение о неправильно расставленных скобках
Функция если вернет ошибку (например, сообщение), если при расчете появляется ошибка. Например, рассмотрим следующую формулу: =ЕСЛИ(ЕОШИБКА(А1/А2);»»; А1/А2). При возникновении ошибки (деление на 0) формула возвращает пустую строку. Если же ошибки не возникает, возвращается само выражение А1/А2.
Существует другая, более удобная функция ЕСЛИОШИБКА(), которая совмещает две предыдущие функции ЕСЛИ() и ЕОШИБКА(): ЕСЛИОШИБКА(значение;значение при ошибке), где: значение — выражение для расчета, значение при ошибке — возвращаемый результат в случае ошибки. Для нашего примера это будет выглядеть так: =ЕСЛИОШИБКА(А1/А2;»»).
ЕСЛИ ОШИБКА формула в Excel
Чтобы вернуть пользовательское сообщение или выполнить другой расчет при возникновении ошибки, используйте ЕОШИБКА вместе с функцией ЕСЛИ. Общая формула выглядит следующим образом:
ЕСЛИ(ЕОШИБКА(формула(…), text_or_calculation_if_error, формула())
В переводе на человеческий язык это гласит: если основная формула приводит к ошибке, вывести указанный текст или запустить другой расчет, в противном случае вернуть нормальный результат формулы.
На изображении ниже деление суммы на количество приводит к нескольким ошибкам в Цена столбец:
Чтобы заменить все различные коды ошибок настраиваемым текстом, вы можете использовать следующую формулу ЕСЛИ ОШИБКА:
=ЕСЛИ(ЕОШИБКА(A2/B2), «Неизвестно», A2/B2)
В Excel 2007 и более поздних версиях того же результата можно добиться с помощью встроенной функции ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(A2/B2, «Неизвестно»)
Следует отметить, что формула ЕСЛИОШИБКА работает немного быстрее, поскольку вычисление A2/B2 выполняется только один раз. В то время как ЕСЛИ ОШИБКА вычисляет его дважды — сначала, чтобы увидеть, не генерирует ли он ошибку, а затем еще раз, если тест ЛОЖЬ.
Как работает функция?
Программа изучает заданный пользователем критерий, после переходит в выделенную ячейку и отображает полученное значение.
С одним условием
Рассмотрим функцию на простом примере:
После проверки ячейки А1 оператор сравнивает ее с числом 70 (100). Это заданное условие. Когда значение больше 50 (130), появляется правдивая надпись «больше 50». Нет – значит, «меньше или равно 130».
Пример посложнее: необходимо из таблицы с баллами определить, кто из студентов сдал зачет, кто – идет на пересдачу. Ориентир – 75 баллов (76 и выше – зачет, 75 и ниже – пересдача).
В первой ячейке с результатом в правом углу есть маркер заполнения – протянуть полученное значение вниз для заполнения всех ячеек.
С несколькими условиями
Обычно в Excel редко решаются задачи с одним условием, и необходимо учитывать несколько вариантов перед принятием решения. В этом случае операторы ЕСЛИ вкладываются друг в друга.
Синтаксис:
=ЕСЛИ(заданный_критерий;значение_если_результат_соответствует_критерию;ЕСЛИ(заданный_критерий;значение_если_результат_соответствует_критерию;значение_если_результат_не_соответствует_критерию))
Здесь проверяется два параметра. Когда первое условие верно, оператор возвращает первый аргумент – ИСТИНУ. Неверно – переходит к проверке второго критерия.
Нужно выяснить, кто из студентов получил «отлично», «хорошо» и «удовлетворительно», учитывая их баллы:
- В выделенную ячейку вписать формулу =ЕСЛИ(B2>90;»Отлично»;ЕСЛИ(B2>75;»Хорошо»;»Удовлетворительно»)) и нажать на кнопку «Enter». Сначала оператор проверит условие B2>90. ИСТИНА – отобразится «отлично», а остальные критерии не обработаются. ЛОЖЬ – проверит следующее условие (B2>75). Если оно будет правдиво, то отобразится «хорошо», а ложно – «удовлетворительно».
- Скопировать формулу в оставшиеся ячейки.
Также формула может иметь вид =ЕСЛИ(B2>90;»Отлично»;ЕСЛИ(B2>75;»Хорошо»;ЕСЛИ(B2>45;»Удовлитворительно»))), где каждый критерий вынесен отдельно.
Можно делать любое количество вложений ЕСЛИ (до 64-х), но рекомендуется использовать до 5-ти, иначе формула будет слишком громоздкой и разобраться в ней будет уже очень сложно.
С несколькими условиями в математических выражениях
Логика такая же, как и в формуле выше, только нужно произвести математическое действие внутри оператора ЕСЛИ.
Есть таблица со стоимостью за единицу продукта, которая меняется в зависимости от его количества.
Цель – вычесть стоимость для любого количества продуктов, введенного в указанную ячейку. Количество – ячейка B8.
Формула для решения данной задачи принимает вид =B8*ЕСЛИ(B8>=101;12;ЕСЛИ(B8>=50;14;ЕСЛИ(B8>=20;16;ЕСЛИ(B8>=11; 18;ЕСЛИ(B8>=1;22;»»))))) или =B8*ЕСЛИ(B8>=101;B6;ЕСЛИ(B8>=50;B5;ЕСЛИ(B8>=20;B4;ЕСЛИ(B8>=11;B3;ЕСЛИ(B8>=1;B2;»»))))).
Было проверено несколько критериев и выполнились различные вычисления в зависимости от того, в какой диапазон суммы входит указанное количество продуктов.
С операторами «и», «или», «не»
Оператор «и» используется для проверки нескольких правдивых или нескольких ложных критериев, «или» – одно условие должно иметь верное или неверное значение, «не» – для убеждения, что данные не соответствуют одному условию.
Синтаксис выглядит так:
=ЕСЛИ(И(один_критерий;второй_критрий);значение_если_результат_соответствует_критерию;значение_если_результат_соответствует_критерию)
=ЕСЛИ(ИЛИ(один_критерий;второй_критрий);значение_если_результат_соответствует_критерию;значение_если_результат_соответствует_критерию)
=ЕСЛИ(НЕ(критерий);значение_если_результат_соответствует_критерию;значение_если_результат_соответствует_критерию)
Операторы «и», «или» теоретически могут проверить до 255 отдельных критериев, но такое количество сложно создавать, тестировать и изменять, поэтому лучше использовать до 5-ти. А «нет» – только один критерий.
Для проверки ячейки на наличие символов
Иногда нужно проверить ячейку, пустая она или нет. Требуется это для того, чтобы формула не отображала результат при отсутствии входного значения.
Пустые двойные кавычки в формуле означают «ничего». То есть: если в A2 нет символов, программа выводит текст «пустая», в противном случае будет «не пустая».
Для проверки ячейки ЕСЛИ часто используется в одной формуле c функцией ЕПУСТО (вместо пустых двойных кавычек).
Когда один из аргументов не вписан в формулу
Второй аргумент можно не вводить, когда интересующий критерий не выполняется, но тогда результат будет отображаться некрасиво.
Как вариант – можно вставить в ячейку пустое значение в виде двойных кавычек.
И все-таки лучше использовать оба аргумента.
Excel IFERROR функция
При применении формул на листе Excel будут сгенерированы некоторые значения ошибок, для устранения ошибок в Excel предусмотрена полезная функция ЕСЛИОШИБКА. Функция ЕСЛИОШИБКА используется для возврата настраиваемого результата, когда формула оценивает ошибку, и возврата нормального результата, если ошибки не возникает.
Синтаксис функции ЕСЛИОШИБКА в Excel:
=IFERROR(value, value_if_error)
Аргументы:
- value: Необходимые. Формула, выражение, значение или ссылка на ячейку для проверки на наличие ошибки.
- value_if_error: Необходимые. Конкретное значение, возвращаемое при обнаружении ошибки. Это может быть пустая строка, текстовое сообщение, числовое значение, другая формула или вычисление.
Заметки:
- 1. Функция ЕСЛИОШИБКА может обрабатывать все типы ошибок, включая # DIV / 0 !, # N / A, #NAME ?, # NULL !, #NUM !, #REF !, и #VALUE !.
- 2. Если ценностное аргумент — пустая ячейка, он обрабатывается функцией ЕСЛИОШИБКА как пустая строка («»).
- 3. Если значение_если_ошибка аргумент предоставляется как пустая строка («»), при обнаружении ошибки сообщение не отображается.
- 4. Если ценностное аргумент является формулой массива, ЕСЛИОШИБКА возвращает массив результатов для каждой ячейки в диапазоне, указанном в значении.
- 5. Данный ЕСЛИОШИБКА доступен в Excel 2007 и всех последующих версиях.
Например, у вас есть список данных ниже, чтобы рассчитать среднюю цену, вы должны использовать Продажу за единицу. Но, если Единица 0 или пустая ячейка, ошибки будут отображаться, как показано ниже:
Теперь я буду использовать пустую ячейку или другую текстовую строку для замены значений ошибок:
=IFERROR(B2/C2, «») (Эта формула вернет пустое значение вместо значения ошибки)
=IFERROR(B2/C2, «Error») (Эта формула вернет пользовательский текст «Ошибка» вместо значения ошибки)
Пример 2: ЕСЛИОШИБКА с функцией Vlookup для возврата «Not Found» вместо значений ошибки
Обычно, когда вы применяете функцию vlookup для возврата соответствующего значения, если подходящее значение не найдено, вы получите значение ошибки # N / A, как показано на следующем снимке экрана:
Вместо отображения значения ошибки вы можете использовать текст «Не найдено», чтобы заменить его. В этом случае вы можете заключить формулу Vlookup в функцию ЕСЛИОШИБКА следующим образом: =IFERROR(VLOOKUP(…),»Not found»)
Используйте приведенную ниже формулу, и тогда вместо значения ошибки будет возвращен пользовательский текст «Не найдено», пока соответствующее значение не найдено, см. Снимок экрана:
=IFERROR(VLOOKUP(D2,$A$2:$B$11,2,FALSE),»Not Found»)
Пример 3: Использование вложенной ЕСЛИОШИБКИ с функцией Vlookup
Эта функция ЕСЛИОШИБКА также может помочь вам справиться с несколькими формулами vlookup, например, у вас есть две таблицы поиска, теперь нужно искать элемент из этих двух таблиц, чтобы игнорировать значения ошибок, используйте вложенный ЕСЛИОШИБКА с Vlookup, поскольку это :
=IFERROR(VLOOKUP(G2,$A$2:$B$7,2,FALSE),IFERROR(VLOOKUP(G2,$D$2:$E$7,2,FALSE),»Not Found»))
Пример 4: функция ЕСЛИОШИБКА в формулах массива
Скажем, если вы хотите рассчитать общее количество на основе списка общей цены и цены за единицу, это можно сделать с помощью формулы массива, которая делит каждую ячейку в диапазоне B2: B5 на соответствующую ячейку диапазона C2: C5, а затем складывает результаты, используя эту формулу массива: =SUM($B$2:$B$5/$C$2:$C$5).
Примечание. Если в используемом диапазоне есть хотя бы одно значение 0 или пустая ячейка, # DIV / 0! ошибка возвращается, как показано ниже:
Чтобы исправить эту ошибку, вы можете заключить функцию ЕСЛИОШИБКА в формулу, как это, и не забудьте нажать Дерьмо + Ctrl + Enter вместе после ввода этой формулы:
=SUM(IFERROR($B$2:$B$5/$C$2:$C$5,0))
Формула ЕСЛИОШИБКА обработки ошибок функции ВПР в Excel
Ошибка #Н/Д! пригодится в анализе моделей данных Excel, так как информирует пользователя и программу о том, что не было найдено соответственное значение. Однако если большая часть такой модели данных будет использована в отчетах, то код ошибки #Н/Д! будет смотреться некорректно. Для этого Excel предлагает функции, которые проверяют результаты вычислений на ошибки и позволяют возвращать другие альтернативные значения.
Ниже на рисунке представлена таблица фирм с фамилиями их руководителей. Вторая таблица содержит те же фамилии и соответствующие им оклады. Функция ВПР используется для соединения двух таблиц в одну. Но не по всем руководителям имеются данные об их окладах, поэтому часто встречается код ошибки #Н/Д! в результатах вычисления функции ВПР.
Формула, изображенная на следующем рисунке уже изменена. Она использует функцию ЕСЛИОШИБКА и возвращает пустую строку в том случае если искомое значение не найдено в исходной таблице:
Пользователи часто называют эту функцию «скрывающая ошибки». Так как она позволяет определить и укрыть любые ошибки, которые можно после этого воспринимать по-другому. А не сметить этими некрасивыми кодами в отчетах для презентации.
Первый аргумент функции ЕСЛИОШИБКА – это выражение или формула, а во втором аргументе следует указать альтернативное значение, которое должно отображаться при возникновении ошибки. Если в первом аргументе выражение или формула вернет ошибку, тогда функция вместо его значения возвратит второй аргумент. В противные случаи будет возвращено значение первого аргумента.
В данном примере альтернативным значением является пустая строка (двойные кавычки без каких-либо символов между ними). Благодаря этому отчет более читабельный и имеет презентабельный вид. Данная функция может возвращать любое значение, например, «Нет данных» или число 0.
Ячейка Excel выдает ошибку #ЧИСЛО!
Если ваша формула содержит недопустимые числовые значения, появится ошибка #ЧИСЛО!. Это часто происходит, когда вы вводите числовое значение, которое отличается от других аргументов, используемых в формуле.
И еще, при вводе формулы, исключите такие значения, как $ 1000, в формате валюты. Вместо этого введите 1000, а затем отформатируйте ячейку с валютой и запятыми после вычисления формулы. Просто число, без знака $ (доллар).
Как устранить эту ошибку
Проверьте, не ввели ли вы какую-либо отформатированную валюту, дату или спецсимвол. Обязательно удалите их из формулы, сохранив только цифры.
ЕСЛИОШИБКА против ЕСНД
Представленная в Excel 2013, ЕСНД (IFNA в английской версии) — это еще одна функция для проверки формулы на наличие ошибок. Его синтаксис похож на синтаксис ЕСЛИОШИБКА:
Чем ЕСНД отличается от ЕСЛИОШИБКА? Функция ЕСНД перехватывает только ошибки #Н/Д, тогда как ЕСЛИОШИБКА обрабатывает все типы ошибок.
В каких ситуациях вы можете использовать ЕСНД? Когда нецелесообразно скрывать все ошибки. Например, при работе с важными данными вы можете захотеть получать предупреждения о возможных ошибках в вашем наборе данных (случайном делении на ноль и т.п.), а стандартные сообщения об ошибках Excel с символом «#» могут быть яркими визуальными индикаторами проблем.
Давайте посмотрим, как можно создать формулу, отображающую сообщение «Не найдено» вместо ошибки «Н/Д», которая появляется, когда искомое значение отсутствует в наборе данных, но при этом вы будете видеть все другие ошибки Excel.
Предположим, вы хотите получить Количество из таблицы поиска в таблицу с результатами, как показано на рисунке ниже. Проще всего было бы использовать ЕСЛИОШИБКА с ВПР. Таблица приобрела бы красивый вид, но при этом за надписью «Не найдено» были бы скрыты не только ошибки поиска, но и все другие ошибки. И мы не заметили бы, что в исходной таблице поиска у нас есть ошибка деления на ноль, так как не заполнена цена персиков. Поэтому более разумно использовать ЕСНД, чтобы с ее помощью обработать только ошибки поиска
=ЕСНД(ВПР(F3; $A$3:$D$6; 4;ЛОЖЬ); «Не найдено»)
Или подойдет комбинация ЕСЛИ ЕНД для старых версий Excel:
=ЕСЛИ(ЕНД(ВПР(F3; $A$3:$D$6; 4;ЛОЖЬ));»Не найдено»; ВПР(F3; $A$3:$D$6; 4;ЛОЖЬ))
Как видите, формула ЕСНД с ВПР возвращает «Не найдено» только для товара, которого нет в таблице поиска (Сливы). Для персиков она показывает #ДЕЛ/0! что указывает на то, что наша таблица поиска содержит ошибку деления на ноль.