У всех функций есть только один аргумент excel

Содержание

      • 0.0.1 Аргумент Excel. Теория
      • 0.0.2 Как удобно найти и выделить аргументы функции?
      • 0.0.3 Что еще важно сказать
  • 1 Аргументы функции Excel
  • 2 Как вставить функцию в Excel
  • 3 Пример создания своей пользовательской функции в Excel
  • 4 Примеры использования пользовательских функций, которых нет в Excel

Работа с большими формулами бывает проблематична даже для опытных пользователей. Самое трудное — это разбираться в чужой конструкции и понять как она работает . Недавно в рамках обучения, меня попросили разобрать несколько сложных формул, причем выяснилось, что формулы действительно награможденные — я насчитал 7-8 ЕСЛИ и еще примерно 5-6 прочих функций в одной ячейке. В таких ситуациях очень важно определить, что является аргументом каждой функции. Поэтому я решил написать небольшую статью про важную штуку — аргумент Excel и его роль в вычислениях. А самое главное, опишу в статье — как удобно найти и выделить каждый из аргументов, при написании огромных формул.

Считаю нужно вначале сказать пару слов банальной теории.

Аргумент Excel. Теория

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

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

Пример:

=ДЕНЬНЕД(дата_в_числовом_формате;)

Где «дата_в_числовом_формате» должна быть обязательно заполнена, а  — можно не вносить, причем даже точку с запятой ставить необязательно.

Важно отметить, что функции могут и не содержать аргумента

Пример:

=СЕГОДНЯ()

А могут и быть с непостоянным количеством аргументов, как:

=СУММЕСЛИМН()

Как удобно найти и выделить аргументы функции?

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

На примере кликните «искомое значение» и в самой формуле оно подстветится выделением.

Для удобства так же прикладываю гифку

Но бывают записи и потяжелее. Такие:

Или такие

Формулы не мои, надеюсь создатели не обидятся. Уверен многие (я в том числе) встречали горы символов и посерьезнее. В таких конструкциях разобраться без возможности выделения бывает крайне сложно.

Что еще важно сказать

При подобных конструкциях очень важно разобраться формулу по частям, выделить ее аргумент. Имеющийся в Excel метод выделения аргумента очень удобен. Так же я могу посоветовать разнести каждую функцию на новую строку при помощи Alt + Enter — тоже очень помогает — подробнее здесь.

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

К примеру, вам непонятно как работает функция в примере (специально не заполнил 4й аргумент ВПР).

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

Из этой подсказки вы сможете перейти на любой из аргументов, кликнув на него

А также можете перейти в справку, кликнув на название самой формулы, в данном случае ВПР.

Удачных разборов своих и чужих формул! Пишите ваши замечания.

Поделитесь нашей статьей в ваших соцсетях:

(Visited 523 times, 1 visits today)

как сделать аргументы функции в excelДата: 27 декабря 2015 Категория: Excel Поделиться, добавить в закладки или статью

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

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

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

С появлением каждой новой версии Эксель, перечень функций обновляется. Разработчики добавляют новые, востребованные, убирают функции, которые уже не актуальны. В этом блоге я буду описывать функции Microsoft Excel 2013, но отвечу на все вопросы о функциях в других версиях программы. Как всегда, задавайте их в комментариях.

Аргументы функций – это исхоные данные для расчета функции. Например, для функции СУММ (суммирование) – это перечень чисел, ячеек или диапазонов ячеек для суммирования. Аргументы указываются в скобках после имени функции и разделяются точкой с запятой (в англоязычной версии — запятой). По количеству аргументов, функции могут быть:

  • Без аргументов – не нуждаются в аргументах для расчета. Например, =ПИ() – возвращает число 3,1428.
  • С одним аргументом – нужно ввести всего один аргумент. Например =СТРОЧН(А1) – переведёт в строчный вид все символы в ячейке А1.
  • С несколькими аргументами – нужно ввести определенное число аргументов, больше одного. Например, функция =ПСТР(А1;1;10) вернёт первые 10 символов из строки в ячейке А1.
  • С необязательными аргументами – функция имеет аргументы, которые указывать необязательно. Например, =ВПР(«Иванов»;А1:В30;2;0) будет искать фамилию «Иванов» в диапазоне А1:В30 и вернёт информацию о нём. Последний аргумент здесь – «Интервальный просмотр» — обозначает способ поиска, его указывать необязательно.
  • С переменным количеством аргументов – количество аргументов может изменяться. Например, =СРЗНАЧ(А1;В3:В15;С2:F2) – посчитает среднее значение цифр в указанных диапазонах. Перечисляя ячейки через точку с запятой, вы можете задать разное количество аргументов.

Как вставить функцию в Excel

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

  1. Если вы знаете имя функции – начните его записывать с клавиатуры, инструмент «Автозаполнение» предложит варианты функций, выберите в списке нужную, нажмите TAB и вводите аргументы;
    как сделать аргументы функции в excelАвтозаполнение при ручном вводе функции
  2. Еще один способ, если вы знакомы с перечнем функций – выбрать на ленте: Формулы – Библиотека функций. В этой группе собраны функции по типам: логические, текстовые, математические и др. Открыв нужную группу – выберите функцию и перейдите к заполнению аргументов.
    как сделать аргументы функции в excelВыбор функции на ленте

Если имя функции вам неизвестно, воспользуйтесь окном Вставка функции. Чтобы его вызвать – попробуйте один из способов:

  1. Нажмите комбинацию клавиш SHIFT+F3
  2. Выполните на ленте Формулы – Библиотека функций – Вставить функцию
  3. Нажать на значок fx слева от строки формул
    как сделать аргументы функции в excelОкно «Вставка функции»

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

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

как сделать аргументы функции в excelОкно» Аргументы функции»

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

Вот и всё о вставке функций на лист, а в следующей статье мы начнём рассматривать текстовые функции. До встречи на страницах блога OfficeЛЕГКО.com!

Поделиться, добавить в закладки или статью

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

Пример создания своей пользовательской функции в Excel

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

  1. Открыть редактор языка VBA с помощью комбинации клавиш ALT+F11.
  2. В открывшемся окне выбрать пункт Insert и подпункт Module, как показано на рисунке:
  3. Новый модуль будет создан автоматически, при этом в основной части окна редактора появится окно для ввода кода:
  4. При необходимости можно изменить название модуля.
  5. В отличие от макросов, код которых должен находиться между операторами Sub и End Sub, пользовательские функции обозначают операторами Function и End Function соответственно. В состав пользовательской функции входят название (произвольное имя, отражающее ее суть), список параметров (аргументов) с объявлением их типов, если они требуются (некоторые могут не принимать аргументов), тип возвращаемого значения, тело функции (код, отражающий логику ее работы), а также оператор End Function. Пример простой пользовательской функции, возвращающей названия дня недели в зависимости от указанного номера, представлен на рисунке ниже:
  6. После ввода представленного выше кода необходимо нажать комбинацию клавиш Ctrl+S или специальный значок в левом верхнем углу редактора кода для сохранения.
  7. Чтобы воспользоваться созданной функцией, необходимо вернуться к табличному редактору Excel, установить курсор в любую ячейку и ввести название пользовательской функции после символа «=»:

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

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

  1. Создайте новый макрос (нажмите комбинацию клавиш Alt+F8), в появившемся окне введите произвольное название нового макроса, нажмите кнопку Создать:
  2. В результате будет создан новый модуль с заготовкой, ограниченной операторами Sub и End Sub.
  3. Введите код, как показано на рисунке ниже, указав требуемое количество переменных (в зависимости от числа аргументов пользовательской функции):
  4. В качестве «Macro» должна быть передана текстовая строка с названием пользовательской функции, в качестве «Description» — переменная типа String с текстом описания возвращаемого значения, в качестве «ArgumentDescriptions» — массив переменных типа String с текстами описаний аргументов пользовательской функции.
  5. Для создания описания пользовательской функции достаточно один раз выполнить созданный выше модуль. Теперь при вызове пользовательской функции (или SHIFT+F3) отображается описание возвращаемого результата и переменной:

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

Примеры использования пользовательских функций, которых нет в Excel

Пример 1. Рассчитать сумму отпускных для каждого работника, проработавшего на предприятии не менее 12 месяцев, на основе суммы общей заработной платы и числа выходных дней в году.

Вид исходной таблицы данных:

Каждому работнику полагается 24 выходных дня с выплатой S=N*24/(365-n), где:

  • N – суммарная зарплата за год;
  • n – число праздничных дней в году.

Создадим пользовательскую функцию для расчета на основе данной формулы:

Код примера:

Public Function Otpusknye(summZp As Long, holidays As Long) As Long
If IsNumeric(holidays) = False Or IsNumeric(summZp) = False Then
    Otpusknye = "Введены нечисловые данные"
    Exit Function
ElseIf holidays
Функции представляют собой зависимость одного элемента (результата) от других элементов (аргументов,.. тех, что внутри :-)). Это как бы понятно. Для того чтобы использовать какую-либо функцию в Excel, следует ввести ее как формулу (нюансы описаны тут) или как часть формулы в ячейку рабочего листа. Последовательность, в которой должны располагаться применяемые в формуле символы и аргументы, называется синтаксисом функции. Все функции используют одинаковые правила синтаксиса. Если нарушить эти правила, то Excel выдаст сообщение о том, что в формуле имеется ошибка и не будет с вами дружить. Но поверьте, в функциях Excel все достаточно однотипно и разобравшись один раз, на одной-двух функциях, в остальных случаях все будет достаточно просто. Правила синтаксиса при записи функций Далее рассмотрены правила, которым необходимо следовать для грамотного и оптимального построения формулы с использованием одной или нескольких функций. Если функция появляется в самом начале формулы, ей должен предшествовать знак равенства, как это имеет место в начале любой формулы. Я об этом уже говорил в предыдущих статьях, но не грех ещё повторить. После этого вводится имя функции и сразу за ним – список аргументов в круглых скобках. Аргументы отделяются друг от друга точкой с запятой «;». Скобки позволяют Excel определить, где начинается и где заканчивается список аргументов. как сделать аргументы функции в excel Функция Excel Заметьте, в записи функции обязательно должны присутствовать открывающая и закрывающая скобки, при этом нельзя вставлять пробелы между названием функции и скобками. В противном случае Excel выдаст сообщение об ошибке. В качестве аргументов можно использовать числа, текст, логические значения, массивы, значения ошибок или ссылки. При этом параметры, задаваемые пользователем, должны иметь допустимые для данного аргумента значения. Например, в приведенной ниже формуле осуществляется суммирование значений в ячейках В2, В3, В4, В5 и Е7, причем часть ячеек — от В2 до В5, представлены как непрерывный диапазон. как сделать аргументы функции в excelАргументы функции Excel Рассмотрим работу функции ОКРУГЛ(арг1;арг2), которая возвращает число, округленное до заданного количества знаков после запятой, и имеет два аргумента: арг1 – адрес ячейки с числом (или само число), которое нужно округлить; арг2 – количество цифр после запятой у числа после округления.
Чтобы округлить число 2,71828, находящееся в ячейке A1, с точностью до одного, двух или трех знаков после запятой и записать результаты вычислений соответственно в ячейки B1, C1 и D1, необходимо действовать следующим образом. Ввести число 2,71828 в ячейку A1. Ввести в ячейки B1, C1 и D1 формулы следующего вида: =ОКРУГЛ(A1;1) =ОКРУГЛ(A1;2) =ОКРУГЛ(A1;3) Аргументы могут быть как константами, так и функциями. Функции, которые являются аргументами другой функции, называются вложенными. Например, просуммируем значения ячеек А1 и А2, предварительно округлив эти значения до двух десятичных знаков: =СУММ(ОКРУГЛ(A1;2);ОКРУГЛ(A2;2)) Здесь функция ОКРУГЛ является вложенной аж два раза, но это не страшно, в формулах Excel можно использовать до семи уровней вложенности функций. Стоит отметить, что в Excel существуют функции, которые не имеют аргументов. Примерами таких функций являются ПИ (возвращает значение числа π, округленное до 15 знаков) или СЕГОДНЯ (возвращает текущую дату). При использовании подобных функций следует в строке формул сразу после названия функции ставить пустые круглые скобки без аргументов. Другими словами, чтобы получить в ячейках значение числа p или текущую дату, следует ввести формулы такого вида: =ПИ() =СЕГОДНЯ() Типы функций Excel Для удобства работы пользователя при построении формул функции в Excel разбиты по категориям: функции управления базами данных и списками, функции даты и времени, финансовые, статистические, текстовые, математические, логические. Текстовые функции используются для обработки текста, а именно: поиска нужных символов, записи символов в строго определенное место текста и т.д. С помощью функций Даты и времени можно решить практически любые задачи, связанные с учетом календарных дат или времени (например, рассчитать число рабочих дней для любого промежутка времени). Логические функции используются при создании сложных формул, которые в зависимости от выполнения тех или иных условий будут реализовывать различные виды обработки данных. Они особо интересны, и о них поговорим в отдельной статье. В Excel широко представлены Математические функции и некоторые я уже привел в примерах. В распоряжении пользователя также находится библиотека Статистических функций, при помощи которой можно осуществлять поиск среднего значения, максимального и минимального элементов и пр.

На чтение 14 мин. Просмотров 6.3k.

В Excel более 450 функций, и некоторые из них весьма полезны в вашей повседневной работе.

Но… Excel дает вам возможность создавать пользовательские функции с помощью VBA.

Да — да, вы не ослышались. Пользовательская функция.

И я могу сказать со 100%-ой уверенностью, что каждый начинающий пользователь VBA хочет научиться создавать пользовательские функции. Не так ли? Кивните, если вы один из них.

Итак, сегодня я собираюсь поделиться всем, что вам нужно знать о создании Пользовательской функции.

… так что оставайтесь со мной, вы станете рок-звездой VBA в ближайшие пару минут.

Содержание

  1. Зачем вам создавать пользовательскую функцию Excel?
  2. Как создать свою первую пользовательскую функцию в Excel
  3. Как эта функция работает и возвращает значение в ячейке
  4. Как улучшить пользовательскую функцию?
  5. Как использовать пользовательскую функцию VBA
  6. Различные способы создания пользовательской функции VBA
  7. Область действия определяемой пользователем функции
  8. Ограничения пользовательской функции
  9. Заключение

Зачем вам создавать пользовательскую функцию Excel?

Как я уже сказал, в Excel много функций, которые могут помочь вам решить практически все проблемы и выполнить все виды расчетов. Но…

… Иногда в определенных ситуациях вам нужно создать пользовательскую.

Вот некоторые причины, почему вам нужно перейти к пользовательской функции.

1. Когда нет подходящей функции

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

Например, подсчет слов в ячейке, в этом случае пользовательская функция — идеальное решение.

Function MyWordCount(rng As Range) As Integer

MyWordCount = UBound(Split(rng.Value, " "), 1) + 1

End Function
пример пользовательской функции

2. Заменить сложную формулу

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

Пользовательская функция может решить эту проблему.

Пример сложной пользовательской функции

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

3. Когда вы не хотите использовать SUB

Хотя вы можете использовать код VBA для выполнения расчетов, но коды VBA не динамические.

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

Но если вы преобразуете этот код в функцию, вам не нужно будет запускать этот код снова и снова.

Как создать свою первую пользовательскую функцию в Excel

Обычно для создания функции VBA необходимо выполнить следующие шаги:

  • Объявить вашу процедуру как функцию
  • Определить ее аргументы и их тип данных
  • Добавить код для расчета желаемого значения

Позвольте мне привести вам простой пример.

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

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

Итак, давайте создадим эту функцию VBA, используя следующие шаги.

  • Прежде всего, откройте редактор VB с помощью сочетания клавиш ALT + F11 или перейдите на вкладку «Разработчик» и нажмите кнопку «Visual Basic».

откройте редактор vb для написания кода

  • Вставка модуля: щелкните правой кнопкой мыши в окне проекта VBA, затем перейдите к Insert и после этого нажмите «Module».
добавить модуль в редакторе VBA, чтобы написать ПФ
  • Следующим шагом является определение имени для функции, здесь я использую «myDayName». Поэтому вы должны написать «Function mydayName».
написать имя пользовательской функции VBA

Почему «Function» перед именем?

Поскольку вы создаете функцию VBA, то используете слово «Function». Excel понимает, что этот код следует рассматривать как функцию

  • После этого вам нужно определить аргументы для пользовательской функции. Поэтому вставьте начальные скобки и напишите «InputDate As Date».
следующий шаг для добавления аргумента в пользовательскую функцию
  • Здесь InputDate — имя аргумента, а date — его тип данных. Всегда лучше определить тип данных для аргумента.
  • Теперь закройте скобки и напишите «As String». Здесь вы определяете тип данных результата, возвращаемого функцией. Так как вы хотите, чтобы название дня недели было текстовым, его тип данных должен быть «String».
после этого определить тип данных для ПФ
  • В конце нажмите ENTER.

На этом этапе имя вашей функции, ее аргумент, тип данных аргумента и тип данных функции определены, и у вы должны видеть что-то вроде этого в вашем модуле:

Пользовательская функция VBA после определения аргументов имени

Теперь между «Function» и «End Function» вам нужно сделать расчет.

В Excel есть функция рабочего листа под названием «Text», давайте используем ее здесь. Для этого вам нужно написать следующий код:

myDayName = WorksheetFunction.Text (InputDate, "dddddd")

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

после написания кода для использования в пользовательской функции vba
  • Теперь закройте редактор VB и вернитесь к рабочему листу.
  • В ячейке B2 введите «= myDayName (A2)», нажмите Enter, и у вы увидите название дня недели.
вставьте свою собственную функцию VBA в лист

Поздравляю! Вы только что создали свою первую пользовательскую функцию!

Как эта функция работает и возвращает значение в ячейке

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

Можно сказать в двух словах, это код VBA, но мы используем его как функцию. Давайте разбираться.

  • Вы вводите код в ячейку как функцию и указываете ссылку на ячейку
  • Excel запускает код функции и использует значение, которое вы указали
  • Вы получаете результат в ячейке

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

Давайте чуть медленнее:

Есть код для функции, которую мы создали, и вы знаете, что в этом коде. Правильно?

Когда вы ссылаетесь на ячейку в вашей функции, этот блок кода работает для вычисления значения. Он берет дату из аргумента InputDate и возвращает название дня недели.

как работает пользовательская функция

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

Как улучшить пользовательскую функцию?

Вы уже знаете, как создать пользовательскую функцию VBA. Но…

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

Если говорить о функции, которую вы только что написали выше, да вы можете вернуть название дня недели из даты. Но… Что если указанное вами значение не будет датой? А если указанная вами ячейка пуста?

Могут быть и другие проблемы, но я уверен, что вы поняли, о чем я.

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

Прежде всего, вам нужно изменить тип данных аргумента и использовать:

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

Далее нам нужно использовать оператор VBA IF, чтобы проверить InputDate для некоторых условий. Первое условие — пустая ячейка или нет. И для этого вам нужно использовать следующий код:

If InputDate = "" Then
myDayName = ""

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

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

If IsDate (InputDate) = False Then
myDateName = ""

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

Таким образом, после добавления вышеуказанных условий код будет выглядеть так:

Функция myDayName (InputDate As Variant) в виде строки

Function myDayName(InputDate As Variant) As String
If InputDate = "" Then
myDayName = ""
Else
If IsDate(InputDate) = False Then
myDateName = ""
Else
myDayName = WorksheetFunction.Text(InputDate, "dddddd")
End If
End If
End Function

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

Как использовать пользовательскую функцию VBA

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

Итак, давайте начнем.

1. На рабочем листе

Почему мы создаем пользовательскую функцию? Чтобы использовать ее на рабочем листе. Вы можете просто использовать ПФ на листе, используя знак равенства и введя имя функции, а затем указав ее аргументы.

вставить пользовательскую функцию в лист, набрав

Вы также можете ввести пользовательскую функцию из библиотеки функций.

Перейдите на вкладку «Формулы» ➜ «Вставить функцию» ➜ «Определенные пользователем».

вставить пользовательскую функцию в лист из библиотеки

Из списка можно выбрать функцию, которую хотите вставить.

2. Использование в других подпроцедурах и функциях

Вы также можете использовать функцию в других функциях или в процедуре «Sub».

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

Sub todayDay()
MsgBox "Сегодня " & myDayName(Date)
End Sub

3. Доступ к функциям из другой книги

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

  • Прежде всего, вам нужно сохранить файл (в котором у вас есть код пользовательской функции) в виде надстройки.
  • Для этого перейдите на вкладку «Файл» ➜ «Сохранить как» ➜ «Надстройки Excel (.xalm)».
Сохранить как надстройку
  • После этого дважды щелкните на надстройку и установите ее.
  • нажмите добавить, чтобы добавить все определенные пользователем функции в другую книгу
Надстройка

Теперь вы можете использовать все свои функции VBA в любой книге.

Различные способы создания пользовательской функции VBA

Когда мы используем встроенные функции, они имеют разные типы аргументов. В этом разделе руководства вы узнаете, как создать ПФ с аргументами другого типа.

  • без каких-либо аргументов
  • только с одним аргументом
  • с несколькими аргументами
  • использование массива в качестве аргумента

1. Без каких-либо аргументов

Помните есть такие функции, как СЕЙЧАС и СЕГОДНЯ, в которых вам не нужно вводить какие-либо аргументы? Вы можете создать пользовательскую функцию, в которой вам тоже не нужно вводить аргумент. Сделаем это на примере:

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

Вот код:

Function myPath() As String
Dim myLocation As String
Dim myName As String
myLocation = ActiveWorkbook.FullName
myName = ActiveWorkbook.Name
If myLocation = myName Then
myPath = "Файл еще не сохранен."
Else
myPath = myLocation
End If
End Function

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

создание пользовательской функции без аргумента

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

Этот код «ActiveWorkbook.FullName» возвращает местоположение файла, а этот «ActiveWorkbook.Name» возвращает имя. Так что здесь вам не нужно ничего вводить.

2. Только с одним аргументом

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

Это функция нужна для извлечения URL-адреса из гиперссылки.

Function giveMeURL(rng As Range) As String
On Error Resume Next
giveMeURL = rng.Hyperlinks(1).Address
End Function

В этой функции у вас есть только один аргумент.

простая пользовательская функция для извлечения URL из гиперссылки

Когда вы напишите функцию, а затем укажите ячейку, в которой у вас есть гиперссылка, она вернет URL-адрес.

Теперь в этой функции основная работа выполняется:

rng.Hyperlinks (1) .Address

rng ​​- это то, что вам нужно указать.

3. С несколькими аргументами

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

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

Итак, вот функция:

Function removeFirstC(rng As String, cnt As Long) As String
removeFirstC = Right(rng, Len(rng) - cnt)
End Function

Итак, посмотрим:

функция VBA с несколькими аргументами

В этой функции у вас два аргумента:

  • rng: в этом аргументе вам нужно указать ячейку, из которой вы хотите удалить символ текста.
  • cnt: а в этом аргументе вам нужно указать количество символов для удаления (если вы хотите удалить более одного символа из текста).

Когда вы вводите ее в ячейку, она работает примерно так:

3.1 Создание пользовательской функции с необязательным и обязательным аргументом

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

Как создать пользовательскую функцию в Excel, используя VBA

Но можно сделать этот аргумент необязательным, чтобы он принимал значение по умолчанию. Чтобы сделать аргумент необязательным, вам просто нужно добавить «Optional» перед ним.

4. Использование массива в качестве аргумента

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

Function addNumbers(CellRef As Range)
Dim Cell As Range
For Each Cell In CellRef
If IsNumeric(Cell.Value) = True Then
Result = Result + Cell.Value
End If
Next Cell
addNumbers = Result
End Function

В приведенном выше коде функции мы использовали весь диапазон A1: A10 вместо одного значения или ссылки на ячейку.

пользовательская функция VBA для суммирования чисел

Используем цикл FOR EACH, он проверяет каждую ячейку диапазона и суммирует значение, если в ячейке есть число.

Область действия определяемой пользователем функции

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

1. Public

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

делаем функцию общедоступной

Функция является Public по умолчанию, если вы не делаете ее Private. Во всех приведенных нами примерах все функции общедоступны.

2. Private

Когда вы делаете функцию Private, вы можете использовать ее в процедурах того же модуля.

добавить приват перед именем пользовательской функции vba

Допустим, если у вас есть функция в «Module1», вы можете использовать ее только в процедурах, которые вы используете в «Module1». И она не появится в списке функций на рабочем листе (когда вы используете знак = и пытаетесь ввести имя), но вы все равно можете использовать ее, введя ее название полностью и указав аргументы.

Ограничения пользовательской функции

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

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

Есть ли разница между встроенной функцией и пользовательской функцией?

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

  • Медленнее, чем встроенная. Если вы сравните скорость встроенных функций и функции VBA, вы обнаружите, что первые быстрее. Причина в том, что встроенные функции написаны с использованием C ++ или FORTRAN.
  • Трудно обмениваться файлами. Мы часто обмениваемся файлами по электронной почте и в облаке, поэтому, если вы используете какую-либо из пользовательских функций, вам необходимо поделиться этим файлом в формате «xlam», чтобы другой человек также мог использовать вашу пользовательскую функцию.

Но все равно, есть ситуации, когда пользовательские функции будут незаменимы.

Заключение

Создать пользовательскую функцию просто.

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

простая иллюстрация, чтобы понять, как создать пользовательскую функцию

В конце добавьте код, чтобы вычислить значение, которое вы хотите получить от функции.

Это самое простое руководство, как создать пользовательскую функцию в VBA, и я надеюсь, вы нашли ее полезной.

Excel для Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

Функции — это заранее определенные формулы, которые выполняют вычисления по заданным величинам, называемым аргументами, и в указанном порядке. Эти функции позволяют выполнять как простые, так и сложные вычисления. Все функции Excel можно найти на вкладке «формулы» на ленте.

Вкладка "формулы Excel" на ленте

  • Синтаксис функции Excel

    В приведенном ниже примере функции ОКРУГЛ , округленной на число в ячейке A10, показан синтаксис функции.

    Структура функции

    1. Structure. Структура функции начинается со знака равенства (=), за которым следует имя функции, открывающую круглую скобку, аргументы функции, разделенные запятыми, и закрывающая круглая скобка.

    2. имя функции. Чтобы просмотреть список доступных функций, щелкните ячейку и нажмите клавиши SHIFT + F3, чтобы открыть диалоговое окно Вставка функции .

    Формулы Excel — диалоговое окно "Вставка функции"

    3. аргументы. Аргументы могут быть числами, текстом, логическими значениями, такими как Истина или ложь, массивами, значениями ошибок, например #N/a или ссылками на ячейки. Используемый аргумент должен возвращать значение, допустимое для данного аргумента. В качестве аргументов также используются константы, формулы и другие функции.

    4. всплывающая подсказка аргумента. При вводе функции появляется всплывающая подсказка с синтаксисом и аргументами. Например, всплывающая подсказка появляется после ввода выражения =ОКРУГЛ(. Всплывающие подсказки отображаются только для встроенных функций.

    Примечание: Вам не нужно вводить функции во все прописные буквы, например = «ОКРУГЛИТЬ», так как Excel автоматически заполнит ввод имени функции после нажатия кнопки «Добавить». Если вы неправильно наводите имя функции, например = СУМА (a1: A10), а не = сумм (a1: A10), Excel вернет #NAME? Если позиция, которую вы указали, находится перед первым или после последнего элемента в поле, формула возвращает ошибку #ССЫЛКА!.

  • Ввод функций Excel

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

    Мастер функций Excel

    Для упрощения создания и редактирования формул, а также для минимизации ошибок ввода и синтаксиса используйте Автозаполнение формул. После ввода знака = (знак равенства) и начальных букв функции Excel отобразит динамический раскрывающийся список допустимых функций, аргументов и имен, соответствующих этим буквам. Затем вы можете выбрать один из раскрывающегося списка, и приложение Excel введет его автоматически.

    Автозаполнение формул Excel

  • Вложение функций Excel

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

    Вложенные функции

    1. Функции СРЗНАЧ и СУММ вложены в функцию ЕСЛИ.

    Допустимые типы вычисляемых значений    Вложенная функция, используемая в качестве аргумента, должна возвращать соответствующий ему тип данных. Например, если аргумент должен быть логическим, т. е. иметь значение ИСТИНА либо ЛОЖЬ, вложенная функция также должна возвращать логическое значение (ИСТИНА или ЛОЖЬ). В противном случае Excel выдаст ошибку «#ЗНАЧ!».

    <c0>Предельное количество уровней вложенности функций</c0>.    В формулах можно использовать до семи уровней вложенных функций. Если функция Б является аргументом функции А, функция Б находится на втором уровне вложенности. Например, функция СРЗНАЧ и функция сумм являются функциями второго уровня, если они используются в качестве аргументов функции если. Функция, вложенная в качестве аргумента в функцию СРЗНАЧ, будет функцией третьего уровня, и т. д.

Нужна дополнительная помощь?

На чтение 2 мин Опубликовано 14.01.2015

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

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

Синтаксис функций в Excel

Для корректной работы, функция должна быть написана в определенной последовательности, которая называется синтаксис. К базовому синтаксису функции относятся знак равенства (=), имя функции (например, СУММ) и один или более аргументов. Аргументы содержат информацию, которую необходимо вычислить. В следующем примере функция суммирует значения в диапазоне A1:A20.

Функции в Excel

В Excel существуют функции, которые не содержат ни одного аргумента. К примеру, функция СЕГОДНЯ() возвращает текущую дату из системного времени вашего компьютера.

Работа с аргументами

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

Например, функция =СРЗНАЧ(B1:B9) будет вычислять среднее значение в диапазоне ячеек B1:B9. Эта функция содержит только один аргумент.

Функции в Excel

Несколько аргументов должны быть разделены точкой с запятой. Например, функция =СУММ(A1:A3; C1:C2; E2) суммирует значения всех ячеек в трех аргументах.

Функции в Excel

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

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

Лучший способ вставки функции — использование диалогового окна Мастер функций. Это окно вызывается любым из следующих способов.

  • Нажмите кнопку Вставить функцию, расположенную в группе Формулы ► Библиотека функций.
  • Нажмите кнопку Вставить функцию слева от строки формул.
  • Нажмите Shift+F3.

Если вы не знаете имя функции, которая вам нужна, то можете найти ее, набрав текст в поле Поиск функции и нажав кнопку Найти (рис. 80.1). После того как вы определите функцию, нажмите кнопку ОК, и вы увидите окно Аргументы функции, которое ознакомит вас с аргументами данной функции, как показано на рис. 80.2.

Рис. 80.1. Используйте окно Мастер функций, чтобы найти нужную вам функцию

Рис. 80.1. Используйте окно Мастер функций, чтобы найти нужную вам функцию

Между прочим, если вы вводите функцию вручную (без помощи диалогового окна Мастер функций), то можете нажать Ctrl+A для открытия диалогового окна Аргументы функции. Это сочетание клавиш работает, только если вы еще не вводили какие-либо аргументы для функции.

Рис. 80.2. Окно Аргументы функции помогает ввести аргументы функции

Рис. 80.2. Окно Аргументы функции помогает ввести аргументы функции

В некоторых случаях вы можете включить «фиктивные» аргументы для функции — заполнители, которые позже будут заменены. Этот подход окажется полезным, если вы еще не знаете, ссылки на какие ячейки будут использованы. Для вставки названий аргументов в качестве заполнителей нажмите Ctrl+Shift+A после ввода имени функции. Excel использует названия аргумента в качестве самих аргументов.

Например, если нажать Ctrl+Shift+A при вводе функции ВПР, то Excel вставит следующие названия: =ВПР(искомое_значение;таблица;номер_столбца;интервальный_просмотр). Формула, конечно, возвращает ошибку, так что вы должны заменить фиктивные аргументы фактическими значениями или ссылками на ячейки.

Понравилась статья? Поделить с друзьями:
  • У вас нет разрешения на удаление этого файла word android как удалить файл
  • У вас нет разрешения на открытие этого файла word
  • У вас нет разрешения для открытия этого документа word
  • У вас есть файл excel с графиком отпусков
  • У word есть мастер резюме