Содержание
- 1 Использование циклических ссылок
- 1.1 Создание циклической ссылки
- 1.2 Поиск циклических ссылок
- 1.3 Исправление циклических ссылок
- 1.4 Разрешение выполнения цикличных операций
- 1.5 Помогла ли вам эта статья?
- 2 Использование надстройки
- 2.1 Помогла ли вам эта статья?
- 3 Num2Text
- 3.1 Создание простой формулы
- 3.2 Сумма ячеек
- 4 Sumprop
- 4.1 Работа с формулами
- 4.1.1 СуммаПрописью
- 4.1.2 СуммаПрописьюГривны
- 4.1.3 СуммаПрописьюДоллары
- 4.1.4 СуммаПрописьюЕвро
- 4.1.5 ЧислоПрописью
- 4.1 Работа с формулами
- 5 Платные модули
- 6 Заключение
- 7 Видеоинструкция
- 8 Создание сумм прописью с помощью формул
- 9 С помощью пользовательской функции
- 10 С помощью VBA
Пару недель назад передо мной встала проблема разработки электронной таблицы, просчитывающую диапазоны рабочего времени в зависимости от рабочего графика и производственного календаря. С первого взгляда задача нетрудная, но в ходе проектирования я понял, что избежать использования циклов не удастся. Особую специфику здесь придавало условие заказчика, что готовый продукт должен быть именно
Excel
таблицей БЕЗ макросов и дополнительных модулей (функций пользователя).
Стандартный набор функций Excel не поддерживает ничего похожего на циклы, однако выход нашелся – использование циклических ссылок и итераций.
Первый шаг, чтобы начать работать с циклическими ссылками – это разрешить итеративные вычисления в Excel. В версии Microsoft Office XP это делается в разделе меню «Сервис – Параметры»:
В открывшемся окне активируем соответствующий флажок:
Так же обратите внимание на поле «Предельное число итераций» — оно определяет, сколько раз будет проходить вычисление по всем циклическим ссылкам, если вы сами не поставите ограничение.
!Информация: В Excel 2007 включение итеративных вычислений производится в пункте меню «Файл – Параметры Excel» в разделе «Формулы».
Рассмотрим пример использования итеративных вычислений в виде цикла.
Впишите в ячейку А1 формулу:
Если значение предельного числа итераций равно 100, то результатом вычислений в ячейке А1 будет равно 100. Теперь изменим формулу:
Как видите число итераций мы ограничили числом в ячейке А2, а именно 10. Чтобы проиллюстрировать, как происходят итерации, добавим формулу в ячейку B2:
Как видите, каждый этап итерации (новое значение А1) добавляется к ячейке B1 до тех пор пока происходят итерации.
!Замечание: Возможно, результат в B2 будет не таким – для того, чтобы исправить это сделайте следующее: после ввода формулы в ячейку B1 перейдите в ячейку A1, установите курсор в поле редактирования формулы и нажмите Enter – произойдет пересчет итераций. Для корректной работы итераций необходимо задать ряд дополнительных условий, ограничивающих их количество и задающее условие сброса текущего значения поля в исходное значение. Пересчет всех ячеек с циклическими ссылками происходит каждый раз при изменении ячеек, от которых они зависят.
!Дополнительные ссылки:
Принято считать, что циклические ссылки в Экселе представляют собой ошибочное выражение. Действительно, довольно часто это именно так, но все-таки не всегда. Иногда они применяются вполне осознанно. Давайте выясним, чем же являются циклические ссылки, как их создавать, как отыскать уже существующие в документе, как работать с ними или как при необходимости удалить.
Использование циклических ссылок
Прежде всего, выясним, что же представляет собой циклическая ссылка. По сути, это выражение, которое посредством формул в других ячейках ссылается само на себя. Так же ею может являться ссылка, расположенная в элементе листа, на который она сама ссылается.
Нужно отметить, что по умолчанию современные версии Excel автоматически блокируют процесс выполнения цикличной операции. Это связано с тем, что такие выражения в подавляющем большинстве ошибочные, а зацикливание производит постоянный процесс пересчета и вычисления, что создает дополнительную нагрузку на систему.
Создание циклической ссылки
Теперь посмотрим, как создать простейшее цикличное выражение. Это будет ссылка, расположенная в той же ячейке, на которую она ссылается.
- Выделяем элемент листа A1 и записываем в нем следующее выражение:
=A1
Далее жмем на кнопку Enter на клавиатуре.
- После этого появляется диалоговое окно предупреждения о циклическом выражении. Щелкаем в нем по кнопке «OK».
- Таким образом, мы получили цикличную операцию на листе, в которой ячейка ссылается сама на себя.
Немного усложним задачу и создадим циклическое выражение из нескольких ячеек.
- В любой элемент листа записываем число. Пусть это будет ячейка A1, а число 5.
- В другую ячейку (B1) записываем выражение:
=C1
- В следующий элемент (C1) производим запись такой формулы:
=A1
- После этого возвращаемся в ячейку A1, в которой установлено число 5. Ссылаемся в ней на элемент B1:
=B1
Жмем на кнопку Enter.
- Таким образом, цикл замкнулся, и мы получили классическую циклическую ссылку. После того, как окно предупреждения закрыто, мы видим, что программа пометила цикличную связь синими стрелками на листе, которые называются стрелками трассировки.
Теперь перейдем к созданию циклического выражения на примере таблицы. У нас имеется таблица реализации продуктов питания. Она состоит из четырех колонок, в которых указано наименование товара, количество проданной продукции, цена и сумма выручки от продажи всего объема. В таблице в последнем столбце уже имеются формулы. В них производится расчет выручки путем умножения количества на цену.
- Чтобы зациклить формулу в первой строчке, выделяем элемент листа с количеством первого по счету товара (B2). Вместо статического значения (6) вписываем туда формулу, которая будет считать количество товара путем деления общей суммы (D2) на цену (C2):
=D2/C2
Щелкаем по кнопке Enter.
- У нас получилась первая циклическая ссылка, взаимосвязь в которой привычно обозначена стрелкой трассировки. Но как видим, результат ошибочен и равен нулю, так как уже было сказано раньше, Excel блокирует выполнения цикличных операций.
- Скопируем выражение во все остальные ячейки столбца с количеством продукции. Для этого устанавливаем курсор в нижний правый угол того элемента, который уже содержит формулу. Курсор преобразуется в крестик, который принято называть маркером заполнения. Зажимаем левую кнопку мыши и тянем этот крестик до конца таблицы вниз.
- Как видим, выражение было скопировано во все элементы столбца. Но, помечена стрелкой трассировки только одна взаимосвязь. Заметим это на будущее.
Поиск циклических ссылок
Как мы уже видели выше, не во всех случаях программа помечает взаимосвязь циклической ссылки с объектами, даже если она имеется на листе. Учитывая тот факт, что в подавляющем большинстве цикличные операции вредны, их следует удалить. Но для этого их нужно сначала отыскать. Как же это сделать, если выражения не помечены линией со стрелками? Давайте разберемся с этой задачей.
- Итак, если при запуске файла Excel у вас открывается информационное окно о том, что он содержит циклическую ссылку, то её желательно отыскать. Для этого перемещаемся во вкладку «Формулы». Жмем на ленте на треугольник, который размещен справа от кнопки «Проверка наличия ошибок», расположенной в блоке инструментов «Зависимости формул». Открывается меню, в котором следует навести курсор на пункт «Циклические ссылки». После этого в следующем меню открывается список адресов элементов листа, в которых программа обнаружила цикличные выражения.
- При клике на конкретный адрес происходит выделение соответствующей ячейки на листе.
Существует ещё один способ узнать, где располагается циклическая ссылка. Сообщение о данной проблеме и адрес элемента, содержащего подобное выражение, располагается в левой части строки состояния, которая находится внизу окна Excel. Правда, в отличие от предыдущего варианта, на строке состояния отображаться будут адреса не всех элементов, содержащих циклические ссылки, если их много, а только одного из них, который появился раньше других.
К тому же, если вы находитесь в книге, содержащей цикличное выражение, не на том листе, где оно расположено, а на другом, то в этом случае в строке состояния будет отображаться только сообщение о наличие ошибки без адреса.
Урок: Как найти циклические ссылки в Excel
Исправление циклических ссылок
Как уже говорилось выше, в подавляющем большинстве случаев цикличные операции – это зло, от которого следует избавляться. Поэтому, закономерно, что после того, как цикличная связь обнаружена, нужно её исправить, чтобы привести формулу к нормальному виду.
Для того, чтобы исправить цикличную зависимость, нужно проследить всю взаимосвязь ячеек. Даже если проверка указала конкретную ячейку, то ошибка может крыться не в ней самой, а в другом элементе цепочки зависимости.
- В нашем случае, несмотря на то, что программа верно указала на одну из ячеек цикла (D6), реальная ошибка кроется в другой ячейке. Выделяем элемент D6, чтобы узнать, из каких ячеек он подтягивает значение. Смотрим на выражение в строке формул. Как видим, значение в этом элементе листа формируется путем умножения содержимого ячеек B6 и C6.
- Переходим к ячейке C6. Выделяем её и смотрим на строку формул. Как видим, это обычное статическое значение (1000), которое не является продуктом вычисления формулы. Поэтому можно с уверенностью сказать, что указанный элемент не содержит ошибки, вызывающей создание циклических операций.
- Переходим к следующей ячейке (B6). После выделения в строке формул мы видим, что она содержит вычисляемое выражение (=D6/C6), которое подтягивает данные из других элементов таблицы, в частности, из ячейки D6. Таким образом, ячейка D6 ссылается на данные элемента B6 и наоборот, что вызывает зацикленность.
Тут взаимосвязь мы вычислили довольно быстро, но в реальности бывают случаи, когда в процессе вычисления участвует множество ячеек, а не три элемента, как у нас. Тогда поиск может занять довольно много времени, ведь придется изучить каждый элемент цикличности.
- Теперь нам нужно понять, в какой именно ячейке (B6 или D6) содержится ошибка. Хотя, формально это даже не ошибка, а просто избыточное использование ссылок, которое приводит к зацикливанию. Во время процесса решения того, какую ячейку следует отредактировать, нужно применять логику. Тут нет четкого алгоритма действий. В каждом конкретном случае эта логика будет своя.
Например, если в нашей таблице общая сумма должна вычисляться путем умножения количества фактически проданного товара на его цену, то можно сказать, что ссылка, рассчитывающая количество от общей суммы продажи, тут явно лишняя. Поэтому мы её удаляем и заменяем на статическое значение.
- Подобную операцию проводим и над всеми другими цикличными выражениями, если они имеются на листе. После того, как абсолютно все циклические ссылки были удалены из книги, сообщение о наличие данной проблемы должно исчезнуть из строки состояния.
Кроме того, полностью ли были удалены цикличные выражения, можно узнать, воспользовавшись инструментом проверки наличия ошибок. Переходим во вкладку «Формулы» и жмем уже знакомый нам треугольник справа от кнопки «Проверка наличия ошибок» в группе инструментов «Зависимости формул». Если в запустившемся меню пункт «Циклические ссылки» не будет активен, то, значит, мы удалили все подобные объекты из документа. В обратном случае, нужно будет применить процедуру удаления к элементам, которые находятся в списке, тем же рассматриваемым ранее способом.
Разрешение выполнения цикличных операций
В предшествующей части урока мы рассказывали, в основном, как бороться с циклическими ссылками, или как их найти. Но, ранее разговор шел также о том, что в некоторых случаях они, наоборот, могут быть полезными и осознанно использоваться пользователем. Например, довольно часто данный метод применяется для итеративных вычислений при построении экономических моделей. Но беда состоит в том, что, независимо от того, осознанно или неосознанно вы используете циклическое выражение, Excel по умолчанию все равно будет блокировать операцию по ним, дабы не привести к излишней перегрузке системы. В таком случае актуальным становится вопрос принудительного отключения такой блокировки. Посмотрим, как это сделать.
- Прежде всего, перемещаемся во вкладку «Файл» приложения Excel.
- Далее щелкаем по пункту «Параметры», расположенному в левой части открывшегося окна.
- Происходит запуск окна параметров Эксель. Нам нужно перейти во вкладку «Формулы».
- Именно в открывшемся окне можно будет произвести разрешение выполнения цикличных операций. Переходим в правый блок этого окна, где находятся непосредственно сами настройки Excel. Мы будем работать с блоком настроек «Параметры вычислений», который расположен в самом верху.
Чтобы разрешить применение цикличных выражений, нужно установить галочку около параметра «Включить итеративные вычисления». Кроме того, в этом же блоке можно настроить предельное число итераций и относительную погрешность. По умолчанию их значения равны 100 и 0,001 соответственно. В большинстве случаев данные параметры изменять не нужно, хотя при необходимости или при желании можно внести изменения в указанные поля. Но тут нужно учесть, что слишком большое количество итераций может привести к серьезной нагрузке на программу и систему в целом, особенно если вы работаете с файлом, в котором размещено много цикличных выражений.
Итак, устанавливаем галочку около параметра «Включить итеративные вычисления», а затем, чтобы новые настройки вступили в силу, жмем на кнопку «OK», размещенную в нижней части окна параметров Excel.
- После этого мы автоматически переходим на лист текущей книги. Как видим, в ячейках, в которых располагаются цикличные формулы, теперь значения рассчитываются корректно. Программа не блокирует вычисления в них.
Но все-таки стоит заметить, что включением цикличных операций злоупотреблять не стоит. Применять данную возможность следует только тогда, когда пользователь полностью уверен в её необходимости. Необоснованное включение цикличных операций может не только привести к избыточной нагрузке на систему и замедлить вычисления при работе с документом, но пользователь может неумышленно внести ошибочное цикличное выражение, которое по умолчанию тут же было бы заблокировано программой.
Как мы видим, в подавляющем большинстве случаев, циклические ссылки представляют собой явление, с которым нужно бороться. Для этого, прежде всего, следует обнаружить саму цикличную взаимосвязь, затем вычислить ячейку, где содержится ошибка, и, наконец, устранить её, внеся соответствующие коррективы. Но в отдельных случаях цикличные операции могут быть полезны при вычислениях и производиться пользователем осознанно. Но даже тогда стоит к их использованию подходить с осторожностью, правильно настроив Excel и зная меру в добавлении подобных ссылок, которые при использовании в массовом количестве способны замедлить работу системы.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.
Использование надстройки
В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.
Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.
- Открываем программу Excel и переходим во вкладку «Файл».
- Перемещаемся в раздел «Параметры».
- В активном окне параметров переходим в раздел «Надстройки».
- Далее, в параметре настроек «Управление» устанавливаем значение «Надстройки Excel». Жмем на кнопку «Перейти…».
- Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».
- В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».
- Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».
- Для того, чтобы проверить как работает только что установленная надстройка пишем в любой свободной ячейке листа произвольное число. Выделяем любую другую ячейку. Кликаем по значку «Вставить функцию». Он расположен слева от строки формул.
- Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».
- Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.
- После этого, любое число, которое записано в ячейку, указанную вами, будет отображаться в денежном виде прописью в том месте, где установлена формула функции.
Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5)
, то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».
Если вы введете в ячейку формулу =Сумма_прописью(A2)
, то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.
Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
Как правило, в финансовых документах довольно часто указывают сумму не только в виде числа, но и прописью. Вручную это делать сложно и долго. Гораздо проще автоматически преобразовать все значения при помощи функций. В данной статье мы рассмотрим, как в Excel сделать сумму прописью.
Для начала нужно открыть Эксель и написать какое-нибудь число.
Для того чтобы его перевести в текстовый вид, нужно скачать дополнительный макрос, написанный на vba. Данная функция по умолчанию в редакторе отсутствует.
Num2Text
Прежде чем приступить к дальнейшим действиям, вам необходимо скачать данную надстройку. Официального сайта в этом случае нет. Таких модулей в интернете довольно много.
Будьте внимательны. Скачивайте только те файлы, у которых расширение xla, а не exe, поскольку во втором случае там могут быть вирусы.
После этого нужно сделать следующее:
- Зайдите в пункт меню «Файл».
- В появившемся окне перейдите в раздел «Параметры».
- Затем нажимаем на пункт «Надстройки».
- Кликните на кнопку «Перейти» (предварительно убедитесь, что рядом выбран пункт «Надстройки Excel»).
- После этого у вас появится окно, в котором можно вставить дополнительные файлы, чтобы редактор «узнал» новые функции. Нажмите на кнопку «Обзор».
- После этого укажите заранее скаченный файл и кликните «Открыть».
- Затем нужно поставить галочку около нового пункта и нажать на «ОК».
На этом этап подготовки завершен. Теперь Excel сможет делать перевод цифр в текстовый вид.
Создание простой формулы
Для того чтобы увидеть возможности новых функций, нужно сделать следующее:
- Перейдите на любую соседнюю ячейку. Кликните на иконку «Fx».
- В появившемся окне в разделе категории выберите пункт «Полный алфавитный перечень».
- Найдите там функцию «Сумма_прописью». Выберите её и нажмите на «OK».
- После этого появится окно, в котором нужно указать аргументы функции. Следует указать ячейку, значение которой должно писаться прописью. Для этого достаточно кликнуть на неё.
- Сразу после этого адрес ячейки подставится автоматически. Для продолжения кликните «OK».
- В результате этого вы увидите вашу сумму прописью. Вплоть до копеек. Благодаря этому можно переводить даже дробные числа.
- Попробуйте изменить ваше значение на любое другое. Сумма прописью изменится мгновенно.
Сумма ячеек
В финансовых отчетах необходимо считать сумму различных ячеек или столбцов. В этом случае формула немного усложняется. Рассмотрим, как это сделать.
- Проставьте цифры в 4 ячейки подряд.
- Кликните на ячейку, в которой вы работали до этого. Скопируйте формулу при помощи сочетания клавиш Ctrl+C.
- После этого перейдите в другую ячейку, чтобы создать новую формулу. Активируйте строку ввода уравнений.
- Нажмите на клавиатуре на кнопки Ctrl+V.
- Удаляем аргумент функции, то есть «C4» в нашем случае. Вместо этого в скобке пишем обычную формулу суммы, которая будет считать диапазон наших ячеек.
=Сумма_прописью(СУММ(A4:D4))
- В результате этого должно получиться следующее.
- Нажмите на клавиатуре на кнопку Enter. В итоге вы увидите, что сумма указанного диапазона значений отобразилась прописью.
У данного модуля есть большой минус – вы сможете работать только с российкими рублями. То есть, не получится сделать сумму прописью для узбекских сумов, украинских гривен, казахских тенге, американских долларов, белорусских рублей, английских фунтов и так далее. Язык поменять не выйдет. Для таких случаев существует альтернативный метод.
Sumprop
Установка данного модуля происходит точно так же, как в описанном выше способе, только на этот раз выбираем другой файл.
Ставим галочку возле новой надстройки и нажимаем на кнопку «OK».
После этого в вашем редакторе появится еще несколько новых функций. Рассмотрим их всех.
Работа с формулами
Для этого нужно сделать следующие действия.
- Первым делом создадим наглядную таблицу. В одном столбце у нас будут цифры, во втором – результат. Для демонстрации возможностей будем использовать дробные числа.
- Переходим первую пустую ячейку и нажимаем на кнопку «Fx».
В появившемся окне выберите категорию «Определенные пользователем». Новые функции будут именно там.
Будем вставлять поочередно. Именно в той хронологии, как они идут в списке.
СуммаПрописью
- Выберите соответствующий пункт и нажмите на кнопку «OK».
Справка нам подсказывает, что эта функция для рублей.
- В появившемся окне нужно вставить аргумент. Для этого достаточно кликнуть на ячейку с числом.
- Благодаря этому адрес подставится автоматически. Для продолжения нажмите на кнопку «OK».
- В результате этого вы увидите следующее.
СуммаПрописьюГривны
- Выделяем следующую строчку и кликаем на иконку вставки функции.
- На этот раз выбираем вторую функцию. Для вставки нажимаем на кнопку «OK».
- Затем кликаем на следующее число.
- После автоматической подстановки нажмите на кнопку «OK».
- Результат будет следующим.
СуммаПрописьюДоллары
- Переходим на третью строчку и кликаем на иконку «Fx».
- Выбираем «долларовую» функцию и нажимаем на «OK».
- Указываем соответствующий аргумент.
- Кликаем на «OK».
- Благодаря этому целое число отображается в долларах, а дробное – в центах.
СуммаПрописьюЕвро
- Переходим на четвертую строчку и вызываем окно вставки уравнения.
- Указываем функцию для «Евро».
- Кликаем на соответствующий аргумент.
- Нажимаем на кнопку «OK».
- Результат будет следующим.
Обратите внимание на то, что количество центов (копеек) выводится всегда. Даже если их 0.
ЧислоПрописью
Преимущество данного модуля в том, что вы можете осуществить преобразование без дополнительных денежных приставок.
- Перейдите на последнюю строчку и нажмите на иконку «Fx».
- Выберите последнюю функцию.
- В качестве аргумента укажите последнее оставшееся число.
- Для вставки нажмите на кнопку «OK».
В результате проделанных действий, мы увидим следующую таблицу.
Обратите внимание на то, что во всех ячейках сумма прописью указывается с большой буквы и только число – с маленькой.
Платные модули
Описанные выше надстройки были бесплатными. В интернете можно найти и более мощные инструменты, но за определенную плату.
На сайте PlanetaExcel продается надстройка PLEX.
Нам показывают, что в ней находится огромная библиотека формул.
На момент публикации статьи стоимость надстройки оценивается в 795 рублей.
Разумеется, они предоставляют возможность бесплатного тестирования, но количество запусков ограничено.
Заключение
Прочитав данную инструкцию, вы должны были понять, как настроить редактор Excel, чтобы можно был выводить сумму прописью. Если у вас что-то не получается, возможны следующие варианты:
- вы скачали не тот файл;
- вы не добавили эту надстройку в Эксель;
- вы выделяете не те ячейки;
- используете не те функции;
- допускаете опечатку при подсчете суммы различных значений.
Видеоинструкция
Если у вас остались какие-нибудь вопросы или вы так и не смогли найти причину своих проблем, рекомендуется посмотреть видеоролик, в котором приводятся дополнительные комментарии к описанным выше инструкциям.
Добрый день уважаемый читатель!
Статья посвящена такому интересному вопросу: «Как создается сумма прописью в Excel?». Эта возможность позволяет нам всю массу информации и расчетов, которые сведены в один результат, оформить как финансовой документ, которые нельзя трактовать двузначно. Недаром же любые банковские, юридические и финансовые документы оформляются и цифрами и буквами. Окромя всего, такие суммы не позволяют ошибаться, где же должна стоять запятая и просто отлично выглядят в сравнении с рядом цифр. Подведя итог, скажу, что любой пользователь Excel, который работает с цифрами и временем, а также печатает документы с их использованием, очень нуждается в инструменте создающим сумму прописью.
Решить эту проблему можно несколькими способами:
- С помощью формул;
- С помощью пользовательской функции;
- С помощью VBA.
Создание сумм прописью с помощью формул
Это вполне осуществимый вариант, но очень громоздкий. Формула, которая может самостоятельно преобразовывать числа в буковки и правильно орфографически написать сумму прописью получится очень большой. В случае, когда вы захотите упростить формулу, вам нужно будет отдельный блок формул, который буде и заниматься всеми преобразованиями. Единственное преимущество от использования формулы, это когда вы разберетесь с ней, то самостоятельно сможете ее изменять: разрядность, валюту, склонение и т.п.
Ради общего интереса я предоставлю вам пример файла с работающей формулой, которую я нашёл на excelworld.ru, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.
С помощью пользовательской функции
Как мой взгляд, это самое оптимальное и простое, относительно конечно, решение поставленного вопроса. Вы просто включаете функцию и пользуетесь ее с удовольствием.
Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:Documents and SettingsUserApplication DataMicrosoftAddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. В результате мы получаем возможность получить следующие данные:
С помощью VBA
Вот еще один способ на любителя. Конечно создать сумму прописью в Excel с помощью макроса не самый распространённый способ, но им достаточно часто пользовались и пользуются до сих пор. Большой сложности он не представляет, вам нужно:
- Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
- С помощью меню «Insert» — «Module», создать пустой новый модуль;
- Скопировать предоставленный код макроса в тело модуля.
Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.
Код нужного макроса выглядит так:
Function СУММАПРОПИСЬЮ(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array(«», «один «, «два «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «) Nums2 = Array(«», «десять «, «двадцать «, «тридцать «, «сорок «, «пятьдесят «, «шестьдесят «, «семьдесят «, _ «восемьдесят «, «девяносто «) Nums3 = Array(«», «сто «, «двести «, «триста «, «четыреста «, «пятьсот «, «шестьсот «, «семьсот «, _ «восемьсот «, «девятьсот «) Nums4 = Array(«», «одна «, «две «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «) Nums5 = Array(«десять «, «одиннадцать «, «двенадцать «, «тринадцать «, «четырнадцать «, «пятнадцать «, «шестнадцать «, «семнадцать «, «восемнадцать «, «девятнадцать «) If n <= 0 Then СУММАПРОПИСЬЮ = «ноль» Exit Function End If ‘разделяем число на разряды, используя вспомогательную функцию Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class(n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil = Class(n, ‘проверяем миллионы Select Case decmil Case 1 mil_txt = Nums5(mil) & «миллионов « GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & «миллион « Case 2, 3, 4 mil_txt = Nums1(mil) & «миллиона « Case 5 To 20 mil_txt = Nums1(mil) & «миллионов « End Select www: sottys_txt = Nums3(sottys) ‘проверяем тысячи Select Case dectys Case 1 tys_txt = Nums5(tys) & «тысяч « GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & «тысяч « Case 1 tys_txt = Nums4(tys) & «тысяча « Case 2, 3, 4 tys_txt = Nums4(tys) & «тысячи « Case 5 To 9 tys_txt = Nums4(tys) & «тысяч « End Select If dectys = 0 And tys = 0 And sottys 0 Then sottys_txt = sottys_txt & » тысяч « eee: sot_txt = Nums3(sot) ‘проверяем десятки Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1(ed) rrr: ‘формируем итоговую строку СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ‘вспомогательная функция для выделения из числа разрядов Private Function Class(M, I) Class = Int(Int(M — (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I — 1)) End Function |
Сохраняете внесенные изменения и теперь можно пользоваться новой функцией, как и прочими, она отображается в «Мастере функций» в категории «Определенные пользователем» или же просто вручную ввести ее в ячейке указав какую сумму необходимо сделать прописной.
Но как видите, макрос пишет прописью суммы, только целые числа, а вот для получения еще и копеек, эту конструкцию нужно доработать использованием следующей функции:
=СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»
Приставку «Module2» в моей формуле можете опустить, так как таким образом, программа разделяет 2 похожие формулы, одна от установленных надстроек, а вторая от макроса.
А на этом у меня всё! Я очень надеюсь, что всё о том, как ваши цифры сделать прописными вам понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!
Не забудьте поблагодарить автора!
Что такое ограбление банка по сравнению с основанием банка?
Бертольт Брехт
Цикл в excel с помощью формул
Я здесь новичок и это мой первый пост.
Помогите пожалуйста составить цикл.
Думаю, что правильнее будет через макрос, но, можно и через формулу. В них, к сожалению, не силен, опыт нулевой. Похожие темы читал на этом форуме, есть очень похожие решения, но доработать их не могу, вседствие малоопытности. Итак.
. Требуется подобрать текстовые сочетания содержимого ячеек, но не все возможные, а подчиняющиеся порядковому чередованию:
Дано: 4 столбца с текстовыми значениями, количество строк во всех столбцах разное.
Пример:
______________
| -|A1|B1|C1|D1|
|——————-
|1 | A | 1| a| X |
|2 | B | 2| b| Y |
|3 | C | _| c| Z |
|4 | D | _| d| _ |
|5 | E | _| _| _ |
———————
Хочу в итоговой колонке получить массив данных:
1 A1aX
2 A1aY
3 A1aZ
4 A1bX
5 A1bY
.
12 A1dZ
13 A2aX
.
24 A2dZ
25 B1aX
.
.
120 E2dZ
Для упрощения решения могу предложить добавить в каждый исходный столбец количество символов для равного значения строк в каждом столбце:
Впоследствии я смогу удалить из итоговой ячейки результаты, содержащие символы «$».
И сразу вопрос: можно ли создать такой макрос, который не будет зависеть от фиксированного числа строк в столбце, а будет запускать очередной цикл, когда «наткнется» на пустую ячейку?
В реальной задаче в столбце A1 будет 64 значения, в B1=32, C1=64, D1=16.
Знаю, что на лист весь вывод не поместится, поэтому, либо буду использовать в колонке A1 каждый раз по 2 значения (получится как раз 65536), либо попрошу опять же здесь помощи, чтобы реализовать переход на другой лист с помощью такого макроса (вычитал на одном из форумов):
Буду благодарен если поможете реализовать идею, и объяснить принцип действия конкретного макроса.
Прикрепил сам файл с задачей, а то строки таблицы съезжают.
Excel. Использование циклических ссылок для решения уравнений итерационным способом
Ранее я описал, как найти и исправить циклическую ссылку. Напомню, что циклическая ссылка появляется, если в ячейку Excel введена формула, содержащая ссылку на саму эту ячейку (напрямую или через цепочку других ссылок). Например (рис. 1), в ячейке С2 находится формула, ссылающаяся на саму ячейку С2.
Рис. 1. Пример циклической ссылки
Но. Не всегда циклическая ссылка является бедствием. Циклическую ссылку можно использовать для решения уравнений итерационным способом. Для начала нужно позволить Excel вести вычисления, даже при наличии циклической ссылки. В обычном режиме Excel, обнаружив циклическую ссылку, выдаст сообщение об ошибке, и потребует ее устранения. В обычном режиме Excel не может провести вычисления, так как циклическая ссылка порождает бесконечный цикл вычислений. Можно, либо устранить циклическую ссылку, либо допустить вычисления по формуле с циклической ссылкой, но ограничив число повторений цикла. Для реализации второй возможности щелкните на кнопке «Office» (в левом верхнем углу), а затем на «Параметры Excel» (рис. 2).
Скачать заметку в формате Word, примеры в формате Excel
Рис. 2. Параметры Excel
В открывшемся окне «Параметры Excel» перейдите на вкладку Формулы и отметьте «Включить итеративные вычисления» (рис. 3). Помните, что эта опция включается для приложения Excel в целом (а не для одного файла), и будет действовать, пока вы ее не отключите.
Рис. 3. Включить итеративные вычисления
На этой же вкладе, можно выбрать, как будут вестись вычисления: автоматически или вручную. При автоматическом вычислении Excel сразу рассчитает конечный результат, при вычислениях, вручную, можно будет наблюдать результат каждой итерации (простым нажатием F9 запуская каждый новый цикл вычисления).
Решим уравнение третьей степени: х 3 – 4х 2 – 4х + 5 = 0 (рис. 4). Для решения этого уравнения (и любого другого уравнения совершенно произвольного вида) понадобится всего одна ячейка Excel.
Рис. 4. График функции f(x)
Для решения уравнения нам понадобится рекуррентная формула (то есть, формула, выражающая каждый член последовательности через один или несколько предыдущих членов):
(1) x = x – f(x)/f’(x), где
f(x) – функция, задающая уравнение, корни которого мы ищем; f(x) = х 3 – 4х 2 – 4х + 5
f’(x) – производная нашей функции f(x); f’(x) = 3х 2 – 8х – 4; производные основных элементарных функций можно посмотреть здесь.
Если вы заинтересовались, откуда взялась формула (1), можете почитать, например, здесь.
Итоговая рекуррентная формула имеет вид:
(2) х = x – (х 3 – 4х 2 – 4х + 5)/(3х 2 – 8х – 4)
Выберем любую ячейку на листе Excel (рис. 5; в нашем примере это ячейка G19), присвоим ей имя х, и введем в нее формулу:
Можно вместо х использовать адрес ячейки… но согласитесь, что имя х, смотрится привлекательнее; следующую формулу я ввел в ячейку G20:
Рис. 5. Рекуррентная формула: (а) для поименованной ячейки; (б) для обычного адреса ячейки
Как только мы введем формулу и нажмем Enter, в ячейке сразу же появится ответ – значение 0,77. Это значение соответствует одному из корней уравнения, а именно второму (см. график функции f(x) на рис. 4). Поскольку начальное приближение не задавалось, итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке х и равного нулю. Как же получить остальные корни уравнения?
Для изменения стартового значения, с которого рекуррентная формула начинает свои итерации, предлагается использовать функцию ЕСЛИ: [1]
Здесь значение «-5» – начальное значение для рекуррентной формулы. Изменяя его, можно выйти на все корни уравнения:
Канал в Telegram
Работа с циклом For в VBA
В этом уроке будет рассмотрена работа с циклом For в VBA. Пример работы с циклом For, так же будет продемонстрирован пример создания формул в Excel с помощью макросов.
Цикл For работает по принципу счетчика. For применяется в тех случаях, когда необходимо повторить некоторые действия заранее известное кол-во раз. Например, цикл For часто используется при чтении массивов.
Цикл For имеет следующий синтаксис:
For счетчик = начало цикла To конец цикла [Step шаг]группа операторов, команд и т.д.
Exit For
Next счетчик
- «счетчик» — переменная, которая изменяется на указанный «шаг». Если шаг не указан, то по умолчанию берется единица.
- «начало цикла», «конец цикла» — числа или переменные указывающие нижний предел счетчика и верхний. Остановка цикла происходит тогда, когда «счетчик» > «конец цикла» (или, если цикл обратный, т.е. с шагом -1, то «счетчик» n;
- Cells(i, 4) — ячейка выделенного листа, i номер строки, 4 -номер столбца в который выводится результат. Обратите внимание, наш счетчик i указывает номер строки листа Excel;
- Next i — оператор закрытия цикла и перевода указателя к For. Все что находится между For и Next выполняется в цикле;
- CStr — функция преобразующая число в текст.
Ячейке мы присваиваем формулу созданную следующим образом «=C» & CStr(i) & «+E» & CStr((n — i) + 2). Знак & — «склеивание» символов, строк. В результате у нас получится формула «=Сn+E((n — i) + 2)» где n = 21, i — счетчик.
Страшно? Это только кажется 🙂
Все. После выполнения макроса мы получим следующий столбец (выделен), а в каждой ячейке формула:
Пример 2
Теперь рассмотрим цикл с указанным шагом. После расчета прошлого макроса мы получили три столбца, теперь нам необходимо из столбца E вычесть D, в столбец F вывести формулы вычитания. Код макроса следующий:
Sub Цикл_For_с_шагом()
Const n = 21
For i = n To 2 Step -1
Cells(i, 6) = «=E» & CStr(i) & «-D» & CStr(i)
Next i
End Sub
В данном случае все тоже самое, только цикл теперь «бежит» не от 2, а от 21 до 2 с шагом (Step) -1.
Результат выполнения получим следующий:
Цикл For, в VBA, является не единственным циклом. В дальнейшем будут рассмотрены еще пара вариантов циклов, без которых не обойтись при написании макрокоманд в Excel.
Как удалить или разрешить циклическую ссылку
Вы ввели формулу, но она не работает. Вместо этого вы получаете это сообщение об ошибке «Циклическая ссылка». Миллионы людей имеют такую же проблему, и это происходит из-за того, что формула пытается подсчитаться самой себе, и у вас есть функция, которая называется итеративным вычислением. Вот как это выглядит:
Формула =D1+D2+D3 не работает, поскольку она расположена в ячейке D3 и ссылается на саму себя. Чтобы устранить эту проблему, можно переместить формулу в другую ячейку. Нажмите клавиши CTRL + X , чтобы вырезать формулу, выберите другую ячейку и нажмите клавиши CTRL + V , чтобы вставить ее.
Другая распространенная ошибка связана с использованием функций, которые включают ссылки на самих себя, например ячейка F3 может содержать формулу =СУММ(A3:F3). Пример:
Вы также можете попробовать один из описанных ниже способов.
Если вы только что ввели формулу, начните с этой ячейки и проверьте, не ссылается ли вы на саму ячейку. Например, ячейка A3 может содержать формулу =(A1+A2)/A3. Формулы, например = a1 + 1 (в ячейке a1), также вызывают ошибки циклических ссылок.
Проверьте наличие непрямых ссылок. Они возникают, когда формула, расположенная в ячейке А1, использует другую формулу в ячейке B1, которая снова ссылается на ячейку А1. Если это сбивает с толку вас, представьте, что происходит с Excel.
Если найти ошибку не удается, на вкладке Формулы щелкните стрелку рядом с кнопкой Проверка ошибок, выберите пункт Циклические ссылки и щелкните первую ячейку в подменю.
Проверьте формулу в ячейке. Если вам не удается определить, является ли эта ячейка причиной циклической ссылки, выберите в подменю Циклические ссылки следующую ячейку.
Продолжайте находить и исправлять циклические ссылки в книге, повторяя действия 1–3, пока из строки состояния не исчезнет сообщение «Циклические ссылки».
В строке состояния в левом нижнем углу отображается сообщение Циклические ссылки и адрес ячейки с одной из них.
При наличии циклических ссылок на других листах, кроме активного, в строке состояния выводится сообщение «Циклические ссылки» без адресов ячеек.
Вы можете перемещаться между ячейками в циклической ссылке, дважды щелкая стрелку трассировки. Стрелка указывает ячейку, которая влияет на значение выбранной в данный момент ячейки. Чтобы отобразить стрелку трассировки, выберите пункт формулы, а затем — влияющие ячейки или зависимыеячейки.
Предупреждение о циклической ссылке
Когда Excel впервые находит циклическую ссылку, отображается предупреждающее сообщение. Нажмите кнопку ОК или закройте окно сообщения.
Когда вы закроете сообщение, в ячейке будет отображено либо нулевое, либо последнее вычисленное значение. И теперь, наверное, говорят: «повесить последнее вычисленное значение?» Да. В некоторых случаях можно успешно выполнить формулу, прежде чем выполнять вычисление. Например, формула, использующая функцию если , может работать, пока пользователь не введет аргумент (часть данных, которая должна выполняться правильно), которая приводит к тому, что формула будет вычислять саму себя. В этом случае Excel сохраняет значение из последнего успешного вычисления.
Если есть подозрение, что циклическая ссылка содержится в ячейке, которая не возвращает значение 0, попробуйте такое решение:
Щелкните формулу в строке формулы и нажмите клавишу ВВОД.
Внимание! Во многих случаях при создании дополнительных формул с циклическими ссылками предупреждающее сообщение в приложении Excel больше не отображается. Ниже перечислены некоторые, но не все, ситуации, в которых предупреждение появится.
Пользователь создает первый экземпляр циклической ссылки в любой открытой книге.
Пользователь удаляет все циклические ссылки во всех открытых книгах, после чего создает новую циклическую ссылку.
Пользователь закрывает все книги, создает новую и вводит в нее формулу с циклической ссылкой.
Пользователь открывает книгу, содержащую циклическую ссылку.
При отсутствии других открытых книг пользователь открывает книгу и создает в ней циклическую ссылку.
Итеративные вычисления
Иногда вам может потребоваться использовать циклические ссылки, так как они приводят к итерации функций — повторяются до тех пор, пока не будет выполнено определенное числовое условие. Это может замедлить работу компьютера, поэтому итеративные вычисления обычно отключены в Excel.
Если вы не знакомы с итеративными вычислениями, вероятно, вы не захотите оставлять активных циклических ссылок. Если же они вам нужны, необходимо решить, сколько раз может повторяться вычисление формулы. Если включить итеративные вычисления, не изменив предельное число итераций и относительную погрешность, приложение Excel прекратит вычисление после 100 итераций либо после того, как изменение всех значений в циклической ссылке с каждой итерацией составит меньше 0,001 (в зависимости от того, какое из этих условий будет выполнено раньше). Тем не менее, вы можете сами задать предельное число итераций и относительную погрешность.
Если вы работаете в Excel 2010 или более поздней версии, последовательно выберите элементы Файл > Параметры > Формулы. Если вы работаете в Excel для Mac, откройте меню Excel, выберите пункт Настройки и щелкните элемент Вычисление.
Если вы используете Excel 2007, нажмите кнопку Microsoft Office , щелкните Параметры Excelи выберите категорию формулы .
В разделе Параметры вычислений установите флажок Включить итеративные вычисления. На компьютере Mac щелкните Использовать итеративное вычисление.
В поле Предельное число итераций введите количество итераций для выполнения при обработке формул. Чем больше предельное число итераций, тем больше времени потребуется для пересчета листа.
В поле Относительная погрешность введите наименьшее значение, до достижения которого следует продолжать итерации. Это наименьшее приращение в любом вычисляемом значении. Чем меньше число, тем точнее результат и тем больше времени потребуется Excel для вычислений.
Итеративное вычисление может иметь три исход:
Решение сходится, что означает получение надежного конечного результата. Это самый желательный исход.
Решение расходится, т. е. при каждой последующей итерации разность между текущим и предыдущим результатами увеличивается.
Решение переключается между двумя значениями. Например, после первой итерации результат равен 1, после следующей итерации результат — 10, после следующей итерации результат равен 1 и т. д.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Дополнительные сведения
Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
VBA Excel. Цикл For… Next
Цикл For. Next в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла For. Next.
Цикл For. Next в VBA Excel предназначен для выполнения группы операторов необходимое количество раз, заданное управляющей переменной цикла — счетчиком. При выполнении цикла значение счетчика после каждой итерации увеличивается или уменьшается на число, указанное выражением оператора Step, или, по умолчанию, на единицу. Когда необходимо применить цикл к элементам, количество которых и индексация в группе (диапазон, массив, коллекция) неизвестны, следует использовать цикл For Each. Next.
Синтаксис цикла For. Next
В квадратных скобках указаны необязательные атрибуты цикла For. Next.
Компоненты цикла For. Next
*Если атрибут Step отсутствует, цикл For. Next выполняется с шагом по умолчанию, равному 1.
**Если не использовать в цикле свой код, смысл применения цикла теряется.
Примеры циклов For. Next
Вы можете скопировать примеры циклов в свой модуль VBA, последовательно запускать их на выполнение и смотреть результаты.
Простейший цикл
Заполняем десять первых ячеек первого столбца активного листа Excel цифрами от 1 до 10:
Простейший цикл с шагом
В предыдущий цикл добавлен оператор Step со значением 3, а результаты записываем во второй столбец:
Цикл с отрицательными аргументами
Этот цикл заполняет десять первых ячеек третьего столбца в обратной последовательности:
Увеличиваем размер шага до -3 и записываем результаты в четвертый столбец активного листа Excel:
Вложенный цикл
Внешний цикл последовательно задает индексы первых десяти строк активного листа, а вложенный цикл складывает числа в первых четырех ячейках строки с текущем индексом и записывает сумму в ячейку пятого столбца. Перед запуском вложенного цикла с накопительным сложением, пятую ячейку соответствующей строки обнуляем, чтобы в случае нахождения в ней какого-либо числа, оно не прибавилось к итоговой сумме.
Выход из цикла
В шестой столбец активного листа запишем названия десяти животных, конечно же, с помощью цикла For. Next:
Следующий цикл будет искать в шестом столбце крокодила, который съел галоши. В ячейку седьмого столбца цикл, пока не встретит крокодила, будет записывать строку «Здесь был цикл», а когда обнаружит крокодила, запишет «Он съел галоши» и прекратит работу, выполнив команду Exit For. Это будет видно по ячейкам рядом с названиями животных ниже крокодила, в которых не будет текста «Здесь был цикл».
Результат работы циклов For. Next из примеров:
Результат работы циклов For. Next
Такие данные на активном листе Excel вы получите, если последовательно запустите на выполнение в редакторе VBA все семь подпрограмм из примеров, демонстрирующих работу циклов For. Next.
Цикл с дробными аргументами
Атрибуты start, end и step могут быть представлены числом, переменной или числовым выражением:
В результате вычисления значения переменной вне цикла или выражения внутри его может получиться дробный результат. VBA Excel округлит его до целого числа, используя бухгалтерское округление:
Содержание
- Использование циклических ссылок
- Создание циклической ссылки
- Поиск циклических ссылок
- Исправление циклических ссылок
- Разрешение выполнения цикличных операций
- Вопросы и ответы
Принято считать, что циклические ссылки в Экселе представляют собой ошибочное выражение. Действительно, довольно часто это именно так, но все-таки не всегда. Иногда они применяются вполне осознанно. Давайте выясним, чем же являются циклические ссылки, как их создавать, как отыскать уже существующие в документе, как работать с ними или как при необходимости удалить.
Использование циклических ссылок
Прежде всего, выясним, что же представляет собой циклическая ссылка. По сути, это выражение, которое посредством формул в других ячейках ссылается само на себя. Так же ею может являться ссылка, расположенная в элементе листа, на который она сама ссылается.
Нужно отметить, что по умолчанию современные версии Excel автоматически блокируют процесс выполнения цикличной операции. Это связано с тем, что такие выражения в подавляющем большинстве ошибочные, а зацикливание производит постоянный процесс пересчета и вычисления, что создает дополнительную нагрузку на систему.
Создание циклической ссылки
Теперь посмотрим, как создать простейшее цикличное выражение. Это будет ссылка, расположенная в той же ячейке, на которую она ссылается.
- Выделяем элемент листа A1 и записываем в нем следующее выражение:
=A1
Далее жмем на кнопку Enter на клавиатуре.
- После этого появляется диалоговое окно предупреждения о циклическом выражении. Щелкаем в нем по кнопке «OK».
- Таким образом, мы получили цикличную операцию на листе, в которой ячейка ссылается сама на себя.
Немного усложним задачу и создадим циклическое выражение из нескольких ячеек.
- В любой элемент листа записываем число. Пусть это будет ячейка A1, а число 5.
- В другую ячейку (B1) записываем выражение:
=C1
- В следующий элемент (C1) производим запись такой формулы:
=A1
- После этого возвращаемся в ячейку A1, в которой установлено число 5. Ссылаемся в ней на элемент B1:
=B1
Жмем на кнопку Enter.
- Таким образом, цикл замкнулся, и мы получили классическую циклическую ссылку. После того, как окно предупреждения закрыто, мы видим, что программа пометила цикличную связь синими стрелками на листе, которые называются стрелками трассировки.
Теперь перейдем к созданию циклического выражения на примере таблицы. У нас имеется таблица реализации продуктов питания. Она состоит из четырех колонок, в которых указано наименование товара, количество проданной продукции, цена и сумма выручки от продажи всего объема. В таблице в последнем столбце уже имеются формулы. В них производится расчет выручки путем умножения количества на цену.
- Чтобы зациклить формулу в первой строчке, выделяем элемент листа с количеством первого по счету товара (B2). Вместо статического значения (6) вписываем туда формулу, которая будет считать количество товара путем деления общей суммы (D2) на цену (C2):
=D2/C2
Щелкаем по кнопке Enter.
- У нас получилась первая циклическая ссылка, взаимосвязь в которой привычно обозначена стрелкой трассировки. Но как видим, результат ошибочен и равен нулю, так как уже было сказано раньше, Excel блокирует выполнения цикличных операций.
- Скопируем выражение во все остальные ячейки столбца с количеством продукции. Для этого устанавливаем курсор в нижний правый угол того элемента, который уже содержит формулу. Курсор преобразуется в крестик, который принято называть маркером заполнения. Зажимаем левую кнопку мыши и тянем этот крестик до конца таблицы вниз.
- Как видим, выражение было скопировано во все элементы столбца. Но, помечена стрелкой трассировки только одна взаимосвязь. Заметим это на будущее.
Поиск циклических ссылок
Как мы уже видели выше, не во всех случаях программа помечает взаимосвязь циклической ссылки с объектами, даже если она имеется на листе. Учитывая тот факт, что в подавляющем большинстве цикличные операции вредны, их следует удалить. Но для этого их нужно сначала отыскать. Как же это сделать, если выражения не помечены линией со стрелками? Давайте разберемся с этой задачей.
- Итак, если при запуске файла Excel у вас открывается информационное окно о том, что он содержит циклическую ссылку, то её желательно отыскать. Для этого перемещаемся во вкладку «Формулы». Жмем на ленте на треугольник, который размещен справа от кнопки «Проверка наличия ошибок», расположенной в блоке инструментов «Зависимости формул». Открывается меню, в котором следует навести курсор на пункт «Циклические ссылки». После этого в следующем меню открывается список адресов элементов листа, в которых программа обнаружила цикличные выражения.
- При клике на конкретный адрес происходит выделение соответствующей ячейки на листе.
Существует ещё один способ узнать, где располагается циклическая ссылка. Сообщение о данной проблеме и адрес элемента, содержащего подобное выражение, располагается в левой части строки состояния, которая находится внизу окна Excel. Правда, в отличие от предыдущего варианта, на строке состояния отображаться будут адреса не всех элементов, содержащих циклические ссылки, если их много, а только одного из них, который появился раньше других.
К тому же, если вы находитесь в книге, содержащей цикличное выражение, не на том листе, где оно расположено, а на другом, то в этом случае в строке состояния будет отображаться только сообщение о наличие ошибки без адреса.
Урок: Как найти циклические ссылки в Excel
Исправление циклических ссылок
Как уже говорилось выше, в подавляющем большинстве случаев цикличные операции – это зло, от которого следует избавляться. Поэтому, закономерно, что после того, как цикличная связь обнаружена, нужно её исправить, чтобы привести формулу к нормальному виду.
Для того, чтобы исправить цикличную зависимость, нужно проследить всю взаимосвязь ячеек. Даже если проверка указала конкретную ячейку, то ошибка может крыться не в ней самой, а в другом элементе цепочки зависимости.
- В нашем случае, несмотря на то, что программа верно указала на одну из ячеек цикла (D6), реальная ошибка кроется в другой ячейке. Выделяем элемент D6, чтобы узнать, из каких ячеек он подтягивает значение. Смотрим на выражение в строке формул. Как видим, значение в этом элементе листа формируется путем умножения содержимого ячеек B6 и C6.
- Переходим к ячейке C6. Выделяем её и смотрим на строку формул. Как видим, это обычное статическое значение (1000), которое не является продуктом вычисления формулы. Поэтому можно с уверенностью сказать, что указанный элемент не содержит ошибки, вызывающей создание циклических операций.
- Переходим к следующей ячейке (B6). После выделения в строке формул мы видим, что она содержит вычисляемое выражение (=D6/C6), которое подтягивает данные из других элементов таблицы, в частности, из ячейки D6. Таким образом, ячейка D6 ссылается на данные элемента B6 и наоборот, что вызывает зацикленность.
Тут взаимосвязь мы вычислили довольно быстро, но в реальности бывают случаи, когда в процессе вычисления участвует множество ячеек, а не три элемента, как у нас. Тогда поиск может занять довольно много времени, ведь придется изучить каждый элемент цикличности.
- Теперь нам нужно понять, в какой именно ячейке (B6 или D6) содержится ошибка. Хотя, формально это даже не ошибка, а просто избыточное использование ссылок, которое приводит к зацикливанию. Во время процесса решения того, какую ячейку следует отредактировать, нужно применять логику. Тут нет четкого алгоритма действий. В каждом конкретном случае эта логика будет своя.
Например, если в нашей таблице общая сумма должна вычисляться путем умножения количества фактически проданного товара на его цену, то можно сказать, что ссылка, рассчитывающая количество от общей суммы продажи, тут явно лишняя. Поэтому мы её удаляем и заменяем на статическое значение.
- Подобную операцию проводим и над всеми другими цикличными выражениями, если они имеются на листе. После того, как абсолютно все циклические ссылки были удалены из книги, сообщение о наличие данной проблемы должно исчезнуть из строки состояния.
Кроме того, полностью ли были удалены цикличные выражения, можно узнать, воспользовавшись инструментом проверки наличия ошибок. Переходим во вкладку «Формулы» и жмем уже знакомый нам треугольник справа от кнопки «Проверка наличия ошибок» в группе инструментов «Зависимости формул». Если в запустившемся меню пункт «Циклические ссылки» не будет активен, то, значит, мы удалили все подобные объекты из документа. В обратном случае, нужно будет применить процедуру удаления к элементам, которые находятся в списке, тем же рассматриваемым ранее способом.
Разрешение выполнения цикличных операций
В предшествующей части урока мы рассказывали, в основном, как бороться с циклическими ссылками, или как их найти. Но, ранее разговор шел также о том, что в некоторых случаях они, наоборот, могут быть полезными и осознанно использоваться пользователем. Например, довольно часто данный метод применяется для итеративных вычислений при построении экономических моделей. Но беда состоит в том, что, независимо от того, осознанно или неосознанно вы используете циклическое выражение, Excel по умолчанию все равно будет блокировать операцию по ним, дабы не привести к излишней перегрузке системы. В таком случае актуальным становится вопрос принудительного отключения такой блокировки. Посмотрим, как это сделать.
- Прежде всего, перемещаемся во вкладку «Файл» приложения Excel.
- Далее щелкаем по пункту «Параметры», расположенному в левой части открывшегося окна.
- Происходит запуск окна параметров Эксель. Нам нужно перейти во вкладку «Формулы».
- Именно в открывшемся окне можно будет произвести разрешение выполнения цикличных операций. Переходим в правый блок этого окна, где находятся непосредственно сами настройки Excel. Мы будем работать с блоком настроек «Параметры вычислений», который расположен в самом верху.
Чтобы разрешить применение цикличных выражений, нужно установить галочку около параметра «Включить итеративные вычисления». Кроме того, в этом же блоке можно настроить предельное число итераций и относительную погрешность. По умолчанию их значения равны 100 и 0,001 соответственно. В большинстве случаев данные параметры изменять не нужно, хотя при необходимости или при желании можно внести изменения в указанные поля. Но тут нужно учесть, что слишком большое количество итераций может привести к серьезной нагрузке на программу и систему в целом, особенно если вы работаете с файлом, в котором размещено много цикличных выражений.
Итак, устанавливаем галочку около параметра «Включить итеративные вычисления», а затем, чтобы новые настройки вступили в силу, жмем на кнопку «OK», размещенную в нижней части окна параметров Excel.
- После этого мы автоматически переходим на лист текущей книги. Как видим, в ячейках, в которых располагаются цикличные формулы, теперь значения рассчитываются корректно. Программа не блокирует вычисления в них.
Но все-таки стоит заметить, что включением цикличных операций злоупотреблять не стоит. Применять данную возможность следует только тогда, когда пользователь полностью уверен в её необходимости. Необоснованное включение цикличных операций может не только привести к избыточной нагрузке на систему и замедлить вычисления при работе с документом, но пользователь может неумышленно внести ошибочное цикличное выражение, которое по умолчанию тут же было бы заблокировано программой.
Как мы видим, в подавляющем большинстве случаев, циклические ссылки представляют собой явление, с которым нужно бороться. Для этого, прежде всего, следует обнаружить саму цикличную взаимосвязь, затем вычислить ячейку, где содержится ошибка, и, наконец, устранить её, внеся соответствующие коррективы. Но в отдельных случаях цикличные операции могут быть полезны при вычислениях и производиться пользователем осознанно. Но даже тогда стоит к их использованию подходить с осторожностью, правильно настроив Excel и зная меру в добавлении подобных ссылок, которые при использовании в массовом количестве способны замедлить работу системы.
Одиночные условия функции ЕСЛИ, которые проверяют в первом аргументе выполняется ли условие, можно объединять с последующим условием во втором и/или в третьем аргументе (в зависимости от поставленной задачи). Данное решение в Excel называется циклование функций или функция ЕСЛИ с несколькими условиями. Второй и третий аргументы: Значение_если_ИСТНИА и Значение_если_ЛОЖЬ в функции также могут содержать простые условия, как и первый аргумент. Таким образом можно проверять несколько условий, при чем проверка очередного условия зависит от результата проверки предыдущего.
Формула с несколькими функциями ЕСЛИ в Excel
Ниже на рисунке изображен рабочий лист с двумя выпадающими списками, в которых пользователь может указать тип автомобиля и его характеристики.
В ячейках A2 и C2 находятся выпадающие списки. Свойства характеристик автомобиля записаны в двух диапазонах ячеек ниже под этими таблицами D2:D3 и D6:D7. Создайте выпадающие списки выбрав инструмент: «ДАННЫЕ»-«Работа с данными»-«Проверка данных», в окне «Проверка вводимых значений» укажите «Тип данных: Список». Заполните их параметры так как показано ниже на рисунке:
В данном примере используется формула в ячейке C7, которая в зависимости от типа и характеристик автомобиля возвращает его категорию кузова: Седан, Купе, Пикап или Внедорожник:
В данной формуле результат вычисления первого логического выражения по первому условию влияет на результат, возвращаемый вторым логическим выражением по второму условию. Рисунок:
В данном примере если проверяемая ячейка содержит значение «Легковой», тогда во втором условии проверяется имеет ли другая ячейка значение 2-хдверный или 4-хдверный. А если же проверяемая ячейка в первом условии имеет значение «Грузовик», тогда проверяется второе условие. Теперь оно проверяет содержит ли другая ячейка значение «с задним сидением» или «без заднего сидения».
Базовым инструментом для выполнения условных анализов данных в Excel является функция ЕСЛИ. Если необходимо выполнить анализ данных по нескольким условиям эту функцию можно зациклить, для этого в ее аргументах снова использовать еще одну функцию ЕСЛИ. В выше приведенном примере первая функция ЕСЛИ проверяет содержимое ячейки A2. Функция вместо того чтобы вернуть результат из второго аргумента вызывает вторую функцию ЕСЛИ, которая уже проверяет значение ячейки C2 по второму условию. Аналогично в третьем аргументе первой функции не содержится обычное значение, а третья функция ЕСЛИ, которая также проверяет значения ячейки C2, но уже по другому своему условию.
На рисунке примера мы видим, что пользователь выбрал из выпадающего списка тип автомобиля «Грузовик». Логическое выражение в первой функции ЕСЛИ вернуло значение ЛОЖЬ, так как содержимое ячейки A2 не равно значению «Легковой», поэтому возвращается второй аргумент первой функции. А в том аргументе формула проверяла: содержит ли ячейка C2 значение «с задним сидением» и вернула значение первого аргумента «Внедорожник». Если бы пользователь во втором выпадающем списке указал на опцию «без заднего сидения», тогда было бы возвращено содержимое третьего аргумента третьей функции ЕСЛИ – «Пикап».
Проверка по нескольким условиям без использования функции ЕСЛИ
В старых версиях Excel до 2007-й версии можно было создавать не больше 7-ми уровней циклирования функций ЕСЛИ. Начиная с 2007-й версии Excel, количество циклов увеличено до 64-х уровней. Как не сложно догадаться формулы с зацикленными функциями ЕСЛИ по нескольким условиям уже на 5-ом уровне весьма нечитабельны и сложно применимы, не говоря уже о 7-ми или 64-х уровнях. Если требуется формула больше чем для 3-х – 4-х уровней циклирования, стоит поискать альтернативные методы.
Альтернативная формула с одной функцией ЕСЛИ и ВПР
Когда формула содержит слишком много зацикленных логических функций ЕСЛИ, ее сложно использовать и прочитать. Ниже на рисунке приведен немного другой пример выборки типа кузова автомобиля. Вместо ввода постоянных значений в аргументах функций ЕСЛИ, можно указать ссылки на ячейки, которые содержат соответствующие значения. Например, возле ячейки с тестом «4-хдерный» находится текст «Седан». На эти значения можно ссылаться прямо из формулы.
Новая альтернативная формула будет выглядеть следующим образом:
Мы получили аналогичный результат. Условия первой функции ЕСЛИ остается неизменным. Однако во втором ее аргументе уже содержится функция ВПР, которая умеет искать значения по условию в диапазоне ячеек D2:E3. А в третьем аргументе функции ЕСЛИ формула ВПР ищет значения по условию в диапазоне D6:E7.
Проверка ввода данных по условию динамических выпадающих списков
Выпадающие списки для ввода данных пользователем показаны на рисунке примера этой статьи. Это стандартный инструмент проверки вода данных Excel. Пользователь не вводит значение в ячейку, а лишь выбирает его из выпадающего списка.
Создадим зависимый выпадающий список с динамическим изменением значений. Вам необходимо изменить правила проверки ввода данных выпадающим списком в ячейке C2 использовать интересную технику с функцией =ДВССЫЛ(). Благодаря ей содержимое выпадающего списка будет изменятся в зависимости от значения в ячейке A2.
Выше на рисунке изображено окно «Проверки вводимых значений» с формулой для списка в ячейке C2.
Еще определим на листе 2 имена диапазонов для ячеек. Диапазон с именем «Легковой» охватывает ячейки D2:D3, а диапазон имени «Грузовик» относится к ячейкам D6:D7. Можно просто выделить диапазон и в поле «Имя» ввести название. Или создать имена по инструкции: «ФОРМУЛЫ»-«Диспетчер имен»-«Создать» как изображено ниже на рисунке:
Эти имена диапазонов идентично совпадают со значениями позиций первого выпадающего списка для ячейки A2. А как вы помните поле ввода «Источник:» содержит функцию ДВССЫЛ со ссылкой на ячейку A2 в ее аргументе.
Аргумент функции ДВССЫЛ получает текст с помощью ссылки на ячейку A2. Например, в данном случае формула имеет отладочный вид: =ДВССЫЛ(«Грузовик»), так как на данный момент ячейка A2 содержит этот текст. Это же и есть имя диапазона. В результате вычислений функция ДВССЫЛ возвращает ссылку с адресом диапазона ячеек D6:D7. А значения этих ячеек используются для второго выпадающего списка в ячейке C2. Когда ячейка A2 будет содержать слово «Легковой», тогда функция ДВССЫЛ вернет уже ссылку на другой диапазон ячеек D2:D3, который бы использовался во втором выпадающем списке. Таким образом мы получаем динамический выпадающий список в ячейке C2, который меняет свои значения при условии выбора по первому выпадающему списку.
Теперь связанный выпадающий список не содержит лишних опций, как ему и полагается.
Единственная проблема осталась этом примере это то, что в момент изменения значения пользователем в ячейке A2, автоматически не меняется значение в C2. Перечень значений – обновляются, а значения в ячейке будут обновлены только после использования списком. Поэтому пользователь должен обязательно использовать 2 списка для обновления значений в обеих ячейках. Иначе будут ошибочные результаты при вычислении формулы.
Макрос для связанного динамического выпадающего списка
Но можно для нашего листа просто прописать в пару строчек кода элементарный макрос для очистки ячейки B2 при каждом использовании выпадающего списка в A2. Для этого откройте окно редактора VBA-кода макросов: «РАЗРАБОТЧИК»-«VisualBasic» или нажмите ALT+F11. После чего вставите это код в лист где находится таблица:
А в ячейке C7 где была старая формула вводим новую формулу с функцией ВПР:
Скачать примеры проверки значений по нескольким условиям
В результате нам не нужна функция ЕСЛИ для проверки значений по нескольким условиям.
Все должно быть просто и красиво ведь в этом и заключается магия!
Прежде, чем мы приступим к поиску циклических ссылок в таблицах Эксель, давайте разберемся, что это вообще такое.
Циклические ссылки встречаются в формулах, в которых ячейка ссылается на другие ячейки, которые в свою очередь могут ссылаются на другие и т.д., и в итоге, получается так, что начальная ячейка (в которой формула) через цепочку ссылок на другие ячейки, ссылается на саму себя.
Иногда пользователи целенаправленно используют подобную схему для выполнения определенных вычислений. Однако, чаще всего, подобные ситуации – результат ошибки в формуле, вероятнее всего, сделанной пользователей случайно или по незнанию специфики работы в программе.
Потому очень важно уметь находить и устранять циклические ссылки, особенно, в документе, полученном от другого пользователя, который могу допустить такие ошибки.
Содержание
- Нахождение циклических ссылок
- Метод 1. Визуальный поиск циклической ссылки
- Метод 2. Использование инструментов на Ленте
- Заключение
Нахождение циклических ссылок
Когда в документе есть циклическая ссылка, при его открытии Excel проинформирует нас об этом в соответствующем окошке.
Следовательно, ломать голову над тем, если ли в книге циклическая ссылка (ссылки) или нет, не нужно, так как это понятно в момент его открытия. Остается только определить, где именно она находится.
Метод 1. Визуальный поиск циклической ссылки
Данный способ самый простой, однако, удобен лишь при работе с небольшими таблицами.
- Для начала нам нужно закрыть всплывшее диалоговое окно, предупреждающее нас о том, что в книге присутствует циклическая ссылка.
- После этого в таблице отобразится так называемая стрелка трассировки, наглядно демонстрирующая связь между ячейками, которая вызывает ошибку.
- Переходим в ту ячейку, куда указывает стрелка и исправляем формулу, чтобы избавиться от цикличности. В нашем случае лишним элементом является ячейка F13, поэтому убираем ее и формулы.
- Все готово. Теперь в нашей таблице нет циклических ссылок.
Метод 2. Использование инструментов на Ленте
Иногда бывает так, что стрелки, помогающие определить циклическую связь между ячейкам не отображаются в книге. В этом случае поступаем следующим образом:
- Начнем с того, что закроем информационное окно о наличии циклической ссылки.
- Теперь переключаемся во вкладку “Формулы”. Обращаем внимание на раздел “Зависимости формул”. Здесь нас интересует кнопка “Проверка ошибок” (в некоторых случаях, когда размеры окна сжаты по горизонтали, отображается только значок кнопки в виде восклицательного знака). Щелкаем по небольшому треугольнику, направленному вниз, справа от кнопки. Откроется перечень команд, среди которых выбираем пункт “Циклические ссылки”, после чего откроется список всех ячеек, содержащих эти самые ссылки.
- Если мы щелкнем на адрес ячейки, программа сразу же выделит ее, независимо от того, в какой ячейке мы находились до того, как решили воспользоваться данной функцией.
- Нам остается только разобраться с формулой и исправить допущенные в ней ошибки. В нашем случае в диапазон суммируемых ячеек была включена и ячейка, куда записана сама формула, что конечно же, неверно.
- Корректируем координаты диапазона в формуле, чтобы избавиться от цикличности.
- Чтобы удостовериться в том, что теперь все в порядке, снова раскрываем перечень команд рядом с кнопкой “Проверка ошибок”. На этот раз пункт “Циклические ссылки” неактивен, что свидетельствует о том, что ошибки устранены.
Заключение
Итак, как вы могли убедиться, в нахождении и удалении циклических ссылок в Excel нет никаких сложностей. При работе с небольшими таблицами достаточно визуального осмотра на наличие стрелок трассировки, указывающих на ссылки, которые мы ищем. Если документ достаточно объемный, либо не хочется терять время на поиск “проблемных” мест таблицы вручную, нас выручит инструмент под названием “Поиск ошибок”.
Ранее я описал, как найти и исправить циклическую ссылку. Напомню, что циклическая ссылка появляется, если в ячейку Excel введена формула, содержащая ссылку на саму эту ячейку (напрямую или через цепочку других ссылок). Например (рис. 1), в ячейке С2 находится формула, ссылающаяся на саму ячейку С2.
Рис. 1. Пример циклической ссылки
Но!.. Не всегда циклическая ссылка является бедствием. Циклическую ссылку можно использовать для решения уравнений итерационным способом. Для начала нужно позволить Excel вести вычисления, даже при наличии циклической ссылки. В обычном режиме Excel, обнаружив циклическую ссылку, выдаст сообщение об ошибке, и потребует ее устранения. В обычном режиме Excel не может провести вычисления, так как циклическая ссылка порождает бесконечный цикл вычислений. Можно, либо устранить циклическую ссылку, либо допустить вычисления по формуле с циклической ссылкой, но ограничив число повторений цикла. Для реализации второй возможности щелкните на кнопке «Office» (в левом верхнем углу), а затем на «Параметры Excel» (рис. 2).
Скачать заметку в формате Word, примеры в формате Excel
Рис. 2. Параметры Excel
В открывшемся окне «Параметры Excel» перейдите на вкладку Формулы и отметьте «Включить итеративные вычисления» (рис. 3). Помните, что эта опция включается для приложения Excel в целом (а не для одного файла), и будет действовать, пока вы ее не отключите.
Рис. 3. Включить итеративные вычисления
На этой же вкладе, можно выбрать, как будут вестись вычисления: автоматически или вручную. При автоматическом вычислении Excel сразу рассчитает конечный результат, при вычислениях, вручную, можно будет наблюдать результат каждой итерации (простым нажатием F9 запуская каждый новый цикл вычисления).
Решим уравнение третьей степени: х3 – 4х2 – 4х + 5 = 0 (рис. 4). Для решения этого уравнения (и любого другого уравнения совершенно произвольного вида) понадобится всего одна ячейка Excel.
Рис. 4. График функции f(x)
Для решения уравнения нам понадобится рекуррентная формула (то есть, формула, выражающая каждый член последовательности через один или несколько предыдущих членов):
(1) x = x – f(x)/f’(x), где
х – переменная;
f(x) – функция, задающая уравнение, корни которого мы ищем; f(x) = х3 – 4х2 – 4х + 5
f’(x) – производная нашей функции f(x); f’(x) = 3х2 – 8х – 4; производные основных элементарных функций можно посмотреть здесь.
Если вы заинтересовались, откуда взялась формула (1), можете почитать, например, здесь.
Итоговая рекуррентная формула имеет вид:
(2) х = x – (х3 – 4х2 – 4х + 5)/(3х2 – 8х – 4)
Выберем любую ячейку на листе Excel (рис. 5; в нашем примере это ячейка G19), присвоим ей имя х, и введем в нее формулу:
(3) =x-(x^3-4*x^2-4x+5)/(3*x^2-8*x-4)
Можно вместо х использовать адрес ячейки… но согласитесь, что имя х, смотрится привлекательнее; следующую формулу я ввел в ячейку G20:
(4) =G20-(G20^3-4*G20^2-4*G20+5)/(3*G20^2-8*G20-4)
Рис. 5. Рекуррентная формула: (а) для поименованной ячейки; (б) для обычного адреса ячейки
Как только мы введем формулу и нажмем Enter, в ячейке сразу же появится ответ – значение 0,77. Это значение соответствует одному из корней уравнения, а именно второму (см. график функции f(x) на рис. 4). Поскольку начальное приближение не задавалось, итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке х и равного нулю. Как же получить остальные корни уравнения?
Для изменения стартового значения, с которого рекуррентная формула начинает свои итерации, предлагается использовать функцию ЕСЛИ: [1]
(5) =ЕСЛИ(x=0;-5;x-(x^3-4*x^2-4*x+5)/(3*x^2-8*x-4))
Здесь значение «-5» – начальное значение для рекуррентной формулы. Изменяя его, можно выйти на все корни уравнения:
Начальное значение | Корень уравнения |
1 | 0,77 |
-5 | -1,40 |
8 | 4,63 |
[1] Идея подсмотрена здесь
Содержание
- Предупреждение о циклической ссылке
- Как найти циклическую ссылку
- Параметры вычислений
- Руководство по проверке данных Excel
- Контроль достоверности данных
- Важное ограничение
- Определение правил проверки данных
- Параметры проверки данных
- Простое выпадающее меню
- Проверка данных с помощью пользовательской формулы
- Формулы устранения неполадок
- Примеры формул проверки данных
- Как автоматически выделять диапазоны для выборки ячеек из таблицы?
- Динамическое определение границ выборки ячеек
- Заполнение диапазона
- Перемещение диапазона
- Копировать/вставить диапазон
- Примеры использования функции АГРЕГАТ в Excel
- Панель формул
- Ручной ввод функции
- Расчет среднего значения
- Использование арифметического выражения
- Использование функции СРЗНАЧ
- Присвоение диапазона ячеек переменной
- Адресация ячеек в диапазоне
- Заключение
Предупреждение о циклической ссылке
Появление циклических ссылок очень легко определить. При их возникновении или наличии в уже созданной книге excel сразу же появляется предупреждение о циклической ссылке, которое по большому счету и описывает суть явления.
При нажатии на кнопку ОК, сообщение будет закрыто, а в ячейке содержащей циклическую ссылку в большинстве случаев появиться 0.
Предупреждение, как правило, появляется при первоначальном создании циклической ссылки, или открытии книги содержащей циклические ссылки. Если предупреждение принято, то при дальнейшем возникновении циклических ссылок оно может не появляться.
Как найти циклическую ссылку
Циклические ссылки в excel могут создаваться преднамеренно, для решения тех или иных задач финансового моделирования, а могут возникать случайно, в виде технических ошибок и ошибок в логике построения модели.
В первом случае мы знаем об их наличии, так как сами их предварительно создали, и знаем, зачем они нам нужны.
Во втором случае, мы можем вообще не знать где они находятся, например, при открытии чужого файла и появлении сообщения о наличии циклических ссылок.
Найти циклическую ссылку можно несколькими способами. Например, чисто визуально формулы и ячейки участвующие в образовании циклических ссылок в excel отмечаются синими стрелками, как показано на первом рисунке.
Если циклическая ссылка одна на листе, то в строке состояния будет выведено сообщение о наличии циклических ссылок с адресом ячейки.
Если циклические ссылки есть еще на других листах кроме активного, то будет выведено сообщение без указания ячейки.
Если или на активном листе их более одной, то будет выведено сообщение с указанием ячейки, где циклическая ссылка появляется в первый раз, после ее удаления – ячейка, содержащая следующую циклическую ссылку и т.д.
Найти циклическую ссылку можно также при помощи инструмента поиска ошибок.
На вкладке Формулы в группе Зависимости формул выберите элемент Поиск ошибок и в раскрывающемся списке пункт Циклические ссылки.
Вы увидите адрес ячейки с первой встречающейся циклической ссылкой. После ее корректировки или удаления – со второй и т.д.
Теперь, после того как мы выяснили как найти и убрать циклическую ссылку, рассмотрим ситуации, когда делать этого не нужно. То есть когда циклическая ссылка в excel приносит нам определенную пользу.
Параметры вычислений
Следующий список поясняет опции, которые доступны в разделе Calculation options (Параметры вычислений):
- Automatic (Автоматически) – пересчитывает все зависимые формулы и обновляет все открытые или внедрённые диаграммы при любом изменении значения, формулы или имени. Данная настройка установлена по умолчанию для каждого нового рабочего листа Excel.
- Automatic except for data tables (Автоматически, кроме таблиц данных) – пересчитывает все зависимые формулы и обновляет все открытые или внедрённые диаграммы, за исключением таблиц данных. Для пересчета таблиц данных, когда данная опция выбрана, воспользуйтесь командой Calculate Now (Пересчет), расположенной на вкладке Formulas (Формулы) или клавишей F9.
- Manual (Вручную) – пересчитывает открытые рабочие листы и обновляет открытые или внедрённые диаграммы только при нажатии команды Calculate Now (Пересчет) или клавиши F9, а так же при использовании комбинации клавиши Ctrl+F9 (только для активного листа).
- Recalculate workbook before saving (Пересчитывать книгу перед сохранением) – пересчитывает открытые рабочие листы и обновляет открытые или внедрённые диаграммы при их сохранении даже при включенной опции Manual (Вручную). Если Вы не хотите, чтобы при каждом сохранении зависимые формулы и диаграммы пересчитывались, просто отключите данную опцию.
- Enable iterative calculation (Включить итеративные вычисления) – разрешает итеративные вычисления, т.е. позволяет задавать предельное количество итераций и относительную погрешность вычислений, когда формулы будут пересчитываться при подборе параметра или при использовании циклических ссылок. Более детальную информацию о подборе параметров и использовании циклических ссылок можно найти в справке Microsoft Excel.
- Maximum Iterations (Предельное число итераций) – определяет максимальное количество итераций (по умолчанию – 100).
- Maximum Change (Относительная погрешность) – устанавливает максимально допустимую разницу между результатами пересчета (по умолчанию – 0.001).
Вы также можете переключаться между тремя основными режимами вычислений, используя команду Calculation Options (Параметры вычислений) в разделе Calculation (Вычисление) на вкладке Formulas (Формулы). Однако, если необходимо настроить параметры вычислений, все же придется обратиться к вкладке Formulas (Формулы) диалогового окна Excel Options (Параметры Excel).
Проверка данных — это функция в Excel, используемая для контроля того, что пользователь может ввести в ячейку. Например, вы можете использовать проверку данных, чтобы убедиться, что:
- значение является числом от 1 до 6
- дата произойдет в следующие 30 дней
- текстовая запись содержит менее 25 символов
Проверка данных может просто отображать сообщение пользователю с информацией, что разрешено, как показано ниже:
Сообщение отображается автоматически при выборе ячейки
Проверка данных также может остановить неправильный ввод данных пользователем. Например, если код сотрудника не проходит проверку, вы можете увидеть следующее сообщение:
Пример сообщения об ошибке
Кроме того, проверка данных может использоваться для предоставления пользователю определенного выбора в раскрывающемся меню:
Пример раскрывающегося меню проверки данных
Это очень удобно, так как можно дать пользователю именно те значения, которые уже соответствуют требованиям.
Контроль достоверности данных
Проверка данных осуществляется с помощью правил, определенных в пользовательском интерфейсе Excel на вкладке «Данные» на ленте.
Элементы управления проверкой данных на вкладке ДАННЫЕ
Важное ограничение
Важно понимать, что проверку данных можно легко обойти. Если пользователь копирует данные из ячейки без проверки в ячейку с проверкой данных, проверка уничтожается (или заменяется). Проверка данных — это хороший способ помочь пользователям, сообщив им критерии ввода, но он не дает гарантированную защиту от ошибок.
Определение правил проверки данных
Проверка данных определяется в окне с 3 вкладками: Параметры, Сообщение для ввода и Сообщение об ошибке:
Окно проверки данных имеет три основные вкладки
На вкладке Параметры вы можете ввести критерии проверки. Существует ряд встроенных правил проверки с различными параметрами, также можно выбрать «Другой» и использовать собственную формулу для проверки ввода, как показано ниже:
Пример вкладки настроек проверки данных
Вкладка «Сообщение для ввода» определяет сообщение, отображаемое при выборе ячейки с правилами проверки. Оно не является обязательным.
Если сообщение не установлено, оно не отображается, когда пользователь выбирает ячейку с примененной проверкой данных.
Входное сообщение не влияет на то, что пользователь может ввести — оно просто отображает сообщение, чтобы сообщить пользователю, что разрешено или ожидается.
Вкладка настройки сообщения проверки данных
Вкладка «Сообщение об ошибке» определяет, как выполняется проверка. Например, когда вид установлен на «Останов», неверные данные вызывают окно с сообщением, и ввод не разрешен.
Вкладка предупреждения об ошибке проверки данных
Пользователь видит сообщение, подобное этому:
Пример сообщения об ошибке проверки данных
Когда в поле «Вид» установлено значение «Сообщение» или «Предупреждение», изменяется значок, отображаемый с пользовательским сообщением. Пользователь может игнорировать сообщение и вводить значения, которые не проходят проверку. Ниже обобщено поведение каждого вида предупреждения об ошибке.
Не позволяет пользователям вводить недопустимые данные в ячейку. Пользователи могут повторить попытку, но должны ввести значение, которое проходит проверку данных. В окне предупреждения «Останов» есть три опции: «Повторить», «Отмена» и «Справка».
Предупреждает пользователей о том, что данные неверны. Предупреждение ничего не делает, чтобы остановить ввод неверных данных. В окне «Предупреждение» есть три параметра: «Да» (для принятия недействительных данных), «Нет» (для редактирования недействительных данных), «Отмена» (для удаления недействительных данных) и «Справка».
Параметры проверки данных
При создании правила проверки данных доступно восемь параметров:
Любое значение — проверка не выполняется. Примечание: если проверка данных ранее применялась с установленным входным сообщением, сообщение все равно будет отображаться при выборе ячейки, даже если выбрано любое значение.
Целое число — разрешены только целые числа. Как только опция целого числа выбрана, другие опции становятся доступными для дальнейшего ограничения ввода. Например, вам может потребоваться целое число от 1 до 10.
Действительное — работает как опция целого числа, но допускает десятичные значения. Например, если для параметра «Действительное» задано значение от 0 до 3, допустимы все значения, такие как 0,5 и 2,5.
Список — разрешены только значения из предварительно определенного списка. Значения представляются пользователю как выпадающее меню. Допустимые значения могут быть жестко заданы непосредственно на вкладке «Параметры» или указаны в виде диапазона на рабочем листе.
Дата — разрешены только даты. Например, вам может потребоваться дата между 1 января 2018 года и 31 декабря 2021 года или дата после 1 июня 2018 года.
Время — разрешено только время. Например, вы можете указать время между 9:00 и 17:00 или разрешить время только после 12:00.
Длина текста — проверяет ввод на основе количества символов или цифр. Например, вам может потребоваться код из 5 цифр.
Другой — проверяет ввод с использованием пользовательской формулы. Другими словами, вы можете написать собственную формулу для проверки ввода. Пользовательские формулы значительно расширяют возможности проверки данных. Например, вы можете использовать формулу, чтобы обеспечить значение в верхнем регистре, или значение, которое содержит «АБВ».
На вкладке параметров также есть два флажка:
Игнорировать пустые ячейки — говорит Excel не проверять ячейки, которые не содержат значений. На практике этот параметр влияет только на команду «Обвести неверные данные». Когда эта опция включена, пустые ячейки не обведены, даже если они не прошли проверку.
Распространить изменения на другие ячейки с тем же условием — этот параметр обновит проверку, примененную к другим ячейкам, когда она будет соответствовать (оригинальной) проверке редактируемых ячеек.
Простое выпадающее меню
Вы можете предоставить пользователю раскрывающееся меню опций, жестко закодировав значения в поле настроек или выбрав диапазон на листе. Например, чтобы ограничить записи действиями «ПРИНЯТ», «В ОБРАБОТКЕ» или «ОТГРУЖЕН», вы можете ввести эти значения через точку с запятой:
Раскрывающееся меню проверки данных с жестко заданными значениями
При применении к ячейке на рабочем листе раскрывающееся меню работает следующим образом:
Читайте также: Как сделать строку в excel 2003 неподвижной?
Используются жестко заданные значения выпадающего меню проверки данных
Другой способ ввода значений в раскрывающееся меню — использование ссылки на рабочий лист. Например, с размерами (то есть маленький, средний и т.д.) в диапазоне F4:F6. Вы можете указать этот диапазон непосредственно в окне настроек проверки данных:
Значения выпадающего меню проверки данных со ссылкой на диапазон
Обратите внимание, что диапазон вводится как абсолютный адрес, чтобы предотвратить его изменение, поскольку проверка данных применяется к другим ячейкам.
Подсказка. Щелкните значок маленькой стрелки в дальнем правом углу поля «Источник», чтобы сделать выбор непосредственно на рабочем листе, чтобы вам не приходилось вводить диапазон вручную.
Вы также можете использовать именованные диапазоны для указания значений. Например, с именованным диапазоном под названием «размер» для F4:F6, вы можете ввести имя непосредственно в окне, начиная со знака равенства:
Значения выпадающего меню проверки данных с именованным диапазоном
Именованные диапазоны автоматически являются абсолютными, поэтому они не изменятся.
Вы также можете создавать зависимые выпадающие списки с пользовательской формулой.Совет.
Если вы используете таблицу для раскрывающихся значений, Excel будет автоматически расширять или сокращать таблицу при добавлении или удалении значений.
Другими словами, Excel будет автоматически синхронизировать раскрывающийся список со значениями в таблице при изменении, добавлении или удалении значений.
Проверка данных с помощью пользовательской формулы
Формулы проверки данных должны быть логическими формулами, которые возвращают ИСТИНА, если ввод действителен, и ЛОЖЬ, если ввод недействителен. Например, чтобы разрешить ввод любого числа в ячейку A1, вы можете использовать функцию ЕЧИСЛО (ISNUMBER) в формуле, подобной этой:
= ЕЧИСЛО (А1)
Если пользователь вводит значение 10 в A1, ЕЧИСЛО (ISNUMBER) возвращает ИСТИНА, и проверка данных завершается успешно. Если вводится значение типа «яблоко» в A1, ЕЧИСЛО (ISNUMBER) возвращает ЛОЖЬ, и проверка данных завершается неудачно.
Чтобы включить проверку данных с помощью формулы, выберите «Другой» на вкладке «Параметры», затем введите формулу, начиная со знака равенства (=), как обычно.
Формулы устранения неполадок
Excel игнорирует формулы проверки данных, которые возвращают ошибки.
Если формула не работает, и вы не можете понять, почему, настройте фиктивные формулы, чтобы убедиться, что формула работает так, как вы ожидаете.
Фиктивные формулы — это просто формулы проверки данных, введенные непосредственно на листе, чтобы вы могли легко увидеть, что они возвращают. На приведенном ниже экране показан пример:
Проверка достоверности данныхс помощью фиктивных формул
После того, как фиктивная формула заработает так, как вы хотите, просто скопируйте и вставьте ее в область формулы проверки данных.
Примеры формул проверки данных
Возможности для проверки данных пользовательских формул практически не ограничены. Вот несколько примеров для вдохновения:
Чтобы разрешить только 5 символьных значений, начинающихся с «z», вы можете использовать:
= И (ЛЕВСИМВ (А1) = «z»; ДЛСТР (A1) = 5)
Эта формула возвращает ИСТИНА только тогда, когда код длиной 5 цифр и начинается с «z». Два значения в примере выше возвращают ЛОЖЬ с этой формулой.
Чтобы разрешить ввод даты в течение 30 дней с сегодняшнего дня:
= И (А1> СЕГОДНЯ (), А1
Как автоматически выделять диапазоны для выборки ячеек из таблицы?
Задание является следующим. В одном из столбцов в разных ячейках находятся какие-то значения (в данном случае текстовые строки “граница”). Они определяют начало и конец секторов (диапазонов). Эти значения вставлены автоматически и могут появляться в разных ячейках. Их размеры и количество в них ячеек также может быть разным. Например, на рисунке ниже выбран сектор данных (диапазон) номер 2.
Все, что следует сейчас сделать – это создать возможность легкого и быстрого выбора диапазона, который нас интересует (вписывая номер диапазона в одну из ячеек для выбора).
Динамическое определение границ выборки ячеек
Для наглядности приведем решение этой задачи с использованием вспомогательного столбца. В первую ячейку в вспомогательном столбце (A7) вводим формулу:
и копируем ее вниз в оставшиеся ячейки. Везде, где в ячейках соседнего столбца находится значение “граница”, функция возвращает номер строки. В противном случае возвращает пустую строку.
Следующим шагом будет динамическое определение адреса для выборки диапазона данных из исходного списка в соответствии с критерием отбора.
Изменяемое значение критерия для управления выборкой данных из таблицы будет указано в ячейке C1. Там мы указываем порядковый номер диапазона, данные которого нас интересуют в конкретный момент.
Заполнение диапазона
Чтобы заполнить диапазон, следуйте инструкции ниже:
- Введите значение 2 в ячейку B2.
- Выделите ячейку В2, зажмите её нижний правый угол и протяните вниз до ячейки В8.
Результат:
Эта техника протаскивания очень важна, вы будете часто использовать её в Excel. Вот еще один пример:
- Введите значение 2 в ячейку В2 и значение 4 в ячейку B3.
- Выделите ячейки B2 и B3, зажмите нижний правый угол этого диапазона и протяните его вниз.
Excel автоматически заполняет диапазон, основываясь на шаблоне из первых двух значений. Классно, не правда ли? Вот еще один пример:
- Введите дату 13/6/2013 в ячейку В2 и дату 16/6/2013 в ячейку B3 (на рисунке приведены американские аналоги дат).
- Выделите ячейки B2 и B3, зажмите нижний правый угол этого диапазона и протяните его вниз.
Перемещение диапазона
Чтобы переместить диапазон, выполните следующие действия:
- Выделите диапазон и зажмите его границу.
- Перетащите диапазон на новое место.
Копировать/вставить диапазон
Чтобы скопировать и вставить диапазон, сделайте следующее:
- Выделите диапазон, кликните по нему правой кнопкой мыши и нажмите Copy (Копировать) или сочетание клавиш Ctrl+C.
- Выделите ячейку, где вы хотите разместить первую ячейку скопированного диапазона, кликните правой кнопкой мыши и выберите команду Paste (Вставить) в разделе Paste Options (Параметры вставки) или нажмите сочетание клавиш Ctrl+V.
Примеры использования функции АГРЕГАТ в Excel
Пример 1. В классе провели контрольную по математике. Необходимо определить среднюю оценку для учеников, которые присутствовали на контрольной. Напротив некоторых фамилий оценка не указана по причине неn допуска к написанию или отсутствия.
Вид таблицы с данными:
Для расчета используем следующую формулу:
=АГРЕГАТ(1;3;B3:B13)
Описание параметров:
- 1 – число, соответствующее функции СРЗНАЧ;
- 3 – число, указывающее на способ расчета (не учитывать скрытые строки и коды ошибок);
- B3:B13 – диапазон ячеек с данными для определения среднего значения.
Полученный результат:
В результате формула вернула правильное число среднего значения в обход значениям с ошибками #Н/Д.
Панель формул
Существует ещё третий способ запустить функцию «СРЗНАЧ». Для этого, переходим во вкладку «Формулы». Выделяем ячейку, в которой будет выводиться результат. После этого, в группе инструментов «Библиотека функций» на ленте жмем на кнопку «Другие функции». Появляется список, в котором нужно последовательно перейти по пунктам «Статистические» и «СРЗНАЧ».
Затем, запускается точно такое же окно аргументов функции, как и при использовании Мастера функций, работу в котором мы подробно описали выше.
Дальнейшие действия точно такие же.
Ручной ввод функции
Но, не забывайте, что всегда при желании можно ввести функцию «СРЗНАЧ» вручную. Она будет иметь следующий шаблон: «=СРЗНАЧ(адрес_диапазона_ячеек(число); адрес_диапазона_ячеек(число)).
Конечно, этот способ не такой удобный, как предыдущие, и требует держать в голове пользователя определенные формулы, но он более гибкий.
Расчет среднего значения
Когда среднее значение нужно не только определить, но и зафиксировать в отдельной выбранной для этого ячейке, можно использовать несколько методов. Ниже мы подробно рассмотрим каждый из них.
Использование арифметического выражения
Как мы знаем, среднее значение равняется сумме чисел, разделенных на их количество. Данную формулу можно использовать и в Экселе.
- Встаем в нужную ячейку, ставим знак “равно” и пишем арифметическое выражение по следующем принципу:
=(Число1+Число2+Число3...)/Количество_слагаемых
.
Примечание: в качестве числа может быть указано как конкретное числовое значение, так и ссылка на ячейку. В нашем случае, давайте попробуем посчитать среднее значение чисел в ячейках B2,C2,D2 и E2.
Конечный вид формулы следующий:=(B2+E2+D2+E2)/4
. - Когда все готово, жмем Enter, чтобы получить результат.
Данный метод, безусловно хорош, но удобство его использования существенно ограничено объемом обрабатываемых данных, ведь на перечисление всех чисел или координат ячеек в большом массиве уйдет немало времени, к тому же, в этом случае не исключена вероятность допущения ошибки.
Использование функции СРЗНАЧ
С данной функцией мы уже успели познакомиться, когда перешли в ячейку с результатом расчета среднего значения. Теперь давайте научимся полноценно ею пользоваться.
- Встаем в ячейку, куда планируем выводить результат. Кликаем по значку “Вставить функци” (fx) слева от строки формул.
- В открывшемся окне Мастера функций выбираем категорию “Статистические”, в предлагаемом перечне кликаем по строке “СРЗНАЧ”, после чего нажимаем OK.
- На экране отобразится окно с аргументами функции (их максимальное количество – 255). Указываем в качестве значения аргумента “Число1” координаты нужного диапазона. Сделать это можно вручную, напечатав с клавиатуры адреса ячеек. Либо можно сначала кликнуть внутри поля для ввода информации и затем с помощью зажатой левой кнопки мыши выделить требуемый диапазон в таблице. При необходимости (если нужно отметить ячейки и диапазоны ячеек в другом месте таблицы) переходим к заполнению аргумента “Число2” и т.д. По готовности щелкаем OK.
- Получаем результат в выбранной ячейке.
- Среднее значение не всегда может быть “красивым” за счет большого количества знаков после запятой. Если нам такая детализация не нужна, ее всегда можно настроить. Для этого правой кнопкой мыши щелкаем по результирующей ячейке. В открывшемся контекстном меню выбираем пункт “Формат ячеек”.
- Находясь во вкладке “Число” выбираем формат “Числовой” и с правой стороны окна указываем количество десятичных знаков после запятой. В большинстве случаев, двух цифр более, чем достаточно. Также при работе с большими числами можно поставить галочку “Разделитель групп разрядов”. После внесение изменений жмем кнопку OK.
- Все готово. Теперь результат выглядит намного привлекательнее.
Присвоение диапазона ячеек переменной
Чтобы переменной присвоить диапазон ячеек, она должна быть объявлена как Variant, Object или Range:
Dim myRange1 As Variant Dim myRange2 As Object Dim myRange3 As Range |
Чтобы было понятнее, для чего переменная создана, объявляйте ее как Range.
Присваивается переменной диапазон ячеек с помощью оператора Set:
Set myRange1 = Range(“B5:E16”) Set myRange2 = Range(Cells(3, 4), Cells(26, 18)) Set myRange3 = Selection |
В выражении Range(Cells(3, 4), Cells(26, 18)) вместо чисел можно использовать переменные.
Для присвоения диапазона ячеек переменной можно использовать встроенное диалоговое окно Application.InputBox, которое позволяет выбрать диапазон на рабочем листе для дальнейшей работы с ним.
Адресация ячеек в диапазоне
К ячейкам присвоенного диапазона можно обращаться по их индексам, а также по индексам строк и столбцов, на пересечении которых они находятся.
Индексация ячеек в присвоенном диапазоне осуществляется слева направо и сверху вниз, например, для диапазона размерностью 5х5:
1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 |
Индексация строк и столбцов начинается с левой верхней ячейки. В диапазоне этого примера содержится 5 строк и 5 столбцов. На пересечении 2 строки и 4 столбца находится ячейка с индексом 9. Обратиться к ней можно так:
‘обращение по индексам строки и столбца myRange.Cells(2, 4) ‘обращение по индексу ячейки myRange.Cells(9) |
Обращаться в переменной диапазона можно не только к отдельным ячейкам, но и к части диапазона (поддиапазону), присвоенного переменной, например,
обращение к первой строке присвоенного диапазона размерностью 5х5:
myRange.Range(“A1:E1”) ‘или myRange.Range(Cells(1, 1), Cells(1, 5)) |
и обращение к первому столбцу присвоенного диапазона размерностью 5х5:
myRange.Range(“A1:A5”) ‘или myRange.Range(Cells(1, 1), Cells(5, 1)) |
Заключение
Таким образом, в Экселе существует немало способов для нахождения среднего значения как по отдельным строкам и столбцам, так и по целым диапазонам ячеек, которые, к тому же, могут быть разбросаны по таблице. А использование того или иного метода определяется удобством и целесообразностью его использования в каждом конкретном случае.
Источники
- http://excel-training.ru/tsiklicheskie-ssyilki-v-excel/
- https://office-guru.ru/excel/kak-upravljat-rezhimami-avtomaticheskih-i-mnogopotochnyh-vychislenii-v-excel-2013-57.html
- https://iiorao.ru/excel/kak-sdelat-proverku-dannyh-v-excel.html
- https://exceltable.com/formuly/dinamicheskoe-vydelenie-diapazona
- https://office-guru.ru/excel/diapazon-v-excel-370.html
- https://exceltable.com/funkcii-excel/funkciya-agregat-propusk-oshibok
- https://lumpics.ru/how-calculate-average-value-in-excel/
- https://MicroExcel.ru/srednee-znachenie/
- https://vremya-ne-zhdet.ru/vba-excel/peremennaya-diapazona-as-range/