lea Пользователь Сообщений: 74 |
Есть три списка a1,a…c3. На листе1 требуется создать зависимые списки. |
Ни из объяснения, ни из файла ни чего не понял |
|
Пробуйте. Имена C и R действительно создать нельзя. |
|
lea Пользователь Сообщений: 74 |
{quote}{login=Казанский}{date=16.08.2011 11:16}{thema=}{post}Пробуйте. Имена C и R действительно создать нельзя.{/post}{/quote} Понял. Работает. А как быть тогда, когда оба списка на Листе1 образованы от объединенных ячеек? У меня опять выползает ошибка «Источника». |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
{quote}{login=lea}{date=17.08.2011 04:38}{thema=Re: }{post}{quote}{login=Казанский}{date=16.08.2011 11:16}{thema=}{post}{/post}{/quote} А как быть тогда, когда оба списка на Листе1 образованы от объединенных ячеек? У меня опять выползает ошибка «Источника».{/post}{/quote}Не используйте объединённые ячейки — облегчите себе жизнь. |
lea Пользователь Сообщений: 74 |
{quote}{login=Юрий М}{date=17.08.2011 09:08}{thema=Re: Re: }{post}{quote}{login=lea}{date=17.08.2011 04:38}{thema=Re: }{post}{quote}{login=Казанский}{date=16.08.2011 11:16}{thema=}{post}{/post}{/quote} А как быть тогда, когда оба списка на Листе1 образованы от объединенных ячеек? У меня опять выползает ошибка «Источника».{/post}{/quote}Не используйте объединённые ячейки — облегчите себе жизнь.{/post}{/quote} это 2 поля из бланка. надо чтобы графически виглядело именно объединенными ячейками. |
lea Пользователь Сообщений: 74 |
{quote}{login=Маугли}{date=17.08.2011 07:46}{thema=}{post}Так?{/post}{/quote} |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
>> это 2 поля из бланка. надо чтобы графически виглядело именно объединенными ячейками. |
lea Пользователь Сообщений: 74 |
{quote}{login=Казанский}{date=16.08.2011 11:16}{thema=}{post}Пробуйте. Имена C и R действительно создать нельзя.{/post}{/quote} Господа, так получается во второй выпадающей ячейке (зависимой) количество списков, которые можно было бы использовать, ограничено количеством букв латинского алфавита, исключая C и R. Пример: =ДВССЫЛ(F5) обрабатывает только списки с ИМЕНАМИ от a…z А если списков штук сто будет как у меня? |
vikttur Пользователь Сообщений: 47199 |
Называйте списки не только одной буквой, например: «lea», «lea_умный», «Я_знаю_32_буквы» |
lea Пользователь Сообщений: 74 |
{quote}{login=vikttur}{date=18.08.2011 03:28}{thema=}{post}Называйте списки не только одной буквой, например: «lea», «lea_умный», «Я_знаю_32_буквы» :){/post}{/quote} |
vikttur Пользователь Сообщений: 47199 |
Можно. Прикладывайте, на нем соорудим |
lea Пользователь Сообщений: 74 |
{quote}{login=vikttur}{date=18.08.2011 03:32}{thema=}{post}Можно. Прикладывайте, на нем соорудим :){/post}{/quote} Можно конечно. Не могу добиться выпадания списка lea при такой функции в ячейке E7: =ДВССЫЛ(E7) |
DV_68 Пользователь Сообщений: 628 |
{quote}{login=lea}{date=18.08.2011 03:24}{thema=Re: }{post}А если списков штук сто будет как у меня?{/post}{/quote} |
vikttur Пользователь Сообщений: 47199 |
|
lea Пользователь Сообщений: 74 |
{quote}{login=DV}{date=18.08.2011 03:47}{thema=Re: Re: }{post}{quote}{login=lea}{date=18.08.2011 03:24}{thema=Re: }{post}А если списков штук сто будет как у меня?{/post}{/quote} хороший вариант. а если дописываются строки к списка, типа: a4,a5,…b4,b5,…? так скажем динамические списки? |
lea Пользователь Сообщений: 74 |
{quote}{login=DV}{date=18.08.2011 03:47}{thema=Re: Re: }{post}{quote}{login=lea}{date=18.08.2011 03:24}{thema=Re: }{post}А если списков штук сто будет как у меня?{/post}{/quote} хороший вариант. а как быть, если списки будут дописываться, динамические? |
lea Пользователь Сообщений: 74 |
а если списки будут динамическими? |
lea Пользователь Сообщений: 74 |
в случае без ДВССЫЛ придется прописывать диапазрны, а во втором варианте — копировать имена списков на лист с выпадающими ячейками? |
vikttur Пользователь Сообщений: 47199 |
С динамическими списками «недоделанная» ДВССЫЛ() отказывается работат. |
DV_68 Пользователь Сообщений: 628 |
{quote}{login=vikttur}{date=18.08.2011 04:01}{thema=}{post}…для имени летучесть не страшна (как выяснилось не так давно).{/post}{/quote} |
lea Пользователь Сообщений: 74 |
а как с функцией =ИНДЕКС реализовать динамические списки? |
DV_68 Пользователь Сообщений: 628 |
{quote}{login=lea}{date=18.08.2011 04:06}{thema=}{post}а как с функцией =ИНДЕКС реализовать динамические списки?{/post}{/quote} |
DV_68 Пользователь Сообщений: 628 |
Ошибся, хотя задумка была вложена))) |
vikttur Пользователь Сообщений: 47199 |
Ссылки нет, есть цитата. Можно сказать, мини-урок. ZVI. О летучести имен и УФ. |
lea Пользователь Сообщений: 74 |
{quote}{login=DV}{date=18.08.2011 04:07}{thema=Re: }{post}{quote}{login=lea}{date=18.08.2011 04:06}{thema=}{post}а как с функцией =ИНДЕКС реализовать динамические списки?{/post}{/quote} дописал к столбцам на листе2 a4,b4,c4 соответственно, но в выпадающих списках эти новые данные не отобразились. |
lea Пользователь Сообщений: 74 |
задумка, кстати, тоже полезная, но нужна динамика (( |
vikttur Пользователь Сообщений: 47199 |
|
lea Пользователь Сообщений: 74 |
#30 18.08.2011 16:40:24 Супер! Постараюсь теперь переварить строку =общ )) |
Хитрости »
1 Май 2011 196831 просмотров
Связанные выпадающие списки
Скачать файл, используемый в видеоуроке:
Связанные выпадающие списки.xls (216,5 KiB, 3 036 скачиваний)
Чтобы понять о чем пойдет речь в статье сначала необходимо понимать что такое выпадающий список и как его создать. Теперь попробуем разобраться что значит выражение «связанный выпадающий список». Я бы еще назвал такой список зависимым. Т.е. когда список значений одного выпадающего списка зависит от значения, выбранного в другом выпадающем списке или просто забитого в ячейку. Представим ситуацию: есть ячейка А2. В ней создан выпадающий список со значениями: Овощи, Фрукты, Мясо, Напитки. А в ячейке В2 нам нужен такой список, чтобы значения этого самого списка изменялись в зависимости от того, какое значение мы укажем в ячейке А2 — т.е. список выбранной категории продуктов. Например выбрали в А2 значение Овощи — в В2 появился выпадающий список, содержащий значения: Морковь, Капуста, Картошка, Редиска, Помидоры. Выбрали в А2 Мясо — в В2 появился выпадающий список, содержащий значения: Говядина, Телятина, Свинина, Курица, Индейка. И т.д.
Подготовка
Для начала нам потребуется создать все эти списки. Что-то вроде этого:
Далее для каждого из этих списков необходимо назначить именованный диапазон. Создать можно любым способом из описанных в этой статье. Главное помнить — если сами списки расположено на листе, отличном от того, на котором списки выпадающие — то обязательно создавать именованный диапазон с назначением области действия — Книга.
В приложенном к статье примере диапазоны имеют имена категорий — их можно видеть в заголовках.
Если ваши категории содержат пробел — необходимо заменить его на нижнее подчеркивание (_) или удалить, т.к. в качестве именованного диапазона такое значение не подойдет и ничего в результате не получится.
Создание зависимых списков
В ячейке А2 создаем «список списков» — основной список, на основании значений которого будет создаваться второй список. Этот список может быть создан любым способом (как создать выпадающий список). Назовем его Список категорий.
В ячейке В2 потребуется создать список на основании формулы, хоть по сути и так же, как и остальные: вкладка Данные (Data)—Проверка данных (Data validation)—Список (List). Но теперь вместо прямого указания имени списка необходимо указать ссылку на именованный диапазон, который мы выберем в Списке категорий(ячейка А2), на основании его имени. В этом нам поможет функция ДВССЫЛ (INDIRECT). Просто записываем эту формулу в поле Источник (Source): =ДВССЫЛ($A2)
На что обратить внимание: если вы планируете распространять такой список на столбец, то ссылка должна выглядеть именно так: $A2. Перед цифрой не должно быть знака доллара ($A$2 — неправильно). Иначе зависимый список будет всегда формироваться исключительно на основании значении ячейки А2.
Источник из другой книги
Сами списки товара могут находится и в другой книге. Если книга называется Книга со списком.xls и на Лист1 в ячейке А1 в этой книге находится имя нужного нам списка, то формула будет выглядеть так:
=ДВССЫЛ(«‘[Книга со списком.xls]Лист1’!»&$A$1)
На что обратить внимание: лучше всегда перед именем книги и после имени листа ставить апостроф — ‘. Так вы избежите проблем и недопонимания, если имя листа или книги содержит пробелы и иные специфические символы. В отличии от списков внутри одной книги в данном случае знак доллара должен быть и перед буквой и перед цифрой. В ином случае возможны ошибки (если, конечно, это не было сделано специально с пониманием того, что делалось).
Ограничения: данный способ создания списков хорош, но не обошлось и без ложки дегтя. Даже двух:
- обе книги должны быть открыты. Если вы закроете книгу со списками, то получите ошибку — выпадающие списки просто перестанут работать
- созданные подобным образом связанные списки не будут работать с динамическими именованными диапазонами
И ничего с этими ограничениями не поделать при подобном подходе.
Скачать пример
Tips_Lists_Connect_Validation.xls (26,5 KiB, 18 068 скачиваний)
Так же см.:
Выпадающие списки
Именованные диапазоны
Динамические именованные диапазоны
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
После ввода или корректировки формулы, а также при изменении любого значения функции бывает, что появляется ошибка формулы, а не требуемое значение. Всего табличный редактор распознает семь основных типов таких неправильных расчетов. Как выглядят ошибки в Excel и как их исправить, разберем ниже.
Ниже мы представим описание формул показанных на картинке с подробной информацией по каждой ошибке.
1. #ДЕЛ/О!
– «деление на 0», чаще всего возникает при попытке делить на ноль. То есть заложенная в ячейке формула, выполняя функцию деления, натыкается на ячейку, где с нулевым значением или стоит «Пусто». Чтобы устранить проблему, проверьте все участвующие в вычислениях ячейки и исправьте все недопустимые значения. Второе действие, приводящее к #ДЕЛ/О! – это ввод неверных значений в некоторые функции, такие как =СРЗНАЧ(), если при расчете в диапазоне значений стоит 0. Тот же результат спровоцируют незаполненные ячейки, к которым обращается формула, требующая для расчета конкретных данных.
2. #Н/Д
– «нет данных». Так Excel
помечает значения, непонятные формуле (функции). Введя неподходящие цифры в функцию, вы обязательно вызовете эту ошибку. При ее появлении проследите, все ли входные ячейки заполнены правильно, а особенно в тех из них, где светится такая же надпись. Часто встречается при использовании
3. #ИМЯ
? – «недопустимое имя», показатель некорректного имени формулы или какой-то ее части. Проблема исчезает, если проверить и подправить все названия и имена, сопровождающие алгоритм вычислений.
4. #ПУСТО!
– «в диапазоне пустое значение», сигнал о том, что где-то в расчете прописаны непересекающиеся области или проставлен пробел между указанными диапазонами. Довольно редкая ошибка. Выглядеть ошибочная запись может так:
СУММ(G10:G12 I8:J8)
Excel
не распознает такие команды.
5. #ЧИСЛО!
– ошибку вызывает формула, содержащая число, не соответствующее рамкам обозначенного диапазона.
6. #ССЫЛКА!
– предупреждает о том, что исчезли ячейки, связанные с этой формулой. Проверьте, скорее всего были удалены ячейки указанные в формуле.
7. #ЗНАЧ!
– неверно выбран тип аргумента для работы функции.
8. Бонус, ошибка #####
— ширина ячейки недостаточна для отображения всего числа
Кроме того, Excel
выдает предупреждение о неправильной формуле. Программа попытается подсказать вам, как именно следует сделать расстановку пунктуации (например скобок). Если предложенный вариант отвечает вашим требования, жмите «Да». Если подсказка требует ручной корректировки. Тогда выберите «Нет» и переставьте скобки сами.
Ошибки в Excel. Применение функции ЕОШИБКА
() для Excel 2003
Хорошо помогает ликвидировать ошибки в Excel
функция . Действует она путем нахождения ошибок в ячейки, если находит ошибку в формуле возвращает значение ИСТИНА и наоборот. В комбинации с =ЕСЛИ(), она позволят заменить значение если найдена ошибка.
Рабочая формула: =ЕСЛИ(ОШИБКА(выражение);ошибка;выражение).
ЕСЛИ(ЕОШИБКА
(А1/А2);””;А1/А2)
Пояснение: если при выполнении А1/А2 найдена ошибка, будет возвращено пусто («»). Если все прошло корректно (т.е. ЕОШИБКА
(А1/А2) = ЛОЖЬ), то рассчитывается А1/А2.
Ошибки в Excel.
Применение ЕСЛИОШИБКА() для Excel 2007 и выше
Одна из причин, почему я быстро перешел на Excel 2007 была ЕСЛИОШИБКА() (самая главная причина — это )
Функция еслиошибка содержит возможности обеих функций – ЕОШИБКА
() и ЕСЛИ(), но доступна в более новых версиях Excel, что очень удобно
Инструмент активируется следующим образом: =ЕСЛИОШИБКА(значение; значение при ошибке). Вместо «значение» ставится расчетное выражение/ссылка на ячейку, а вместо «значение при ошибке» — то, что следует вернуть при появлении неточности например, если при расчете А1/А2 выдается #ДЕЛ/О!
то формула будет выглядеть следующим образом:
ЕСЛИОШИБКА(А1/А2;””)
» качайте здесь
При создании сложных формул (да и просто невнимательности) в MS Excel ошибку совершить довольно легко. Обычно MS Excel в таких случаях выводит сообщения об ошибках или даже предлагает «правильный» на его взгляд вариант написания формулы, однако даже при наличии справочной системы, поначалу довольно сложно понять, чего же хочет от нас «глупая программа». В этой статье мы рассмотрим все типы ошибок возникающих в формулах MS Excel, и научимся их исправлять и понимать.
Ошибка #ЗНАЧ! (ошибка в значении)
Если бы был «топ ошибок MS Excel», первое место в нем принадлежало бы ошибке #ЗНАЧ!
. Как можно догадаться из названия, возникает она в том случае, когда в формулу или функцию подставлено неправильное значение. Если вы пытаетесь провести арифметические операции с текстом, или подставляете в функцию диапазон ячеек, когда требуется указать всего одну ячейку, результатом вычислений будет ошибка #ЗНАЧ!.
Как и говорилось — попытка сложить число и текст ставит MS Excel в тупик
Ошибка #ССЫЛКА! (неправильная ссылка на ячейку)
Одна из самых частых ошибок при вычислениях. Обозначает самую простейшую вещь — в формуле используется ссылка на ячейку которую вы или не создавали или ненароком удалили. Чаще всего #ССЫЛКА!
возникает когда вы удаляете «ненужный» столбец, некоторые ячейки которого, как оказывается, участвовали в вычислениях.
Ошибка #ДЕЛ/0! (деление на ноль)
Со школьной скамьи мы помним простое правило: на ноль делить нельзя! Ошибка #ДЕЛ/0!
— это предупреждение от MS Excel о том, что это базовое правило нарушено и вы все-таки пытаетесь разделить некое число на ноль. При этом сам «ноль» не обязателен — любая попытка разделить существующее число на «пустую» ячейку также вызовет эту ошибку.
Делить на ноль нельзя — пустая ячейка воспринимается MS Excel как тот же ноль
Ошибка #Н/Д (значение недоступно)
Ошибка #Н/Д
возникает в том случае, если в функции пропущен какой-то аргумент, или одно из используемых в формуле значений становится недоступно. Увидел #Н/Д — первым делом ищи чего в твоих вычислениях не хватает.
Применяю функцию ВПР, знак разделения поставил, а вот указать к какой ячейке он относится — забыл
Ошибка #ИМЯ? (недопустимое имя)
Ошибка #ИМЯ
— признак того, что вы и Excel друг друга не поняли. Вернее MS Excel не понял что вы имели ввиду — вы явно указываете на какой-то элемент, а программа его не может найти. В каких случаях это обычно происходит?
- В функции указана ячейка или диапазон ячеек с несуществующим (чаще всего с неправильно введенным) именем.
Попытка суммировать несуществующий диапазон с названием Столбец
- Текст внутри функции заключается в кавычки. Если этого не происходит (то есть вместо =»Вася» мы вводим =Вася), MS Excel приходит в полное недоумение.
Ещё одна простейшая ошибка — текст в функциях и формулах указывается в кавычках
- В названии функции случайно допущена опечатка.
Ошибка #ПУСТО! (пустое множество)
Ошибка #ПУСТО
чаще всего возникает когда в формуле пропущен один из операторов, но может возникать и в том случае, когда нам требуется найти пересечение двух диапазонов ячеек, а этого пересечения просто не существует.
Все бы хорошо, но забыл про второй знак «+»
Ошибка #ЧИСЛО! (неправильное число)
Ошибку #ЧИСЛО!
ms Excel выдает в тех случаях, когда результат математических вычислений в формуле порождает какой-то совершенно нереальный результат. Результат в виде предельно большого или малого числа, попытка вычислить корень из отрицательного числа — все это приведет к возникновению ошибки #ЧИСЛО!
Вычислить корень из отрицательного числа? Вас бы не понял не только Excel
Знаки «решетки» в ячейке Excel (#######)
В прошлом весьма распространенная «ошибка» MS Excel связанная с внезапным заполнением ячейки знаками решетки (#) могла быть вызвана тем, что в ячейку введено число которое не помещается в ней целиком (но только если ячейка имеет формат «числовой» или «дата»).
С появлением MS Office 2013 ошибка практически сошла на нет, так как «поумневший» Excel стал в большинстве случаев автоматически увеличивать ширину ячейки под число. Если же вы видите «решетки», проще всего избавиться от них увеличив ширину ячейки вручную.
Достаточно увеличить ширину столбца и проблема исчезнет
Если вы знаете в каких случаях в экселе возникает та или иная ошибка, вы скорее всего сразу поймете чем она вызвана. Однако программа ещё более упрощает вам работу и выводит рядом с ошибочным значением спецсимвол в виде значка восклицательного знака в желтом ромбе. При нажатии на него, вам будет предложен список возможных действий по исправлению ошибки.
Нажмите на значок, чтобы получить помощь в исправлении ошибки
В первой строке появившегося контекстного меню вы увидите полное название ошибки, во второй сможете вызвать подробную справку по ней, но самое интересное скрывает в себе третий пункт: «Показать этапы вычисления…
«.
«Показать этапы вычисления…» — программу не обманешь, точно выводит фрагмент формулы где допущена ошибка
Нажмите на него и в появившемся окне увидите тот самый фрагмент формулы где допущена ошибка — это особенно удобно, когда «распутывать» приходится целый клубок из громады вложенных друг в друга действий.
Ошибки в Excel возникают довольно часто. Вы, наверняка, замечали странные значения в ячейках, вместо ожидаемого результата, которые начинались со знака #
. Это говорит о том, что формула возвращает ошибку. Чтобы избавиться от ошибки, Вы должны исправить ее причину, а они могут быть самыми разными.
Несоответствие открывающих и закрывающих скобок
Самым распространенным примером возникновения ошибок в формулах Excel является несоответствие открывающих и закрывающих скобок. Когда пользователь вводит формулу, Excel автоматически проверяет ее синтаксис и не даст закончить ввод, пока в ней присутствует синтаксическая ошибка.
Например, на рисунке выше мы намеренно пропустили закрывающую скобку при вводе формулы. Если нажать клавишу Enter
, Excel выдаст следующее предупреждение:
В некоторых случаях Excel предлагает свой вариант исправления ошибки. Вы можете либо согласиться с Excel, либо исправить формулу самостоятельно. В любом случае слепо полагаться на это исправление ни в коем случае нельзя. Например, на следующем рисунке Excel предложил нам неправильное решение.
Ячейка заполнена знаками решетки
Бывают случаи, когда ячейка в Excel полностью заполнена знаками решетки. Это означает один из двух вариантов:
В данном случае увеличение ширины столбца уже не поможет.
Ошибка #ДЕЛ/0!
Ошибка #ДЕЛ/0!
возникает, когда в Excel происходит деление на ноль. Это может быть, как явное деление на ноль, так и деление на ячейку, которая содержит ноль или пуста.
Ошибка #Н/Д
Ошибка #Н/Д
возникает, когда для формулы или функции недоступно какое-то значение. Приведем несколько случаев возникновения ошибки #Н/Д
:
Ошибка #ИМЯ?
Ошибка #ИМЯ?
возникает, когда в формуле присутствует имя, которое Excel не понимает.
В данном примере имя диапазон не определено.
Ошибка #ПУСТО!
Ошибка #ПУСТО!
возникает, когда задано пересечение двух диапазонов, не имеющих общих точек.
Ошибка #ЧИСЛО!
Ошибка #ЧИСЛО!
возникает, когда проблема в формуле связана со значением.
Не забывайте, что Excel поддерживает числовые величины от -1Е-307 до 1Е+307.
- Еще одним случаем возникновения ошибки #ЧИСЛО!
является употребление функции, которая при вычислении использует метод итераций и не может вычислить результат. Ярким примером таких функций в Excel являются СТАВКА
и ВСД
.
Ошибка #ССЫЛКА!
Ошибка #ЗНАЧ!
Ошибка #ЗНАЧ!
одна из самых распространенных ошибок, встречающихся в Excel. Она возникает, когда значение одного из аргументов формулы или функции содержит недопустимые значения. Самые распространенные случаи возникновения ошибки #ЗНАЧ!
.
Когда вы вводите или редактируете формулу, а также когда меняется одно из входных значений функции, Excel может показать одну из ошибок вместо значения формулы. В программе предусмотрено семь типов ошибок. Давайте рассмотрим их описание и способы устранения.
- #ДЕЛ/О!
— данная ошибка практически всегда означает, что формула в ячейке пытается разделить какое-то значение на ноль. Чаще всего это происходит из-за того, что в другой ячейке, ссылающейся на данную, находится нулевое значение или значение отсутствует. Вам необходимо проверить все связанные ячейки на предмет наличия таких значений. Также данная ошибка может возникать, когда вы вводите неправильные значения в некоторые функции, например в ОСТАТ() , когда второй аргумент равен 0. Также ошибка деления на ноль может возникать, если вы оставляете пустые ячейки для ввода данных, а какая-либо формула требует некоторые данные. При этом будет выведена ошибка #ДЕЛ/0!
, что может смутить конечного пользователя. Для этих случаев вы можете использовать функцию ЕСЛИ() для проверки, например =ЕСЛИ(А1=0;0;В1/А1) . В этом примере функция вернет 0 вместо ошибки, если в ячейке А1 находится нулевое или пустое значение. - #Н/Д
— данная ошибка расшифровывается как недоступно, и это означает, что значение недоступно функции или формуле. Вы можете увидеть такую ошибку, если введете неподходящее значение в функцию. Для исправления проверьте прежде всего входные ячейки на предмет ошибок, особенно если в них тоже появляется данная ошибка. - #ИМЯ?
— данная ошибка возникает, когда вы неправильно указываете имя в формуле или ошибочно задаете имя самой формулы. Для исправления проверьте еще раз все имена и названия в формуле. - #ПУСТО!
— данная ошибка связана с диапазонами в формуле. Чаще всего она возникает, когда в формуле указывается два непересекающихся диапазона, например =СУММ(С4:С6;А1:С1) . - #ЧИСЛО!
— ошибка возникает, когда в формуле присутствуют некорректные числовые значения, выходящие за границы допустимого диапазона. - #ССЫЛКА!
— ошибка возникает, когда были удалены ячейки, на которые ссылается данная формула. - #ЗНАЧ!
— в данном случае речь идет об использовании неправильного типа аргумента для функции.
Если при вводе формулы вы случайно неправильно расставили скобки, Excel выведет на экран предупреждающее сообщение — см. рис. 1. В этом сообщении вы увидите предположение Excel о том, как их необходимо расставить. В случае если вы подтверждаете такую расстановку, нажмите Да
. Но зачастую требуется собственное вмешательство. Для этот нажмите Нет
и исправьте скобки самостоятельно.
Обработка ошибок с помощью функции ЕОШИБКА()
Перехватить любые ошибки и обработать их можно с помощью функции ЕОШИБКА() . Данная функция возвращает истину или ложь в зависимости от того, появляется ли ошибка при вычислении ее аргумента. Общая формула для перехвата выглядит так: =ЕСЛИ(ЕОШИБКА(выражение);ошибка; выражение) .
Функция если вернет ошибку (например, сообщение), если при расчете появляется ошибка. Например, рассмотрим следующую формулу: =ЕСЛИ(ЕОШИБКА(А1/А2);»»; А1/А2) . При возникновении ошибки (деление на 0) формула возвращает пустую строку. Если же ошибки не возникает, возвращается само выражение А1/А2 .
Существует другая, более удобная функция ЕСЛИОШИБКА() , которая совмещает две предыдущие функции ЕСЛИ() и ЕОШИБКА() : ЕСЛИОШИБКА(значение;значение при ошибке) , где: значение
— выражение для расчета, значение при ошибке
— возвращаемый результат в случае ошибки. Для нашего примера это будет выглядеть так: =ЕСЛИОШИБКА(А1/А2;»») .
Списки и диапазоны (5)
Макросы(VBA процедуры) (63)
Разное (39)
Баги и глюки Excel (3)
Как в ячейке с формулой вместо ошибки показать 0
Случаются ситуации, когда в рабочей книге на листах создано много формул, выполняющих различные задачи. При этом формулы созданы когда-то давно, возможно даже на вами. И формулы возвращают ошибки. Например #ДЕЛ/0! (#DIV/0!) . Эта ошибка возникает, если внутри формулы происходит деление на ноль: = A1 / B1 , где в B1 ноль или пусто. Но могут быть и другие ошибки(#Н/Д, #ЗНАЧ! и т.д.). Можно изменить формулу, добавив проверку на ошибку:
=IF(ISERR(A1 / B1),0, A1 / B1)
аргументы:
=ЕСЛИ(ЕОШ(1 аргумент);2 аргумент; 1 аргумент)
Эти формулы будут работать в любой версии Excel. Правда, функция ЕОШ не обработает ошибку #Н/Д (#N/A) . Чтобы так же обработать и #Н/Д необходимо использовать функцию ЕОШИБКА:
=ЕСЛИ(ЕОШИБКА(A1 / B1);0; A1 / B1)
=IF(ISERROR(A1 / B1),0, A1 / B1)
Однако далее по тексту я буду применять ЕОШ(т.к. она короче) и к тому же не всегда надо «не видеть» ошибки #Н/Д.
Но для версий Excel 2007 и выше можно применить чуть более оптимизированную функцию ЕСЛИОШИБКА (IFERROR)
:
=ЕСЛИОШИБКА(A1 / B1 ;0)
=IFERROR(A1 / B1 ,0)
аргументы:
=ЕСЛИОШИБКА(1 аргумент; 2 аргумент)
1 аргумент: выражение для вычисления
2 аргумент: значение или выражение, которое необходимо вернуть в ячейку в случае ошибки в первом аргументе.
Почему ЕСЛИОШИБКА лучше и я называю её более оптимизированной? Разберем первую формулу подробнее:
=ЕСЛИ(ЕОШ(A1 / B1);0; A1 / B1)
Если вычислить пошагово, то увидим, что сначала происходит вычисление выражения A1 / B1 (т.е. деление). И если его результат ошибка – то ЕОШ вернет ИСТИНА (TRUE) , которое будет передано в ЕСЛИ (IF) . И тогда функцией ЕСЛИ(IF) будет возвращено значение из второго аргумента 0.
Но если результат не является ошибочным и ЕОШ (ISERR) возвращает ЛОЖЬ (FALSE) – то функция заново будет вычислять уже вычисленное ранее выражение: A1 / B1
С приведенной формулой это особой роли не играет. Но если применяется формула вроде ВПР (VLOOKUP) с просмотром на несколько тысяч строк – то вычисление два раза может значительно увеличить время пересчета формул.
Функция же ЕСЛИОШИБКА (IFERROR) один раз вычисляет выражение, запоминает его результат и если он ошибочен возвращает записанное вторым аргументом. Если же ошибки нет, то возвращает запомненный результат вычисления выражения из первого аргумента. Т.е. вычисление по факту происходит один раз, что практически не будет влиять на скорость общего пересчета формул.
Поэтому если у вас Excel 2007 и выше и файл не будет использоваться в более ранних версиях – то имеет смысл использовать именно ЕСЛИОШИБКА (IFERROR) .
Для чего формулы с ошибками вообще исправлять? Обычно делается для более эстетичного отображения данных в отчетах, особенно если отчеты потом руководству отправляют.
Итак, есть на листе такие формулы, ошибки которых надо обработать. Если подобных формул для исправления одна-две(да даже 10-15) – то проблем почти нет заменить вручную. Но если таких формул несколько десятков, а то и сотен – проблема приобретает почти вселенские масштабы:-). Однако процесс можно упростить через написание относительно простого кода Visual Basic for Application.
Для всех версий Excel:
Sub
IfIsErrNull()
Const sToReturnVal As
String
= «0»
, vbInformation, «www.сайт»
Exit
Sub
End
If
For
Each
rc In
rr
If
rc.HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=»
& «IF(ISERR(»
& s & «),»
& sToReturnVal & «,»
& s & «)»
If
Left(s, 9) <> «IF(ISERR(»
Then
If
rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End
If
If
Err.Number Then
ss = rc.Address
rc.Select
Exit
For
End
If
End
If
End
If
Next
rc
If
Err.Number Then
MsgBox «Формулы обработаны»
Sub IfIsErrNull()
Const sToReturnVal As String = «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim rr As Range, rc As Range
Dim s As String, ss As String
On Error Resume Next
Set rr = Intersect(Selection, ActiveSheet.UsedRange)
If rr Is Nothing Then
MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www..HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=» & «IF(ISERR(» & s & «),» & sToReturnVal & «,» & s & «)»
If Left(s, 9) <> «IF(ISERR(» Then
If rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End If
If Err.Number Then
ss = rc.Address
rc.Select
Exit For
End If
End If
End If
Next rc
If Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _
Err.Description, vbInformation, «www..сайт»
End If
End Sub
Для версий 2007 и выше
Sub
IfErrorNull()
Const sToReturnVal As
String
= «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim
rr As
Range, rc As
Range
Dim
s As
String
, ss As
String
On
Error
Resume
Next
Set
rr = Intersect(Selection, ActiveSheet.UsedRange)
If
rr Is
Nothing
Then
MsgBox «Выделенный диапазон не содержит данных»
, vbInformation, «www.сайт»
Exit
Sub
End
If
For
Each
rc In
rr
If
rc.HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=»
& «IFERROR(»
& s & «,»
& sToReturnVal & «)»
If
Left(s, <> «IFERROR(»
Then
If
rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End
If
If
Err.Number Then
ss = rc.Address
rc.Select
Exit
For
End
If
End
If
End
If
Next
rc
If
Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: »
& ss & vbNewLine & _
Err.Description, vbInformation, «www.сайт»
Else
MsgBox «Формулы обработаны»
, vbInformation, «www.сайт»
End
If
End
Sub
Sub IfErrorNull()
Const sToReturnVal As String = «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim rr As Range, rc As Range
Dim s As String, ss As String
On Error Resume Next
Set rr = Intersect(Selection, ActiveSheet.UsedRange)
If rr Is Nothing Then
MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www..HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=» & «IFERROR(» & s & «,» & sToReturnVal & «)»
If Left(s, <> «IFERROR(» Then
If rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End If
If Err.Number Then
ss = rc.Address
rc.Select
Exit For
End If
End If
End If
Next rc
If Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _
Err.Description, vbInformation, «www..сайт»
End If
End Sub
Как это работает
Если не знакомы с макросами, то для начала лучше прочитать как их создавать и вызывать: Что такое макрос и где его искать? , т.к. может случиться так, что все сделаете правильно, но забудете макросы разрешить и ничего не заработает.
Копируете приведенный код, переходите в редактор VBA(Alt
+F11
), создаете стандартный модуль (Insert
—Module
) и просто вставляете в него этот код. Переходите в нужную книгу Excel и выделяете все ячейки, формулы в которых необходимо преобразовать таким образом, чтобы в случае ошибки они возвращали ноль. Жмете Alt
+F8
, выбираете код IfIsErrNull
(или IfErrorNull
, в зависимости от того, какой именно скопировали) и жмете Выполнить
.
Ко всем формулам в выделенных ячейках будет добавлена функция обработки ошибки. Приведенные коды учитывают так же:
-если в формуле уже применена функция ЕСЛИОШИБКА или ЕСЛИ(ЕОШ, то такая формула не обрабатывается;
-код корректно обработает так же функции массива;
-выделять можно несмежные ячейки(через Ctrl).
В чем недостаток:
сложные и длинные формулы массива могут вызвать ошибку кода, в связи с особенностью данных формул и их обработкой из VBA. В таком случае код напишет о невозможности продолжить работу и выделит проблемную ячейку. Поэтому настоятельно рекомендую производить замены на копиях файлов.
Если значение ошибки надо заменить на пусто, а не на ноль, то надо строку
«Const sToReturnVal As String = «»»»»»
Удалить апостроф ( »
)
Так же можно данный код вызывать нажатием кнопки(Как создать кнопку для вызова макроса на листе) или поместить в надстройку(Как создать свою надстройку?), чтобы можно было вызывать из любого файла.
И небольшое дополнение: старайтесь применять код вдумчиво. Не всегда возврат ошибки мешает. Например, при использовании ВПР иногда полезно видеть какие значения не были найдены.
Так же хочу отметить, что применять надо к реально работающим формулам. Потому как если формула возвращает #ИМЯ!(#NAME!), то это означает, что в формуле неверно записан какой-то аргумент и это ошибка записи формулы, а не ошибка результата вычисления. Такие формулы лучше проанализировать и найти ошибку, чтобы избежать логических ошибок расчетов на листе.
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
{«Bottom bar»:{«textstyle»:»static»,»textpositionstatic»:»bottom»,»textautohide»:true,»textpositionmarginstatic»:0,»textpositiondynamic»:»bottomleft»,»textpositionmarginleft»:24,»textpositionmarginright»:24,»textpositionmargintop»:24,»textpositionmarginbottom»:24,»texteffect»:»slide»,»texteffecteasing»:»easeOutCubic»,»texteffectduration»:600,»texteffectslidedirection»:»left»,»texteffectslidedistance»:30,»texteffectdelay»:500,»texteffectseparate»:false,»texteffect1″:»slide»,»texteffectslidedirection1″:»right»,»texteffectslidedistance1″:120,»texteffecteasing1″:»easeOutCubic»,»texteffectduration1″:600,»texteffectdelay1″:1000,»texteffect2″:»slide»,»texteffectslidedirection2″:»right»,»texteffectslidedistance2″:120,»texteffecteasing2″:»easeOutCubic»,»texteffectduration2″:600,»texteffectdelay2″:1500,»textcss»:»display:block; padding:12px; text-align:left;»,»textbgcss»:»display:block; position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:#333333; opacity:0.6; filter:alpha(opacity=60);»,»titlecss»:»display:block; position:relative; font:bold 14px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff;»,»descriptioncss»:»display:block; position:relative; font:12px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff; margin-top:8px;»,»buttoncss»:»display:block; position:relative; margin-top:8px;»,»texteffectresponsive»:true,»texteffectresponsivesize»:640,»titlecssresponsive»:»font-size:12px;»,»descriptioncssresponsive»:»display:none !important;»,»buttoncssresponsive»:»»,»addgooglefonts»:false,»googlefonts»:»»,»textleftrightpercentforstatic»:40}}
Содержание
- 1 Где находится?
- 2 Настройка условия проверки
- 3 Всплывающая подсказка ячейки Excel
- 4 Вывод сообщения об ошибке
- 5 Несоответствие открывающих и закрывающих скобок
- 6 Ячейка заполнена знаками решетки
- 7 Ошибка #ДЕЛ/0!
- 8 Ошибка #Н/Д
- 9 Ошибка #ИМЯ?
- 10 Ошибка #ПУСТО!
- 11 Ошибка #ЧИСЛО!
- 12 Ошибка #ССЫЛКА!
- 13 Ошибка #ЗНАЧ!
- 14 Типы ошибок
- 15 Циклические ссылки в Excel
Очень часто, работая в табличном редакторе, приходится сталкиваться с непонятными «абра-кадарбрами» в ячейках при вычислениях — это ошибки Excel. Для опытных пользователей это не составляет проблемы. А вот, что делать тем, кто не понимает отчего возникают различные, непонятные символы в таблице? Ответ на этот вопрос, а также расшифровку наиболее часто встречающихся «недоразумений» в Excel, представлены в данной статье в виде таблицы. Microsoft Excel имеет средства, помогающие пользователю устранять затруднения, возникающие при появлении ошибок в вычислениях. Остановимся на двух способах.
Первый: Используя панель инструментов Зависимости, можно графически отобразить взаимоотношения между формулами и ячейками с помощью стрелок слежения. В частности, если выбранная ячейка содержит формулу, можно обнаружить все ячейки, предоставляющие данные для этой формулы.
С помощью этой панели инструментов можно выявить влияющие ячейки (ячейки, значение которых используется в указанной ячейке) или зависимые ячейки (ячейки, которые зависят от значения в указанной ячейке). Если результат вычисления по формуле дает значение ошибки, можно использовать кнопку Источник ошибок для поиска всех ячеек, используемых в вычислениях по формуле. При этом красные стрелки соединяют ячейку, вызвавшую ошибку, с ячейкой, содержащей значение ошибки, а синие стрелки показывают влияющие ячейки для ячейки, вызвавшей ошибку.
В Windows XP: Вид/Панели инструментов/Настройка/включить панель Зависимости
Windows 7: Выбрать на ленте Формулы/Зависимые ячейки.
«
Второй: При проведении вычислений в электронной таблице не исключены неправильные действия пользователя, например, при вводе данных, составлении формул и т.п. Ниже приведена таблица, в которой представлены все виды стандартных сообщений, которые могут появиться в ячейках таблицы при обнаружении программой Excel ошибочных действий пользователя, и даны рекомендации, как их устранить.
Вид сообщения | Расшифровка сообщения об ошибке и рекомендации, как ее исправить. |
##### | ##### появляется, когда вводимое число не умещается в ячейке. В этом случае следует увеличить ширину столбца. |
#ЗНАЧ! | #ЗНАЧ! появляется, когда в формуле используется недопустимый тип аргумента или операнда. Например, вместо числового или логического значения для оператора или функции введен текст. |
#ДЕЛ/0 | #ДЕЛ/0! появляется, когда в формуле делается попытка деления на нуль. Чаще всего это случается, когда в качестве делителя используется ссылка на ячейку, содержащую нулевое или пустое значение. |
#ИМЯ? | #ИМЯ? появляется, когда имя, используемое в формуле, было удалено или не было ранее определено. Для исправления определите или исправьте имя области данных, имя функции и др. |
#Н/Д | #Н/Д Неопределенные данные — данные для вычислений еще не введены! Формула введена правильно, но результата пока нет из-за отстуствия данных во влияющих ячейках. Введите во влияющие ячейки данные и сообщение об ошибке будет автоматически заменено результатом вычислений. |
#ССЫЛКА! | #ССЫЛКА! появляется, когда в формуле используется недопустимая ссылка на ячейку. Например, если ячейки были удалены или в эти ячейки было помещено содержимое других ячеек. |
#ЧИСЛО! | #ЧИСЛО! появляется, когда в функции с числовым аргументом используется неверный формат или значение аргумента. |
#ПУСТО! | #ПУСТО! появляется, когда задано пересечение двух областей, которые в действительности не имеют общих ячеек. Чаще всего ошибка указывает, что допущена ошибка при вводе ссылок на диапазоны ячеек. |
Практическое задание к
«Ошибки Excel. Что означают и как их убрать».
1. Скачать файл 4_Error .
При выполнении задания следует включить макросы, т.е. согласиться с оповещением системы безопасности на подключение к данным.
2. Открыть рабочий лист «Зависимости».
3. Выполнить последовательность действий, перечисленных ниже.
- В ячейку В2 ввести число 10.
- В ячейку В5 ввести число 2.
- В ячейку D3 ввести формулу =В2/В5 (нажать Enter).
- В ячейку Е6 введите формулу =D3 (нажать Enter).
- Сделать активной ячейку D3.
4. Вызвать на экран панель инструментов Зависимости. Если таковой не окажется в основном списке панелей инструментов, появляющейся после Вид/Панели инструментов (для MS Office 2003), тогда выберите пункт Настройка и подключите панель Зависимости. Для MS Office 2007, необходимо на ленте активировать вкладку Формулы/Зависимости формул .
5. Щёлкнуть по пиктограмме Влияющие ячейки и понять, что показывают появившиеся стрелки.
6. Щёлкнуть по пиктограмме Зависимые ячейки и понять, что показывают появившиеся стрелки.
Щёлкнуть по пиктограмме Убрать все стрелки.
7. Замените в ячейке В5 цифру 2 на цифру О (ноль).
8.Запись #ДЕЛ/O! сообщает о невозможности деления на O (ноль).
9. Повторить действия пунктов 5 и 6.
10. Ознакомиться с возможными видами стандартных сообщений, которые могут появиться в ячейках таблицы при обнаружении программой Excel ошибочных действий пользователя, на листе Список ошибок.
11. Выполнить самостоятельно задание на листе Ошибки. Сверить свои результаты с ответами на соответствующем листе.
- Относительные и абсолютные ссылки в формулах Excel
- Как удалить все пустые строки в таблице Excel
- Полезные уроки по Excel
- Ввод данных в ячейки таблицы Excel
- Найти в Excel 2007 то, что было в Еxcel 2003
- Как отобразить гривны в табличном редакторе Excel
- Вставить рисунок в Excel
- Строки в Excel
- Как запаролить файл в MS Office Excel 2013
- Спецсимволы для вставки в анкету
coded by nessus
Во время работы с большими объемами информации, особенно когда ее обработка осуществляется формулами или макросами, важно, чтобы данные не имели ошибок, которые способны повлиять на итог. Сложности в получении корректных исходников появляются, когда они поступают из неструктурированных источников (плохо спроектированные базы данных, ручное заполнение таблиц и форм незаинтересованными в результате людьми). Особенно трудно добиться правильного оформления по определенной маске (шаблону). Например, дату в виде строки можно записать несколькими способами:
- 01.01.2001;
- 01/01/2001;
- 1 января 2001 года и т.д.
В статье описывается функционал, позволяющий упростить процесс сбора и проверки данных в Excel.
Где находится?
Для настройки параметров проверки вводимых значений необходимо на вкладке «Данные» в области «Работа с данными» кликнуть по иконке «Проверка данных» либо выбрать аналогичный пункт из раскрывающегося меню:
На экране появиться окно с настройками по умолчанию, где в качестве типа данных может быть использовано любое значение:
Настройка условия проверки
Изначально требуется выбрать тип проверяемых данных, что будет являться первым условием. Всего предоставлено 8 вариантов:
- Целое число;
- Действительное число;
- Список;
- Дата;
- Время;
- Длина текста;
- Другой.
В соответствии с выбранным пунктом, появляется возможность выбора дополнительных условий. Для чисел, дат, времени и длины текста возможно указать ограничения: меньше, больше, диапазон и т.п. К списку обязательно привязывается источник, а пункт «другой» предлагает ввести формулу, возвращающую логическое значение.
Самым необычным видом является выпадающий список.
Он позволяет выбирать значения, указанные в качестве источника и ограничивать допустимые значения им же. Также возможно создавать динамические выпадающие списки.
Функционал проверки данных в Excel позволяет настраивать всплывающие подсказки для ячеек листа. Для этого следует перейти на вторую вкладку окна проверки вводимых значений – «Сообщение для ввода».
На изображении показан пример возможного сообщения для ячейки, в которую вносятся целые числа от 1 до 31 (настройки вкладки «Параметры»). Заголовок и сообщения указываются по Вашему усмотрению, каких-либо правил к их оформлению нет. Не забудьте установить галочку на поле «Отображать подсказку, если ячейка является текущей», иначе сообщение будет деактивировано.
Пример всплывающей подсказки в Excel:
Вывод сообщения об ошибке
Последняя вкладка окна проверки данных позволяет настроить поведение и вывод сообщений при обнаружении ошибочного значения.
Существует три варианта сообщений, отличающихся по поведению:
- Останов;
- Предупреждение;
- Сообщение.
Останов является сообщением об ошибке и позволяет произвести только 2 действия: отменить ввод и повторить ввод. В случае отмены новое значение будет изменено на предыдущее. Повтор ввода дает возможность скорректировать новое значение.
Предупреждение более лояльно в сравнении с остановом, так как позволяет оставлять значение, не соответствующее условиям проверки, после подтверждения ввода пользователем.
Сообщение выводить ошибку в виде простой информации и дает возможность отменить последнее действие.
Заголовок и сообщение заполняются по Вашему желанию.
Пример вывода одной и той же ошибки, но под разными видами:
Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.
У Вас недостаточно прав для комментирования.
Ошибки в Excel возникают довольно часто. Вы, наверняка, замечали странные значения в ячейках, вместо ожидаемого результата, которые начинались со знака #. Это говорит о том, что формула возвращает ошибку. Чтобы избавиться от ошибки, Вы должны исправить ее причину, а они могут быть самыми разными.
Несоответствие открывающих и закрывающих скобок
Самым распространенным примером возникновения ошибок в формулах Excel является несоответствие открывающих и закрывающих скобок. Когда пользователь вводит формулу, Excel автоматически проверяет ее синтаксис и не даст закончить ввод, пока в ней присутствует синтаксическая ошибка.
Например, на рисунке выше мы намеренно пропустили закрывающую скобку при вводе формулы. Если нажать клавишу Enter, Excel выдаст следующее предупреждение:
В некоторых случаях Excel предлагает свой вариант исправления ошибки. Вы можете либо согласиться с Excel, либо исправить формулу самостоятельно. В любом случае слепо полагаться на это исправление ни в коем случае нельзя. Например, на следующем рисунке Excel предложил нам неправильное решение.
Ячейка заполнена знаками решетки
Бывают случаи, когда ячейка в Excel полностью заполнена знаками решетки. Это означает один из двух вариантов:
-
- Столбец недостаточно широк для отображения всего содержимого ячейки. Для решения проблемы достаточно увеличить ширину столбца, чтобы все данные отобразились…
…или изменить числовой формат ячейки.
- Столбец недостаточно широк для отображения всего содержимого ячейки. Для решения проблемы достаточно увеличить ширину столбца, чтобы все данные отобразились…
- В ячейке содержится формула, которая возвращает некорректное значение даты или времени. Думаю, Вы знаете, что Excel не поддерживает даты до 1900 года. Поэтому, если результатом формулы оказывается такая дата, то Excel возвращает подобный результат.
В данном случае увеличение ширины столбца уже не поможет.
Ошибка #ДЕЛ/0!
Ошибка #ДЕЛ/0! возникает, когда в Excel происходит деление на ноль. Это может быть, как явное деление на ноль, так и деление на ячейку, которая содержит ноль или пуста.
Ошибка #Н/Д
Ошибка #Н/Д возникает, когда для формулы или функции недоступно какое-то значение. Приведем несколько случаев возникновения ошибки #Н/Д:
- Функция поиска не находит соответствия. К примеру, функция ВПР при точном поиске вернет ошибку #Н/Д, если соответствий не найдено.
- Формула прямо или косвенно обращается к ячейке, в которой отображается значение #Н/Д.
- При работе с массивами в Excel, когда аргументы массива имеют меньший размер, чем результирующий массив. В этом случае в незадействованных ячейках итогового массива отобразятся значения #Н/Д.Например, на рисунке ниже видно, что результирующий массив C4:C11 больше, чем аргументы массива A4:A8 и B4:B8.
Нажав комбинацию клавиш Ctrl+Shift+Enter, получим следующий результат:
Ошибка #ИМЯ?
Ошибка #ИМЯ? возникает, когда в формуле присутствует имя, которое Excel не понимает.
- Например, используется текст не заключенный в двойные кавычки:
- Функция ссылается на имя диапазона, которое не существует или написано с опечаткой:
В данном примере имя диапазон не определено.
- Адрес указан без разделяющего двоеточия:
- В имени функции допущена опечатка:
Ошибка #ПУСТО!
Ошибка #ПУСТО! возникает, когда задано пересечение двух диапазонов, не имеющих общих точек.
- Например, =А1:А10 C5:E5 – это формула, использующая оператор пересечения, которая должна вернуть значение ячейки, находящейся на пересечении двух диапазонов. Поскольку диапазоны не имеют точек пересечения, формула вернет #ПУСТО!.
- Также данная ошибка возникнет, если случайно опустить один из операторов в формуле. К примеру, формулу =А1*А2*А3 записать как =А1*А2 A3.
Ошибка #ЧИСЛО!
Ошибка #ЧИСЛО! возникает, когда проблема в формуле связана со значением.
- Например, задано отрицательное значение там, где должно быть положительное. Яркий пример – квадратный корень из отрицательного числа.
- К тому же, ошибка #ЧИСЛО! возникает, когда возвращается слишком большое или слишком малое значение. Например, формула =1000^1000 вернет как раз эту ошибку.
Не забывайте, что Excel поддерживает числовые величины от -1Е-307 до 1Е+307.
- Еще одним случаем возникновения ошибки #ЧИСЛО! является употребление функции, которая при вычислении использует метод итераций и не может вычислить результат. Ярким примером таких функций в Excel являются СТАВКА и ВСД.
Ошибка #ССЫЛКА!
Ошибка #ССЫЛКА! возникает в Excel, когда формула ссылается на ячейку, которая не существует или удалена.
- Например, на рисунке ниже представлена формула, которая суммирует значения двух ячеек.
Если удалить столбец B, формула вернет ошибку #ССЫЛКА!.
- Еще пример. Формула в ячейке B2 ссылается на ячейку B1, т.е. на ячейку, расположенную выше на 1 строку.
Если мы скопируем данную формулу в любую ячейку 1-й строки (например, ячейку D1), формула вернет ошибку #ССЫЛКА!, т.к. в ней будет присутствовать ссылка на несуществующую ячейку.
Ошибка #ЗНАЧ!
Ошибка #ЗНАЧ! одна из самых распространенных ошибок, встречающихся в Excel. Она возникает, когда значение одного из аргументов формулы или функции содержит недопустимые значения. Самые распространенные случаи возникновения ошибки #ЗНАЧ!:
- Формула пытается применить стандартные математические операторы к тексту.
- В качестве аргументов функции используются данные несоответствующего типа. К примеру, номер столбца в функции ВПР задан числом меньше 1.
- Аргумент функции должен иметь единственное значение, а вместо этого ему присваивают целый диапазон. На рисунке ниже в качестве искомого значения функции ВПР используется диапазон A6:A8.
Вот и все! Мы разобрали типичные ситуации возникновения ошибок в Excel. Зная причину ошибки, гораздо проще исправить ее. Успехов Вам в изучении Excel!
Оцените качество статьи. Нам важно ваше мнение:
Дата: 24 декабря 2015 Категория: Excel Поделиться, добавить в закладки или статью
Ошибки в Экселе – непременный спутник всех, кто пишет формулы. Когда выражение в ячейке рассчитать невозможно, программа отображает в ячейке сообщение об ошибке. Оно начинается со знака «#», после которого записывается имя ошибки. Этого не нужно пугаться, если вы ориентируетесь в функциях Эксель и умеете следовать простейшей логике математических операций – легко найдёте и исправите ошибку.
Если ячейка полностью заполнена знаками решётки (#), это вовсе не ошибка. В ячейке недостаточно места для отображения результата. Увеличьте размеры ячейки или уменьшите шрифт, чтобы результат мог отобразиться.
Типы ошибок
Если ошибка всё же произошла, помочь в её исправлении поможет расшифровка:
Ошибка | Описание |
#ДЕЛ/0! | Ошибка возникает при попытке деление на ноль |
#ИМЯ? | Программа не может распознать введенное имя. Например, вы ошиблись при написании имени функции, или не заключили текстовую строку в кавычки |
#Н/Д | Данные недоступны. Например, функция поиска не нашла ни одного значения |
#ПУСТО! | Вы запросили пересечение диапазонов, которые не пересекаются |
#ЧИСЛО! | Проблема в одном из числовых значений, которые используются в формуле. Например, Вы пытаетесь извлечь квадратный корень из отрицательного числа. В классической математике эта операция лишена смысла |
#ССЫЛКА! | Формула содержит ссылку, которой нет. Например, вы удалили ячейку, на которую она ссылается |
#ЗНАЧ! | Формула содержит недопустимые компоненты. Часто такая ошибка возникает при нарушении синтаксиса формул |
Когда в ячейке формула с ошибкой, возле нее появляется маркер. Нажав на него, вы можете почитать справку по этой ошибке. А еще можно посмотреть этапы вычисления. Выберите этот пункт, и программа покажет окно, где место ошибки будет подчёркнуто. Это лучший способ определить место, где возникает ошибка.
Кроме того, можно обойтись без исправления таких ошибок, а просто их обойти с помощью функций. Но это должно быть уместно. Ошибки нужно обходить, только если нельзя исправить. В противном случае, результаты расчетов могут быть искажены.
Отслеживание ошибки через этапы вычисления
Циклические ссылки в Excel
Еще один тип ошибки – это циклическая ссылка. Она возникает, когда вы ссылаетесь на ячейку, значение которой зависит от той, в которой вы пишете формулу. Например, в клетке А1 записана формула =А2+1, а в А2 написать =A1, возникнет циклическая ссылка, которая будет пересчитываться бесконечно. В этом случае, программа предупреждает о появлении циклической ссылки, останавливает расчет «зацикленных формул». В левой части ячеек появляется двунаправленная стрелка. Придётся исправить возникшую ошибку и повторить расчет.
Циклическая ссылка в Excel
Иногда случается сложное «зацикливание», когда циклическая ссылка образуется с несколькими промежуточными формулами.
Чтобы отследить такие ошибки, выполните Формулы – Зависимости формул – Проверка наличия ошибок – Циклические ссылки. В выпадающем списке программа выводит адреса ячеек, создающих бесконечный цикл. Остаётся только исправить формулы в этих клетках.
Отслеживание циклических ссылок
В Excel можно попытаться рассчитать результат зацикленных формул. Для этого установите галочку Файл – Параметры – Формулы – Включить итеративные вычисления. В этом же блоке можно задать максимальное количество итераций (просчётов) для нахождения баланса и допустимую погрешность. В большинстве случаев этого делать не нужно, поэтому я рекомендую эту галку не устанавливать. Тем не менее, когда Вы знаете, что зацикленные формулы верны и их расчет приведет к устойчивому результату — почему бы это не сделать?
Вот и всё про типы ошибок в Эксель. В этой короткой статье вы получили достаточно информации, чтобы справиться с самыми распространенными ошибками в Excel путем анализа возвращаемого значения. А вот расширенный перечень ошибок читайте в моей новой статье! Готов ответить на ваши вопросы – пишите в комментариях.
В следующей статье я расскажу о применении функций в расчетах. Стоит ли говорить, что функции Эксель — «наше всё»?
Думаю, нет. Потому, переходите и читайте, это будет первый шаг в мир сложных формул с правильными результатами!
Поделиться, добавить в закладки или статью
Когда вы, наконец, настроили источники данных и формируете данные именно так, как вам нужно, это очень важно. Надеемся, что при обновлении данных из внешнего источника данные будут проходить плавно. Но это не всегда так. Изменение потока данных на этом пути может привести к проблемам, которые при попытке обновить данные могут стать ошибками. Некоторые ошибки может быть легко исправить, некоторые из них могут быть временными, а некоторые трудно диагностировать. Вот что следует сделать, это набор стратегий, которые можно использовать для обработки ошибок, которые вам последуют.
При обновлении данных могут возникать ошибки двух типов.
Местных Если в книге Excel возникает ошибка, по крайней мере, ваши усилия по устранению неполадок ограничены и ими можно управлять. Возможно, обновленные данные вызывали ошибку с функцией или создавали недопустимые условия в списке. Эти ошибки надоедливы, но их довольно просто отслеживать, определять и исправлять. Excel улучшена обработка ошибок с помощью более понятных сообщений и контекстных ссылок на целевые разделы справки, которые помогут вам разобраться и устранить проблему.
Удаленного Однако ошибки, которые приходят из удаленного внешнего источника данных, являются другими. Произошла что-то в системе, которая может быть на улице, на полпути по всему миру или в облаке. Для таких типов ошибок требуется другой подход. Распространенные удаленные ошибки:
-
Не удалось подключиться к службе или ресурсу. Проверьте подключение.
-
Не удалось найти файл, к который вы пытаетесь получить доступ.
-
Сервер не отвечает и, возможно, находится в состоянии обслуживания.
-
Это содержимое не доступно. Возможно, он был удален или временно недоступен.
-
Подождите… данные загружаются.
Вот несколько советов, которые помогут вам справиться с ошибками, которые могут возникнуть.
Поиск и сохранение конкретной ошибки Сначала проверьте области Запросы & connections (Выберите Data > Queries & Connections, выберите подключение, а затем отобразите вылет). Узнайте, какие ошибки произошли при доступе к данным, и обратите внимание на дополнительные сведения. Затем откройте запрос, чтобы увидеть все конкретные ошибки в каждом шаге запроса. Все ошибки отображаются на желтом фоне для удобной идентификации. Запишите сообщение об ошибке или запишите ее на экране, даже если вы не полностью понимаете ее. Коллега, администратор или служба поддержки в вашей организации могут помочь вам понять, что произошло, и предложить решение. Дополнительные сведения см. в теме Работа с ошибками в Power Query.
Получить сведения о справке На сайте Office справки и обучения. Она не только содержит большой объем справки, но и сведения об устранении неполадок. Дополнительные сведения см. в устранении и обходных решениях недавних проблем в Excel для Windows.
Использование технического сообщества Используйте веб-Community Майкрософт для поиска обсуждений, относящихся к вашей проблеме. Весьма вероятно, что вы не первый, кто испытывает проблему, другие люди занимаются ее решением и даже могут найти решение. Дополнительные сведения см. в Microsoft Excel Community и Office Answers Community.
Поиск в Интернете Используйте предпочитаемую поисковую система для поиска дополнительных сайтов в Интернете, которые могут предоставлять обсуждения или подсказки. Это может быть отнимает много времени, но это может привести к более широкой сети для того, чтобы найти ответы на наиболее сложные вопросы.
Обратитесь в Office поддержки На этом этапе, скорее всего, вы понимаете проблему гораздо лучше. Это поможет вам сосредоточиться на беседе и сократить время, затраченное на поддержку Майкрософт. Дополнительные сведения см. в Microsoft 365 и Office службе поддержки клиентов.
Возможно, вам не удастся устранить проблему, но вы можете точно определить, в чем заключается проблема, чтобы помочь другим понять ситуацию и решить ее за вас.
Проблемы со службами и серверами Скорее всего, причина — периодические ошибки сети и связи. Лучше всего подождите и попробуйте еще раз. Иногда проблема просто утихает.
Изменения расположения или доступности База данных или файл были перемещены, повреждены, переведены в автономный режим на обслуживание или аварийно сбой базы данных. Дисковые устройства могут быть повреждены, а файлы будут потеряны. Дополнительные сведения см. в этой Windows 10.
Изменения в проверке подлинности и конфиденциальности Неожиданно может произойти, что разрешение больше не работает или в параметр конфиденциальности было внося изменение. Оба события могут препятствовать доступу к внешнему источнику данных. Обратитесь к администратору или администратору внешнего источника данных, чтобы узнать, что изменилось. Дополнительные сведения см. в настройкахи разрешениях источника данных и Настройка уровней конфиденциальности.
Открытые или заблокированные файлы Если открыт текст, CSV или книга, изменения, внесенные в файл, не включаются в обновление до тех пор, пока файл не будет сохранен. Кроме того, если файл открыт, он может быть заблокирован и к нему нельзя получить доступ, пока он не будет закрыт. Это может произойти, если другой человек использует версию Excel. Попросите их закрыть файл или проверить его. Дополнительные сведения см. в статьи Разблокировкафайла, заблокированного для редактирования.
Изменения схем на заднем Кто-то изменяет имя таблицы, имя столбца или тип данных. Это почти никогда не разумно, может иметь огромное влияние и особенно опасно для баз данных. Одной из них является то, что группа управления базами данных наила правильные средства контроля, чтобы избежать этого, но происходят спапцы.
Блокирование ошибок при сложении запросов Power Query пытается повысить производительность, когда это возможно. Для более производительности и емкости часто бывает лучше выполнить запрос к базе данных на сервере. Этот процесс называется сгибом запроса. Тем не менее Power Query блокирует запрос, если существует вероятность компрометации данных. Например, слияние определено между таблицей книги и SQL Server таблицей. Для конфиденциальности данных книги за установлено SQL Server конфиденциальность данных организации. Поскольку политика конфиденциальности является более строгой, чем в организации, Power Query блокирует обмен информацией между источниками данных. Сгиб запроса происходит за кадром, поэтому вас может удивить, когда возникает ошибка блокировки. Дополнительные сведения см. взадачах Основные сведения о сгибе запросов, Сгибзапросов и Сгиб с помощью диагностики запросов.
Часто с помощью Power Query вы можете точно определить, в чем заключается проблема, и устранить ее самостоятельно.
Переименованные таблицы и столбцы Изменения исходных имен таблиц и столбцов или столбцов почти наверняка приводят к проблемам при обновлении данных. Запросы используют имена таблиц и столбцов для формировать данные практически на каждом этапе. Не изменяйте или удаляйте исходные имена таблиц и столбцов, если только их не нужно использовать в источнике данных.
Изменения типов данных Изменение типа данных иногда может привести к ошибкам или непредвиденным результатам, особенно в функциях, для которых в аргументах требуется определенный тип данных. Примерами могут быть замена текстового типа данных в числовой функции или попытка вычисления с нечисловой типом данных. Дополнительные сведения см. в теме Добавление и изменение типов данных.
Ошибки уровня ячейки Такие типы ошибок не предотвращают загрузку запроса, но отображают в ячейке сообщение Ошибка. Чтобы увидеть сообщение, выберите whitespace в ячейке таблицы, содержащей ошибку. Вы можете удалить, заменить или просто сохранить ошибки. Примеры ошибок в ячейках:
-
Преобразования Вы попытались преобразовать ячейку, содержащую 0, в целое число.
-
Математические Вы пытаетесь умножить текстовое значение на числовое значение.
-
Объединения Вы попытались объединить строки, но одна из них числовая.
Безопасно экспериментируйте и итерации Если вы не уверены, что преобразование может иметь отрицательное влияние, скопируйте запрос, проверьте изменения и итерации с помощью вариантов команды Power Query. Если команда не работает, просто удалите созданное вами шаг и попробуйте еще раз. Чтобы быстро создать образец данных с одной схемой и структурой, создайте Excel таблицу из нескольких столбцов и строк и импортировать их (выберите данные > Из таблицы илидиапазона). Дополнительные сведения см. в таблицах Создание таблицы и Импорт из Excel таблицы.
Когда вы впервые будете понять, что можно делать с данными в редакторе Power Query, вам может показаться, что вы ребенок в конфетном магазине. Но не хочется есть все конфеты. Вы хотите избежать преобразования, которое может непреднамеренно вызывать ошибки обновления. Некоторые операции, например перемещение столбцов в другое место таблицы, не должны приводить к ошибкам в обновлении, так как Power Query отслеживает столбцы по их именам.
Другие операции могут привести к ошибкам обновления. Одним из общих правил может быть ваш световой свет. Не внося существенных изменений в исходные столбцы. Чтобы безопасно воспроизвести столбец, скопируйте исходный столбец с командой(Добавитьстолбец, Настраиваемый столбец, Дублировать столбец и так далее), а затем внести изменения в скопированную версию исходного столбца. Вот операции, которые иногда могут привести к ошибкам обновления, и некоторые из лучших методик, которые помогут ухладить работу.
Операции |
Руководство |
---|---|
Фильтрации |
Повышение эффективности за счет максимально ранней фильтрации данных в запросе и удаления ненужных данных для уменьшения лишней обработки. Кроме того, с помощью автофильтра можно искать или выбирать определенные значения, а также использовать фильтры для определенных типов, доступные в столбцах даты, даты и времени и времени (например, Месяц,Неделя,День). |
Типы данных и заглавные колонок столбцов |
Power Query автоматически добавляет в запрос два шага сразу после первого шага: «Продвиганые заглавные колонок», которая преобразует первую строку таблицы в заглавный, и Changed Type(Измененный тип), который преобразует значения из типа Данных Any в тип данных на основе проверки значений из каждого столбца. Это удобно, но иногда может потребоваться явно контролировать это поведение, чтобы предотвратить ошибки случайного обновления. Дополнительные сведения см. в статьях Добавление и изменение типов данных и Повысить или понизить их в строках и столбцах. |
Переименование столбца |
Избегайте переименования исходных столбцов. Используйте команду Переименовать для столбцов, добавленных другими командами или действиями. Дополнительные сведения см. в статье Переименование столбца. |
Разделить столбец |
Разделение копий исходного столбца, а не исходного столбца. Дополнительные сведения см. в статье Разделение текстового столбца. |
Объединение столбцов |
Объединять копии исходных столбцов, а не исходных. Дополнительные сведения см. в статье Объединение столбцов. |
Удаление столбца |
Если нужно сохранить небольшое количество столбцов, используйте выбор столбца, чтобы сохранить нужные. Рассмотрим разницу между удалением столбцов и удалением других столбцов. Когда вы удаляете другие столбцы и обновляете данные, новые столбцы, добавленные в источник данных после последнего обновления, могут остаться незащищенными, так как они будут считаться другими столбцы при повторном выполнении в запросе шага Удалить столбец. Такая ситуация не возникает при явном удалите столбец. Наконечник Скрыть столбец (как в Excel) не Excel. Однако если у вас много столбцов и вы хотите скрыть многие из них, чтобы сосредоточиться на своей работе, вы можете сделать следующее: удалить столбцы, запомнить созданный шаг, а затем удалить его перед загрузкой запроса обратно на таблицу. Дополнительные сведения см. в статье Удаление столбцов. |
Замена значения |
При замене значения источник данных не редактируется. Вместо этого нужно изменить значения в запросе. При следующем обновлении данных ищемые значения могут немного измениться или перестать быть там, поэтому команда Заменить может не работать так, как планировалось изначально. Дополнительные сведения см. в области Замена значений. |
Pivot и Unpivot |
При использовании команды Столбец сводной сводной столбца при сводном столбце может возникнуть ошибка, при этом не агрегируются значения, но возвращается больше одного значения. Такая ситуация может возникнуть после операции обновления, которая меняет данные несмежным образом. Используйте команду Открепить другие столбцы, если известны не все столбцы и вы хотите, чтобы новые столбцы, добавленные во время обновления, также были неотвечены. Используйте команду Открепить только выбранный столбец, если вы не знаете количество столбцов в источнике данных и хотите, чтобы выбранные столбцы оставались неотвеченными после обновления. Дополнительные сведения см. в статьях Сводные столбцы и Ото всех столбцов. |
Предотвращение ошибок Если внешним источником данных управляет другая группа в организации, им необходимо знать о вашей зависимости от них и избегать изменений в их системах, которые могут привести к проблемам ниже. Фиксировать влияние на данные, отчеты, диаграммы и другие артефакты, которые зависят от данных. Настройте линии связи, чтобы убедиться в том, что они понимают последствия, и примите необходимые меры, чтобы обеспечить бесперебойную работу. Находите способы создания элементов управления, которые минимизируют ненужные изменения и предугадать последствия необходимых изменений. Конечно, это легко сказать и иногда сложно сделать.
Future-proof with query parameters Используйте параметры запроса для уменьшения изменений, например расположения данных. Вы можете создать параметр запроса, чтобы заменить новое расположение, например путь к папке, имя файла или URL-адрес. Существуют и другие способы уменьшения проблем с помощью параметров запроса. Дополнительные сведения см. в теме Создание запроса с параметрами.
См. также
Справка по Power Query для Excel
Методики работы с Power Query (docs.com)
Хитрости »
1 Май 2011 197758 просмотров
Связанные выпадающие списки
Скачать файл, используемый в видеоуроке:
Связанные выпадающие списки.xls (216,5 KiB, 3 066 скачиваний)
Чтобы понять о чем пойдет речь в статье сначала необходимо понимать что такое выпадающий список и как его создать. Теперь попробуем разобраться что значит выражение «связанный выпадающий список». Я бы еще назвал такой список зависимым. Т.е. когда список значений одного выпадающего списка зависит от значения, выбранного в другом выпадающем списке или просто забитого в ячейку. Представим ситуацию: есть ячейка А2. В ней создан выпадающий список со значениями: Овощи, Фрукты, Мясо, Напитки. А в ячейке В2 нам нужен такой список, чтобы значения этого самого списка изменялись в зависимости от того, какое значение мы укажем в ячейке А2 — т.е. список выбранной категории продуктов. Например выбрали в А2 значение Овощи — в В2 появился выпадающий список, содержащий значения: Морковь, Капуста, Картошка, Редиска, Помидоры. Выбрали в А2 Мясо — в В2 появился выпадающий список, содержащий значения: Говядина, Телятина, Свинина, Курица, Индейка. И т.д.
Подготовка
Для начала нам потребуется создать все эти списки. Что-то вроде этого:
Далее для каждого из этих списков необходимо назначить именованный диапазон. Создать можно любым способом из описанных в этой статье. Главное помнить — если сами списки расположено на листе, отличном от того, на котором списки выпадающие — то обязательно создавать именованный диапазон с назначением области действия — Книга.
В приложенном к статье примере диапазоны имеют имена категорий — их можно видеть в заголовках.
Если ваши категории содержат пробел — необходимо заменить его на нижнее подчеркивание (_) или удалить, т.к. в качестве именованного диапазона такое значение не подойдет и ничего в результате не получится.
Создание зависимых списков
В ячейке А2 создаем «список списков» — основной список, на основании значений которого будет создаваться второй список. Этот список может быть создан любым способом (как создать выпадающий список). Назовем его Список категорий.
В ячейке В2 потребуется создать список на основании формулы, хоть по сути и так же, как и остальные: вкладка Данные (Data)—Проверка данных (Data validation)—Список (List). Но теперь вместо прямого указания имени списка необходимо указать ссылку на именованный диапазон, который мы выберем в Списке категорий(ячейка А2), на основании его имени. В этом нам поможет функция ДВССЫЛ (INDIRECT). Просто записываем эту формулу в поле Источник (Source): =ДВССЫЛ($A2)
На что обратить внимание: если вы планируете распространять такой список на столбец, то ссылка должна выглядеть именно так: $A2. Перед цифрой не должно быть знака доллара ($A$2 — неправильно). Иначе зависимый список будет всегда формироваться исключительно на основании значении ячейки А2.
Источник из другой книги
Сами списки товара могут находится и в другой книге. Если книга называется Книга со списком.xls и на Лист1 в ячейке А1 в этой книге находится имя нужного нам списка, то формула будет выглядеть так:
=ДВССЫЛ(«‘[Книга со списком.xls]Лист1’!»&$A$1)
На что обратить внимание: лучше всегда перед именем книги и после имени листа ставить апостроф — ‘. Так вы избежите проблем и недопонимания, если имя листа или книги содержит пробелы и иные специфические символы. В отличии от списков внутри одной книги в данном случае знак доллара должен быть и перед буквой и перед цифрой. В ином случае возможны ошибки (если, конечно, это не было сделано специально с пониманием того, что делалось).
Ограничения: данный способ создания списков хорош, но не обошлось и без ложки дегтя. Даже двух:
- обе книги должны быть открыты. Если вы закроете книгу со списками, то получите ошибку — выпадающие списки просто перестанут работать
- созданные подобным образом связанные списки не будут работать с динамическими именованными диапазонами
И ничего с этими ограничениями не поделать при подобном подходе.
Скачать пример
Tips_Lists_Connect_Validation.xls (26,5 KiB, 18 103 скачиваний)
Так же см.:
Выпадающие списки
Именованные диапазоны
Динамические именованные диапазоны
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Делаю зависимые списки для документа excel. Но у меня вылетает ошибка «при вычислении «источник» возникает ошибка»
Не могу понять в чем дело.
Вот ссылка на документ: https://yadi.sk/i/zqqR6l01wL3xz
Ошибка при создании зависимого списка в разделе «Манипуляции/товар»
-
Вопрос заданболее трёх лет назад
-
1783 просмотра
Пригласить эксперта
Всё у вас работает. Выберите значение из списка в ячейке C2, увидите список в ячейке D2.
-
Показать ещё
Загружается…
16 апр. 2023, в 20:27
15000 руб./за проект
16 апр. 2023, в 19:32
80000 руб./за проект
16 апр. 2023, в 18:58
2000 руб./за проект
Минуточку внимания
После ввода или корректировки формулы, а также при изменении любого значения функции бывает, что появляется ошибка формулы, а не требуемое значение. Всего табличный редактор распознает семь основных типов таких неправильных расчетов. Как выглядят ошибки в Excel и как их исправить, разберем ниже.
Ниже мы представим описание формул показанных на картинке с подробной информацией по каждой ошибке.
1. #ДЕЛ/О!
– «деление на 0», чаще всего возникает при попытке делить на ноль. То есть заложенная в ячейке формула, выполняя функцию деления, натыкается на ячейку, где с нулевым значением или стоит «Пусто». Чтобы устранить проблему, проверьте все участвующие в вычислениях ячейки и исправьте все недопустимые значения. Второе действие, приводящее к #ДЕЛ/О! – это ввод неверных значений в некоторые функции, такие как =СРЗНАЧ(), если при расчете в диапазоне значений стоит 0. Тот же результат спровоцируют незаполненные ячейки, к которым обращается формула, требующая для расчета конкретных данных.
2. #Н/Д
– «нет данных». Так Excel
помечает значения, непонятные формуле (функции). Введя неподходящие цифры в функцию, вы обязательно вызовете эту ошибку. При ее появлении проследите, все ли входные ячейки заполнены правильно, а особенно в тех из них, где светится такая же надпись. Часто встречается при использовании
3. #ИМЯ
? – «недопустимое имя», показатель некорректного имени формулы или какой-то ее части. Проблема исчезает, если проверить и подправить все названия и имена, сопровождающие алгоритм вычислений.
4. #ПУСТО!
– «в диапазоне пустое значение», сигнал о том, что где-то в расчете прописаны непересекающиеся области или проставлен пробел между указанными диапазонами. Довольно редкая ошибка. Выглядеть ошибочная запись может так:
СУММ(G10:G12 I8:J8)
Excel
не распознает такие команды.
5. #ЧИСЛО!
– ошибку вызывает формула, содержащая число, не соответствующее рамкам обозначенного диапазона.
6. #ССЫЛКА!
– предупреждает о том, что исчезли ячейки, связанные с этой формулой. Проверьте, скорее всего были удалены ячейки указанные в формуле.
7. #ЗНАЧ!
– неверно выбран тип аргумента для работы функции.
8. Бонус, ошибка #####
— ширина ячейки недостаточна для отображения всего числа
Кроме того, Excel
выдает предупреждение о неправильной формуле. Программа попытается подсказать вам, как именно следует сделать расстановку пунктуации (например скобок). Если предложенный вариант отвечает вашим требования, жмите «Да». Если подсказка требует ручной корректировки. Тогда выберите «Нет» и переставьте скобки сами.
Ошибки в Excel. Применение функции ЕОШИБКА
() для Excel 2003
Хорошо помогает ликвидировать ошибки в Excel
функция . Действует она путем нахождения ошибок в ячейки, если находит ошибку в формуле возвращает значение ИСТИНА и наоборот. В комбинации с =ЕСЛИ(), она позволят заменить значение если найдена ошибка.
Рабочая формула: =ЕСЛИ(ОШИБКА(выражение);ошибка;выражение).
ЕСЛИ(ЕОШИБКА
(А1/А2);””;А1/А2)
Пояснение: если при выполнении А1/А2 найдена ошибка, будет возвращено пусто («»). Если все прошло корректно (т.е. ЕОШИБКА
(А1/А2) = ЛОЖЬ), то рассчитывается А1/А2.
Ошибки в Excel.
Применение ЕСЛИОШИБКА() для Excel 2007 и выше
Одна из причин, почему я быстро перешел на Excel 2007 была ЕСЛИОШИБКА() (самая главная причина — это )
Функция еслиошибка содержит возможности обеих функций – ЕОШИБКА
() и ЕСЛИ(), но доступна в более новых версиях Excel, что очень удобно
Инструмент активируется следующим образом: =ЕСЛИОШИБКА(значение; значение при ошибке). Вместо «значение» ставится расчетное выражение/ссылка на ячейку, а вместо «значение при ошибке» — то, что следует вернуть при появлении неточности например, если при расчете А1/А2 выдается #ДЕЛ/О!
то формула будет выглядеть следующим образом:
ЕСЛИОШИБКА(А1/А2;””)
» качайте здесь
При создании сложных формул (да и просто невнимательности) в MS Excel ошибку совершить довольно легко. Обычно MS Excel в таких случаях выводит сообщения об ошибках или даже предлагает «правильный» на его взгляд вариант написания формулы, однако даже при наличии справочной системы, поначалу довольно сложно понять, чего же хочет от нас «глупая программа». В этой статье мы рассмотрим все типы ошибок возникающих в формулах MS Excel, и научимся их исправлять и понимать.
Ошибка #ЗНАЧ! (ошибка в значении)
Если бы был «топ ошибок MS Excel», первое место в нем принадлежало бы ошибке #ЗНАЧ!
. Как можно догадаться из названия, возникает она в том случае, когда в формулу или функцию подставлено неправильное значение. Если вы пытаетесь провести арифметические операции с текстом, или подставляете в функцию диапазон ячеек, когда требуется указать всего одну ячейку, результатом вычислений будет ошибка #ЗНАЧ!.
Как и говорилось — попытка сложить число и текст ставит MS Excel в тупик
Ошибка #ССЫЛКА! (неправильная ссылка на ячейку)
Одна из самых частых ошибок при вычислениях. Обозначает самую простейшую вещь — в формуле используется ссылка на ячейку которую вы или не создавали или ненароком удалили. Чаще всего #ССЫЛКА!
возникает когда вы удаляете «ненужный» столбец, некоторые ячейки которого, как оказывается, участвовали в вычислениях.
Ошибка #ДЕЛ/0! (деление на ноль)
Со школьной скамьи мы помним простое правило: на ноль делить нельзя! Ошибка #ДЕЛ/0!
— это предупреждение от MS Excel о том, что это базовое правило нарушено и вы все-таки пытаетесь разделить некое число на ноль. При этом сам «ноль» не обязателен — любая попытка разделить существующее число на «пустую» ячейку также вызовет эту ошибку.
Делить на ноль нельзя — пустая ячейка воспринимается MS Excel как тот же ноль
Ошибка #Н/Д (значение недоступно)
Ошибка #Н/Д
возникает в том случае, если в функции пропущен какой-то аргумент, или одно из используемых в формуле значений становится недоступно. Увидел #Н/Д — первым делом ищи чего в твоих вычислениях не хватает.
Применяю функцию ВПР, знак разделения поставил, а вот указать к какой ячейке он относится — забыл
Ошибка #ИМЯ? (недопустимое имя)
Ошибка #ИМЯ
— признак того, что вы и Excel друг друга не поняли. Вернее MS Excel не понял что вы имели ввиду — вы явно указываете на какой-то элемент, а программа его не может найти. В каких случаях это обычно происходит?
- В функции указана ячейка или диапазон ячеек с несуществующим (чаще всего с неправильно введенным) именем.
Попытка суммировать несуществующий диапазон с названием Столбец
- Текст внутри функции заключается в кавычки. Если этого не происходит (то есть вместо =»Вася» мы вводим =Вася), MS Excel приходит в полное недоумение.
Ещё одна простейшая ошибка — текст в функциях и формулах указывается в кавычках
- В названии функции случайно допущена опечатка.
Ошибка #ПУСТО! (пустое множество)
Ошибка #ПУСТО
чаще всего возникает когда в формуле пропущен один из операторов, но может возникать и в том случае, когда нам требуется найти пересечение двух диапазонов ячеек, а этого пересечения просто не существует.
Все бы хорошо, но забыл про второй знак «+»
Ошибка #ЧИСЛО! (неправильное число)
Ошибку #ЧИСЛО!
ms Excel выдает в тех случаях, когда результат математических вычислений в формуле порождает какой-то совершенно нереальный результат. Результат в виде предельно большого или малого числа, попытка вычислить корень из отрицательного числа — все это приведет к возникновению ошибки #ЧИСЛО!
Вычислить корень из отрицательного числа? Вас бы не понял не только Excel
Знаки «решетки» в ячейке Excel (#######)
В прошлом весьма распространенная «ошибка» MS Excel связанная с внезапным заполнением ячейки знаками решетки (#) могла быть вызвана тем, что в ячейку введено число которое не помещается в ней целиком (но только если ячейка имеет формат «числовой» или «дата»).
С появлением MS Office 2013 ошибка практически сошла на нет, так как «поумневший» Excel стал в большинстве случаев автоматически увеличивать ширину ячейки под число. Если же вы видите «решетки», проще всего избавиться от них увеличив ширину ячейки вручную.
Достаточно увеличить ширину столбца и проблема исчезнет
Если вы знаете в каких случаях в экселе возникает та или иная ошибка, вы скорее всего сразу поймете чем она вызвана. Однако программа ещё более упрощает вам работу и выводит рядом с ошибочным значением спецсимвол в виде значка восклицательного знака в желтом ромбе. При нажатии на него, вам будет предложен список возможных действий по исправлению ошибки.
Нажмите на значок, чтобы получить помощь в исправлении ошибки
В первой строке появившегося контекстного меню вы увидите полное название ошибки, во второй сможете вызвать подробную справку по ней, но самое интересное скрывает в себе третий пункт: «Показать этапы вычисления…
«.
«Показать этапы вычисления…» — программу не обманешь, точно выводит фрагмент формулы где допущена ошибка
Нажмите на него и в появившемся окне увидите тот самый фрагмент формулы где допущена ошибка — это особенно удобно, когда «распутывать» приходится целый клубок из громады вложенных друг в друга действий.
Ошибки в Excel возникают довольно часто. Вы, наверняка, замечали странные значения в ячейках, вместо ожидаемого результата, которые начинались со знака #
. Это говорит о том, что формула возвращает ошибку. Чтобы избавиться от ошибки, Вы должны исправить ее причину, а они могут быть самыми разными.
Несоответствие открывающих и закрывающих скобок
Самым распространенным примером возникновения ошибок в формулах Excel является несоответствие открывающих и закрывающих скобок. Когда пользователь вводит формулу, Excel автоматически проверяет ее синтаксис и не даст закончить ввод, пока в ней присутствует синтаксическая ошибка.
Например, на рисунке выше мы намеренно пропустили закрывающую скобку при вводе формулы. Если нажать клавишу Enter
, Excel выдаст следующее предупреждение:
В некоторых случаях Excel предлагает свой вариант исправления ошибки. Вы можете либо согласиться с Excel, либо исправить формулу самостоятельно. В любом случае слепо полагаться на это исправление ни в коем случае нельзя. Например, на следующем рисунке Excel предложил нам неправильное решение.
Ячейка заполнена знаками решетки
Бывают случаи, когда ячейка в Excel полностью заполнена знаками решетки. Это означает один из двух вариантов:
В данном случае увеличение ширины столбца уже не поможет.
Ошибка #ДЕЛ/0!
Ошибка #ДЕЛ/0!
возникает, когда в Excel происходит деление на ноль. Это может быть, как явное деление на ноль, так и деление на ячейку, которая содержит ноль или пуста.
Ошибка #Н/Д
Ошибка #Н/Д
возникает, когда для формулы или функции недоступно какое-то значение. Приведем несколько случаев возникновения ошибки #Н/Д
:
Ошибка #ИМЯ?
Ошибка #ИМЯ?
возникает, когда в формуле присутствует имя, которое Excel не понимает.
В данном примере имя диапазон не определено.
Ошибка #ПУСТО!
Ошибка #ПУСТО!
возникает, когда задано пересечение двух диапазонов, не имеющих общих точек.
Ошибка #ЧИСЛО!
Ошибка #ЧИСЛО!
возникает, когда проблема в формуле связана со значением.
Не забывайте, что Excel поддерживает числовые величины от -1Е-307 до 1Е+307.
- Еще одним случаем возникновения ошибки #ЧИСЛО!
является употребление функции, которая при вычислении использует метод итераций и не может вычислить результат. Ярким примером таких функций в Excel являются СТАВКА
и ВСД
.
Ошибка #ССЫЛКА!
Ошибка #ЗНАЧ!
Ошибка #ЗНАЧ!
одна из самых распространенных ошибок, встречающихся в Excel. Она возникает, когда значение одного из аргументов формулы или функции содержит недопустимые значения. Самые распространенные случаи возникновения ошибки #ЗНАЧ!
.
Когда вы вводите или редактируете формулу, а также когда меняется одно из входных значений функции, Excel может показать одну из ошибок вместо значения формулы. В программе предусмотрено семь типов ошибок. Давайте рассмотрим их описание и способы устранения.
- #ДЕЛ/О!
— данная ошибка практически всегда означает, что формула в ячейке пытается разделить какое-то значение на ноль. Чаще всего это происходит из-за того, что в другой ячейке, ссылающейся на данную, находится нулевое значение или значение отсутствует. Вам необходимо проверить все связанные ячейки на предмет наличия таких значений. Также данная ошибка может возникать, когда вы вводите неправильные значения в некоторые функции, например в ОСТАТ() , когда второй аргумент равен 0. Также ошибка деления на ноль может возникать, если вы оставляете пустые ячейки для ввода данных, а какая-либо формула требует некоторые данные. При этом будет выведена ошибка #ДЕЛ/0!
, что может смутить конечного пользователя. Для этих случаев вы можете использовать функцию ЕСЛИ() для проверки, например =ЕСЛИ(А1=0;0;В1/А1) . В этом примере функция вернет 0 вместо ошибки, если в ячейке А1 находится нулевое или пустое значение. - #Н/Д
— данная ошибка расшифровывается как недоступно, и это означает, что значение недоступно функции или формуле. Вы можете увидеть такую ошибку, если введете неподходящее значение в функцию. Для исправления проверьте прежде всего входные ячейки на предмет ошибок, особенно если в них тоже появляется данная ошибка. - #ИМЯ?
— данная ошибка возникает, когда вы неправильно указываете имя в формуле или ошибочно задаете имя самой формулы. Для исправления проверьте еще раз все имена и названия в формуле. - #ПУСТО!
— данная ошибка связана с диапазонами в формуле. Чаще всего она возникает, когда в формуле указывается два непересекающихся диапазона, например =СУММ(С4:С6;А1:С1) . - #ЧИСЛО!
— ошибка возникает, когда в формуле присутствуют некорректные числовые значения, выходящие за границы допустимого диапазона. - #ССЫЛКА!
— ошибка возникает, когда были удалены ячейки, на которые ссылается данная формула. - #ЗНАЧ!
— в данном случае речь идет об использовании неправильного типа аргумента для функции.
Если при вводе формулы вы случайно неправильно расставили скобки, Excel выведет на экран предупреждающее сообщение — см. рис. 1. В этом сообщении вы увидите предположение Excel о том, как их необходимо расставить. В случае если вы подтверждаете такую расстановку, нажмите Да
. Но зачастую требуется собственное вмешательство. Для этот нажмите Нет
и исправьте скобки самостоятельно.
Обработка ошибок с помощью функции ЕОШИБКА()
Перехватить любые ошибки и обработать их можно с помощью функции ЕОШИБКА() . Данная функция возвращает истину или ложь в зависимости от того, появляется ли ошибка при вычислении ее аргумента. Общая формула для перехвата выглядит так: =ЕСЛИ(ЕОШИБКА(выражение);ошибка; выражение) .
Функция если вернет ошибку (например, сообщение), если при расчете появляется ошибка. Например, рассмотрим следующую формулу: =ЕСЛИ(ЕОШИБКА(А1/А2);»»; А1/А2) . При возникновении ошибки (деление на 0) формула возвращает пустую строку. Если же ошибки не возникает, возвращается само выражение А1/А2 .
Существует другая, более удобная функция ЕСЛИОШИБКА() , которая совмещает две предыдущие функции ЕСЛИ() и ЕОШИБКА() : ЕСЛИОШИБКА(значение;значение при ошибке) , где: значение
— выражение для расчета, значение при ошибке
— возвращаемый результат в случае ошибки. Для нашего примера это будет выглядеть так: =ЕСЛИОШИБКА(А1/А2;»») .
Списки и диапазоны (5)
Макросы(VBA процедуры) (63)
Разное (39)
Баги и глюки Excel (3)
Как в ячейке с формулой вместо ошибки показать 0
Случаются ситуации, когда в рабочей книге на листах создано много формул, выполняющих различные задачи. При этом формулы созданы когда-то давно, возможно даже на вами. И формулы возвращают ошибки. Например #ДЕЛ/0! (#DIV/0!) . Эта ошибка возникает, если внутри формулы происходит деление на ноль: = A1 / B1 , где в B1 ноль или пусто. Но могут быть и другие ошибки(#Н/Д, #ЗНАЧ! и т.д.). Можно изменить формулу, добавив проверку на ошибку:
=IF(ISERR(A1 / B1),0, A1 / B1)
аргументы:
=ЕСЛИ(ЕОШ(1 аргумент);2 аргумент; 1 аргумент)
Эти формулы будут работать в любой версии Excel. Правда, функция ЕОШ не обработает ошибку #Н/Д (#N/A) . Чтобы так же обработать и #Н/Д необходимо использовать функцию ЕОШИБКА:
=ЕСЛИ(ЕОШИБКА(A1 / B1);0; A1 / B1)
=IF(ISERROR(A1 / B1),0, A1 / B1)
Однако далее по тексту я буду применять ЕОШ(т.к. она короче) и к тому же не всегда надо «не видеть» ошибки #Н/Д.
Но для версий Excel 2007 и выше можно применить чуть более оптимизированную функцию ЕСЛИОШИБКА (IFERROR)
:
=ЕСЛИОШИБКА(A1 / B1 ;0)
=IFERROR(A1 / B1 ,0)
аргументы:
=ЕСЛИОШИБКА(1 аргумент; 2 аргумент)
1 аргумент: выражение для вычисления
2 аргумент: значение или выражение, которое необходимо вернуть в ячейку в случае ошибки в первом аргументе.
Почему ЕСЛИОШИБКА лучше и я называю её более оптимизированной? Разберем первую формулу подробнее:
=ЕСЛИ(ЕОШ(A1 / B1);0; A1 / B1)
Если вычислить пошагово, то увидим, что сначала происходит вычисление выражения A1 / B1 (т.е. деление). И если его результат ошибка – то ЕОШ вернет ИСТИНА (TRUE) , которое будет передано в ЕСЛИ (IF) . И тогда функцией ЕСЛИ(IF) будет возвращено значение из второго аргумента 0.
Но если результат не является ошибочным и ЕОШ (ISERR) возвращает ЛОЖЬ (FALSE) – то функция заново будет вычислять уже вычисленное ранее выражение: A1 / B1
С приведенной формулой это особой роли не играет. Но если применяется формула вроде ВПР (VLOOKUP) с просмотром на несколько тысяч строк – то вычисление два раза может значительно увеличить время пересчета формул.
Функция же ЕСЛИОШИБКА (IFERROR) один раз вычисляет выражение, запоминает его результат и если он ошибочен возвращает записанное вторым аргументом. Если же ошибки нет, то возвращает запомненный результат вычисления выражения из первого аргумента. Т.е. вычисление по факту происходит один раз, что практически не будет влиять на скорость общего пересчета формул.
Поэтому если у вас Excel 2007 и выше и файл не будет использоваться в более ранних версиях – то имеет смысл использовать именно ЕСЛИОШИБКА (IFERROR) .
Для чего формулы с ошибками вообще исправлять? Обычно делается для более эстетичного отображения данных в отчетах, особенно если отчеты потом руководству отправляют.
Итак, есть на листе такие формулы, ошибки которых надо обработать. Если подобных формул для исправления одна-две(да даже 10-15) – то проблем почти нет заменить вручную. Но если таких формул несколько десятков, а то и сотен – проблема приобретает почти вселенские масштабы:-). Однако процесс можно упростить через написание относительно простого кода Visual Basic for Application.
Для всех версий Excel:
Sub
IfIsErrNull()
Const sToReturnVal As
String
= «0»
, vbInformation, «www.сайт»
Exit
Sub
End
If
For
Each
rc In
rr
If
rc.HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=»
& «IF(ISERR(»
& s & «),»
& sToReturnVal & «,»
& s & «)»
If
Left(s, 9) <> «IF(ISERR(»
Then
If
rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End
If
If
Err.Number Then
ss = rc.Address
rc.Select
Exit
For
End
If
End
If
End
If
Next
rc
If
Err.Number Then
MsgBox «Формулы обработаны»
Sub IfIsErrNull()
Const sToReturnVal As String = «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim rr As Range, rc As Range
Dim s As String, ss As String
On Error Resume Next
Set rr = Intersect(Selection, ActiveSheet.UsedRange)
If rr Is Nothing Then
MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www..HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=» & «IF(ISERR(» & s & «),» & sToReturnVal & «,» & s & «)»
If Left(s, 9) <> «IF(ISERR(» Then
If rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End If
If Err.Number Then
ss = rc.Address
rc.Select
Exit For
End If
End If
End If
Next rc
If Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _
Err.Description, vbInformation, «www..сайт»
End If
End Sub
Для версий 2007 и выше
Sub
IfErrorNull()
Const sToReturnVal As
String
= «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim
rr As
Range, rc As
Range
Dim
s As
String
, ss As
String
On
Error
Resume
Next
Set
rr = Intersect(Selection, ActiveSheet.UsedRange)
If
rr Is
Nothing
Then
MsgBox «Выделенный диапазон не содержит данных»
, vbInformation, «www.сайт»
Exit
Sub
End
If
For
Each
rc In
rr
If
rc.HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=»
& «IFERROR(»
& s & «,»
& sToReturnVal & «)»
If
Left(s, <> «IFERROR(»
Then
If
rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End
If
If
Err.Number Then
ss = rc.Address
rc.Select
Exit
For
End
If
End
If
End
If
Next
rc
If
Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: »
& ss & vbNewLine & _
Err.Description, vbInformation, «www.сайт»
Else
MsgBox «Формулы обработаны»
, vbInformation, «www.сайт»
End
If
End
Sub
Sub IfErrorNull()
Const sToReturnVal As String = «0»
«если необходимо вместо нуля возвращать пусто
«Const sToReturnVal As String = «»»»»»
Dim rr As Range, rc As Range
Dim s As String, ss As String
On Error Resume Next
Set rr = Intersect(Selection, ActiveSheet.UsedRange)
If rr Is Nothing Then
MsgBox «Выделенный диапазон не содержит данных», vbInformation, «www..HasFormula Then
s = rc.Formula
s = Mid(s, 2)
ss = «=» & «IFERROR(» & s & «,» & sToReturnVal & «)»
If Left(s, <> «IFERROR(» Then
If rc.HasArray Then
rc.FormulaArray = ss
Else
rc.Formula = ss
End If
If Err.Number Then
ss = rc.Address
rc.Select
Exit For
End If
End If
End If
Next rc
If Err.Number Then
MsgBox «Невозможно преобразовать формулу в ячейке: » & ss & vbNewLine & _
Err.Description, vbInformation, «www..сайт»
End If
End Sub
Как это работает
Если не знакомы с макросами, то для начала лучше прочитать как их создавать и вызывать: Что такое макрос и где его искать? , т.к. может случиться так, что все сделаете правильно, но забудете макросы разрешить и ничего не заработает.
Копируете приведенный код, переходите в редактор VBA(Alt
+F11
), создаете стандартный модуль (Insert
—Module
) и просто вставляете в него этот код. Переходите в нужную книгу Excel и выделяете все ячейки, формулы в которых необходимо преобразовать таким образом, чтобы в случае ошибки они возвращали ноль. Жмете Alt
+F8
, выбираете код IfIsErrNull
(или IfErrorNull
, в зависимости от того, какой именно скопировали) и жмете Выполнить
.
Ко всем формулам в выделенных ячейках будет добавлена функция обработки ошибки. Приведенные коды учитывают так же:
-если в формуле уже применена функция ЕСЛИОШИБКА или ЕСЛИ(ЕОШ, то такая формула не обрабатывается;
-код корректно обработает так же функции массива;
-выделять можно несмежные ячейки(через Ctrl).
В чем недостаток:
сложные и длинные формулы массива могут вызвать ошибку кода, в связи с особенностью данных формул и их обработкой из VBA. В таком случае код напишет о невозможности продолжить работу и выделит проблемную ячейку. Поэтому настоятельно рекомендую производить замены на копиях файлов.
Если значение ошибки надо заменить на пусто, а не на ноль, то надо строку
«Const sToReturnVal As String = «»»»»»
Удалить апостроф ( »
)
Так же можно данный код вызывать нажатием кнопки(Как создать кнопку для вызова макроса на листе) или поместить в надстройку(Как создать свою надстройку?), чтобы можно было вызывать из любого файла.
И небольшое дополнение: старайтесь применять код вдумчиво. Не всегда возврат ошибки мешает. Например, при использовании ВПР иногда полезно видеть какие значения не были найдены.
Так же хочу отметить, что применять надо к реально работающим формулам. Потому как если формула возвращает #ИМЯ!(#NAME!), то это означает, что в формуле неверно записан какой-то аргумент и это ошибка записи формулы, а не ошибка результата вычисления. Такие формулы лучше проанализировать и найти ошибку, чтобы избежать логических ошибок расчетов на листе.
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
{«Bottom bar»:{«textstyle»:»static»,»textpositionstatic»:»bottom»,»textautohide»:true,»textpositionmarginstatic»:0,»textpositiondynamic»:»bottomleft»,»textpositionmarginleft»:24,»textpositionmarginright»:24,»textpositionmargintop»:24,»textpositionmarginbottom»:24,»texteffect»:»slide»,»texteffecteasing»:»easeOutCubic»,»texteffectduration»:600,»texteffectslidedirection»:»left»,»texteffectslidedistance»:30,»texteffectdelay»:500,»texteffectseparate»:false,»texteffect1″:»slide»,»texteffectslidedirection1″:»right»,»texteffectslidedistance1″:120,»texteffecteasing1″:»easeOutCubic»,»texteffectduration1″:600,»texteffectdelay1″:1000,»texteffect2″:»slide»,»texteffectslidedirection2″:»right»,»texteffectslidedistance2″:120,»texteffecteasing2″:»easeOutCubic»,»texteffectduration2″:600,»texteffectdelay2″:1500,»textcss»:»display:block; padding:12px; text-align:left;»,»textbgcss»:»display:block; position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:#333333; opacity:0.6; filter:alpha(opacity=60);»,»titlecss»:»display:block; position:relative; font:bold 14px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff;»,»descriptioncss»:»display:block; position:relative; font:12px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff; margin-top:8px;»,»buttoncss»:»display:block; position:relative; margin-top:8px;»,»texteffectresponsive»:true,»texteffectresponsivesize»:640,»titlecssresponsive»:»font-size:12px;»,»descriptioncssresponsive»:»display:none !important;»,»buttoncssresponsive»:»»,»addgooglefonts»:false,»googlefonts»:»»,»textleftrightpercentforstatic»:40}}
Используя возможности зависимостей, можно выявить в формуле источник ошибки, то есть найти ячейку, чье значение не соответствует создаваемой формуле.
1 способ
- В окне открытого листа выделите ячейку с сообщением об ошибке.
- Раскройте меню кнопки ошибки рядом с ячейкой, содержащей формулу. В меню отобразится причина ошибки (рис. 4.17).
Рис. 4.17. Меню кнопки ошибки с источни) ком ошибки
2 способ
- В окне открытого листа выделите ячейку с сообщением об ошибке и перейдите к вкладке «Формулы»
- В группе «Зависимости формул» раскройте меню кнопки «Проверить наличие ошибок» и выберите пункт «Источник ошибки» (рис. 4.18).
[stextbox id=»warning»]Стрелка укажет на влияющую ячейку с источником ошибки.[/stextbox]
Рис. 4.18. Вкладка «Формулы». Меню кнопки «Проверить наличие ошибок». Пункт «Источник ошибки»