Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Хотя в Excel предлагается большое число встроенных функций, в нем может не быть той функции, которая нужна для ваших вычислений. К сожалению, разработчики Excel не могли предугадать все потребности пользователей. Однако в Excel можно создавать собственные функции, и ниже вы найдете все нужные для этого инструкции.
Пользовательские функции (как и макросы) записываются на языке программирования Visual Basic для приложений (VBA). Они отличаются от макросов двумя вещами. Во-первых, в них используются процедуры Function, а не Sub. Это значит, что они начинаются с оператора Function, а не Sub, и заканчиваются оператором End Function, а не End Sub. Во-вторых, они выполняют различные вычисления, а не действия. Некоторые операторы (например, предназначенные для выбора и форматирования диапазонов) исключаются из пользовательских функций. Из этой статьи вы узнаете, как создавать и применять пользовательские функции. Для создания функций и макросов используется редактор Visual Basic (VBE), который открывается в отдельном окне.
Предположим, что ваша компания предоставляет скидку в размере 10 % клиентам, заказавшим более 100 единиц товара. Ниже мы объясним, как создать функцию для расчета такой скидки.
В примере ниже показана форма заказа, в которой перечислены товары, их количество и цена, скидка (если она предоставляется) и итоговая стоимость.
Чтобы создать пользовательскую функцию DISCOUNT в этой книге, сделайте следующее:
-
Нажмите клавиши ALT+F11 (или FN+ALT+F11 на Mac), чтобы открыть редактор Visual Basic, а затем щелкните Insert (Вставка) > Module (Модуль). В правой части редактора Visual Basic появится окно нового модуля.
-
Скопируйте указанный ниже код и вставьте его в новый модуль.
Function DISCOUNT(quantity, price) If quantity >=100 Then DISCOUNT = quantity * price * 0.1 Else DISCOUNT = 0 End If DISCOUNT = Application.Round(Discount, 2) End Function
Примечание: Чтобы код было более удобно читать, можно добавлять отступы строк с помощью клавиши TAB. Отступы необязательны и не влияют на выполнение кода. Если добавить отступ, редактор Visual Basic автоматически вставит его и для следующей строки. Чтобы сдвинуть строку на один знак табуляции влево, нажмите SHIFT+TAB.
Теперь вы готовы использовать новую функцию DISCOUNT. Закройте редактор Visual Basic, выделите ячейку G7 и введите следующий код:
=DISCOUNT(D7;E7)
Excel вычислит 10%-ю скидку для 200 единиц по цене 47,50 ₽ и вернет 950,00 ₽.
В первой строке кода VBA функция DISCOUNT(quantity, price) указывает, что функции DISCOUNT требуется два аргумента: quantity (количество) и price (цена). При вызове функции в ячейке листа необходимо указать эти два аргумента. В формуле =DISCOUNT(D7;E7) аргумент quantity имеет значение D7, а аргумент price — значение E7. Если скопировать формулу в ячейки G8:G13, вы получите указанные ниже результаты.
Рассмотрим, как Excel обрабатывает эту функцию. При нажатии клавиши ВВОД Excel ищет имя DISCOUNT в текущей книге и определяет, что это пользовательская функция в модуле VBA. Имена аргументов, заключенные в скобки (quantity и price), представляют собой заполнители для значений, на основе которых вычисляется скидка.
Оператор If в следующем блоке кода проверяет аргумент quantity и сравнивает количество проданных товаров со значением 100:
If quantity >= 100 Then DISCOUNT = quantity * price * 0.1 Else DISCOUNT = 0 End If
Если количество проданных товаров не меньше 100, VBA выполняет следующую инструкцию, которая перемножает значения quantity и price, а затем умножает результат на 0,1:
Discount = quantity * price * 0.1
Результат хранится в виде переменной Discount. Оператор VBA, который хранит значение в переменной, называется оператором назначения, так как он вычисляет выражение справа от знака равенства и назначает результат имени переменной слева от него. Так как переменная Discount называется так же, как и процедура функции, значение, хранящееся в переменной, возвращается в формулу листа, из которой была вызвана функция DISCOUNT.
Если значение quantity меньше 100, VBA выполняет следующий оператор:
Discount = 0
Наконец, следующий оператор округляет значение, назначенное переменной Discount, до двух дробных разрядов:
Discount = Application.Round(Discount, 2)
В VBA нет функции округления, но она есть в Excel. Чтобы использовать округление в этом операторе, необходимо указать VBA, что метод (функцию) Round следует искать в объекте Application (Excel). Для этого добавьте слово Application перед словом Round. Используйте этот синтаксис каждый раз, когда нужно получить доступ к функции Excel из модуля VBA.
Пользовательские функции должны начинаться с оператора Function и заканчиваться оператором End Function. Помимо названия функции, оператор Function обычно включает один или несколько аргументов. Однако вы можете создать функцию без аргументов. В Excel доступно несколько встроенных функций (например, СЛЧИС и ТДАТА), в которых нет аргументов.
После оператора Function указывается один или несколько операторов VBA, которые проверят соответствия условиям и выполняют вычисления с использованием аргументов, переданных функции. Наконец, в процедуру функции следует включить оператор, назначающий значение переменной с тем же именем, что у функции. Это значение возвращается в формулу, которая вызывает функцию.
Количество ключевых слов VBA, которые можно использовать в пользовательских функциях, меньше числа, используемого в макросах. Настраиваемые функции не могут выполнять другие задачи, кроме возврата значения в формулу на этом или в выражение, используемом в другом макросе или функции VBA. Например, пользовательские функции не могут изменять размер окна, редактировать формулу в ячейке, а также изменять шрифт, цвет или узор текста в ячейке. Если в процедуру функции включить такой код действия, функция возвращает #VALUE! ошибку «#ВЫЧИС!».
Единственное действие, которое может выполнять процедура функции (кроме вычислений), — это отображение диалогового окна. Чтобы получить значение от пользователя, выполняющего функцию, можно использовать в ней оператор InputBox. Кроме того, с помощью оператора MsgBox можно выводить сведения для пользователей. Вы также можете использовать настраиваемые диалоговые окна (UserForms), но эта тема выходит за рамки данной статьи.
Даже простые макросы и пользовательские функции может быть сложно понять. Чтобы сделать эту задачу проще, добавьте комментарии с пояснениями. Для этого нужно ввести перед текстом апостроф. Например, ниже показана функция DISCOUNT с комментариями. Благодаря подобным комментариями и вам, и другим будет впоследствии проще работать с кодом VBA. Так, код будет легче понять, если потребуется внести в него изменения.
Апостроф указывает приложению Excel на то, что следует игнорировать всю строку справа от него, поэтому вы можете добавлять комментарии в отдельных строках или в правой части строк, содержащих код VBA. Советуем начинать длинный блок кода с комментария, в котором объясняется его назначение, а затем использовать встроенные комментарии для документирования отдельных операторов.
Кроме того, рекомендуется присваивать макросам и пользовательским функциям описательные имена. Например, присвойте макросу название MonthLabels вместо Labels, чтобы более точно указать его назначение. Описательные имена макросов и пользовательских функций особенно полезны, если существует множество процедур с похожим назначением.
То, как документировать макрос и пользовательские функции, имеет личный выбор. Важно принятия определенного способа документации и его согласованного использования.
Для использования настраиваемой функции должна быть открыта книга, содержащая модуль, в котором она была создана. Если книга не открыта, вы получите #NAME? при попытке использования функции. Если вы ссылались на функцию в другой книге, ее имя должно предшествовать названию книги, в которой она находится. Например, при создании функции DISCOUNT в книге Personal.xlsb и вызове ее из другой книги необходимо ввести =personal.xlsb!discount(),а не просто =discount().
Чтобы вставить пользовательскую функцию быстрее (и избежать ошибок), ее можно выбрать в диалоговом окне «Вставка функции». Пользовательские функции доступны в категории «Определенные пользователем»:
Чтобы пользовательские функции всегда были доступны, можно хранить их в отдельной книге, а затем сохранять в качестве надстройки. Затем надстройку можно сделать доступной при запуске Excel. Вот как это сделать:
-
Создав нужные функции, выберите Файл > Сохранить как.
В Excel 2007 нажмите кнопку Microsoft Office, а затем щелкните Сохранить как.
-
В диалоговом окне Сохранить как откройте раскрывающийся список Тип файла и выберите значение Надстройка Excel. Сохраните книгу с запоминающимся именем, таким как MyFunctions, в папке AddIns. Она будет автоматически предложена в диалоговом окне Сохранить как, поэтому вам потребуется только принять расположение, используемое по умолчанию.
-
Сохранив книгу, выберите Файл > Параметры Excel.
В Excel 2007 нажмите кнопку Microsoft Office и щелкните Параметры Excel.
-
В диалоговом окне Параметры Excel выберите категорию Надстройки.
-
В раскрывающемся списке Управление выберите Надстройки Excel. Затем нажмите кнопку Перейти.
-
В диалоговом окне Надстройки установите флажок рядом с именем книги, как показано ниже.
-
Создав нужные функции, выберите Файл > Сохранить как.
-
В диалоговом окне Сохранить как откройте раскрывающийся список Тип файла и выберите значение Надстройка Excel. Сохраните книгу с запоминающимся именем, таким как MyFunctions.
-
Сохранив книгу, выберите Сервис > Надстройки Excel.
-
В диалоговом окне Надстройки нажмите кнопку «Обзор», найдите свою надстройку, нажмите кнопку Открыть, а затем установите флажок рядом с надстройкой в поле Доступные надстройки.
После этого пользовательские функции будут доступны при каждом запуске Excel. Если вы хотите добавить его в библиотеку функций, вернимся в Visual Basic редактора. Если вы заглянуть в Visual Basic редактора Project проводника под заголовком VBAProject, вы увидите модуль с именем файла надстройки. У надстройки будет расширение XLAM.
Дважды щелкните модуль в Project Explorer, чтобы вывести код функций. Чтобы добавить новую функцию, установите точку вставки после оператора End Function, который завершает последнюю функцию в окне кода, и начните ввод. Вы можете создать любое количество функций, и они будут всегда доступны в категории «Определенные пользователем» диалогового окна Вставка функции.
Эта статья основана на главе книги Microsoft Office Excel 2007 Inside Out, написанной Марком Доджем (Mark Dodge) и Крейгом Стинсоном (Craig Stinson). В нее были добавлены сведения, относящиеся к более поздним версиям Excel.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Запуск макроса
Если вкладка Разработчик недоступна, выполните указанные ниже действия для ее отображения.
На вкладке Файл выберите команду Параметры, а затем — категорию Настройка ленты.
В списке Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.
Для установки уровня безопасности, временно разрешающего выполнение всех макросов, выполните следующие действия:
- На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.
- В категории Параметры макросов в группе Параметры макросов установите переключатель в положение Включить все макросы (не рекомендуется, возможен запуск опасной программы) и нажмите кнопку ОК.
Примечание: Для предотвращения запуска потенциально опасного кода по завершении работы с макросами рекомендуется вернуть параметры, отключающие все макросы.
- Откройте книгу, содержащую нужный макрос.
- На вкладке Разработчик в группе Код нажмите кнопку Макросы.
- В поле Имя макроса введите имя макроса, который нужно выполнить.
- Выполните одно из указанных ниже действий:
- Для запуска макроса в книге Excel нажмите кнопку Выполнить.
Совет. Для запуска макроса можно также нажать клавиши CTRL+F8. Для прекращения выполнения макроса нажмите клавишу ESC. - Чтобы запустить макрос из модуля Microsoft Visual Basic для приложений (VBA), нажмите кнопку Изменить и в меню Run («Выполнить») выберите команду Run Sub/UserForm («Выполнить процедуру или пользовательскую форму») или нажмите клавишу F5.
Функцию можно вставить как в начале вычисления, так и по ходу создания собственной формулы.
1 способ
- В окне открытого листа выделите ячейку, где будет располагаться функция.
- Перейдите к вкладке «Формулы» и в группе «Библиотека функций» щелкните по кнопке «Вставить функцию».
- В окне «Мастер функций – шаг 1 из 2» в графе «Категории» раскройте список существующих типов функций и выберите нужную категорию. Например, «Математические».
- В группе «Выберите функцию» просмотрите список функций заданной категории и выберите нужную, например, «
ОКРУГЛВВЕРХ
». - Перейдите к следующему шагу щелчком по кнопке «ОК».
- В окне «Аргументы функции» введите в поля аргументов адреса ячеек для вычисления.
[stextbox id=»info»]Для каждой функции окно «Аргументы функции» имеет собственный вид.[/stextbox]
Например, в окне «Аргументы функции ОКРУГЛВВЕРХ» (рис. 4.29) необходимо в графе «Число» ввести адрес ячейки с числом, которое необходимо округлить, а в графе «Число_разрядов» задать количество разрядов после запятой, до которых необходимо округлить число. - Для получения развернутой информации по используемой функции нажмите кнопку «Справка по этой функции.
- Закройте окно кнопкой «ОК».
- В заданной ячейке, если аргументы введены были правильно, отобразится результат вычисления функции.
Рис. 4.29. Окно «Аргументы функции ОКРУГЛВВЕРХ»
[stextbox id=»info»]Для работы со справкой необходимо подключиться к интернету.[/stextbox]
2 способ
- В окне открытого листа выделите ячейку, где будет располагаться функция.
- Используйте сочетание клавиш Shift+F3.
- Далее действуйте, как в первом способе данной инструкции.
3 способ
- В окне открытого листа выделите ячейку, где будет располагаться функция.
- Перейдите к вкладке «Формулы» и в группе «Библиотека функций» раскройте меню кнопки с нужным типом функций:
- «Логические»;
- «Текстовые»;
- «Дата и время»;
- «Ссылки и массивы»;
- «Математические»;
- «Недавно использовались»;
- «Другие функции»;
- «Финансовые».
- В списке функций выберите необходимую для работы.
- Далее действуйте, как в первом способе данной инструкции.
4 способ
- В окне открытого листа выделите ячейку, где будет располагаться функция.
- Введите знак равно (=).
- Наберите известное имя функции и без пробела откройте круглые скобки.
- Введите аргументы функции и закройте круглые скобки.
- Закрепите результат щелчком по клавише Enter.
[stextbox id=»info»]При вводе первых букв функции откроется список функций для автозавершения. Для ее быстрейшего ввода можно щелкнуть в данном списке на имени нужной функции.[/stextbox]
[stextbox id=»info»]При вводе аргументов правильно используйте символы разделения.[/stextbox]
[stextbox id=»info»]Данный способ удобен только при знании имен функций, что предполагает наличие опыта работы с программой Excel.[/stextbox]
5 способ
- В окне открытого листа выделите ячейку, где будет располагаться функция.
- На строке формул щелкните по кнопке «Вставить функцию».
- Далее действуйте, как в первом способе данной инструкции.
Здравствуйте, уважаемые читатели блога!
Сегодня рассмотрим функции табличного процессора MS Excel 2010.
Что такое функция? Если обратимся к Wiki , то можем прочитать массу определений функции: это и числовая, и философская, и целевая, и еще много-какая функция.
Обойдемся без популярной энциклопедии, и вспомним, что любая формула в MS Excel начинается со знака «=». Что аргументами формульных выражений могут быть
- числа
- адреса ячеек
- функции
Функций в MS Excel огромное количество. Их можно классифицировать разными способами. Первый способ – это по категориям. В MS Excel имеются следующие категории:
- Финансовые
- Дата и время
- Математические
- Статистические
- Ссылки и массивы
- Работа с базой данных
- Текстовые
- Логические
- Проверка свойств и значений
- Определенные пользователем
Второй способ классификации – по количеству аргументов. По количеству аргументов функции бывают:
- С одним аргументом (SIN, LN)
- С несколькими аргументами, имеется ввиду, что аргументов не больше определенного для этой функции количества (ЕСЛИ, ОКРУГЛ)
- С несколькими аргументами, число аргументов произвольно (СУММ, МИН)
- С необязательными аргументами (ПИ, РАНГ).
В качестве аргумента функции могут выступать:
- числа
- текст
- выражение
- адрес ячейки
- диапазон ячеек
- другая функция
Вставить функцию можно такими способами:
- Нажав кнопку Вставить функцию (см. рис)
- Во вкладке Формулы выбрать группу Библиотека функций и нажав либо кнопку Вставить функцию (сочетание клавиш Shift + F3), либо нажав кнопку соответствующей категории в этой же группе
- (Для продвинутых ) Ввести функцию непосредственно в активную ячейку.
Эти способа ввода незначительно отличаются друг от друга. Например, при использовании второго способа (из группы Библиотека функций – см. рис), при наведении на функцию появляется всплывающая подсказка о назначении данной функции.
После выбора функции появляется окно – Аргументы функции. В соответствующие поля необходимо ввести аргументы функции. Если аргументом является число, то его проще ввести с клавиатуры. Если же аргументом является адрес ячейки или диапазон ячеек, то проще свернуть окно Аргументы функции и мышью выбрать соответствующую ячейку или диапазон ячеек.
Удачи в работе с табличным процессором MS Excel!
С уважением, автор персонального сайта учителя информатики
MS Excel has many inbuilt in functions that we can use in our formula. If you want to see all the functions by category choose Formulas Tab and then Insert Function. Then Insert function Dialog appears from which we can choose function.
Some important functions of Excel by categories are:
Text Functions
- Lower: Converts all characters in a given text string to lowercase.
- UPPER: Converts all characters in a given text string to uppercase
- CONCATENATE: It will join together two or more text strings
- LEFT: It will return a specified number of characters from the beginning of a supplied text string
- RIGHT: Returns a specified number of characters from the end of a supplied text
Date & Time
- TIME: It will return a time, from a user-given hour, minute, and second.
- NOW: It will return the current date & time
- TODAY: It will return current today’s date.
Statistical
- SUM: It will return the sum of a given list of numbers
- MAX: It will return the largest value from a list of given numbers
- COUNTIF: It will return the number of cells (of a supplied range), that satisfy a given criterion.
Logical
- AND: Tests a number of user-defined conditions and returns TRUE if ALL of the conditions evaluate to TRUE, or FALSE otherwise
- OR: Tests a number of user-defined conditions and returns TRUE if ANY of the conditions evaluate to TRUE, or FALSE otherwise
- NOT: It will return a logical value that is the opposite of a user given logical value or expression i.e. returns FALSE is the given argument is TRUE and returns TRUE if the given argument is FALSE)
Mathematical
- SQRT: It will return the positive square root of a given number
- POWER: It will return the power of a number raised to the second number.
How to Insert a function in Excel
Every function has the same structure. For example, SUM(A1:A4). The name of this function is SUM. The part between the brackets (arguments) means we’re giving Excel the range A1:A4 as input. This function adds the value in cells A1, A2, A3, and A4. It’s not easy to reminder which function and which arguments to use for each task. Fortunately, the Insert Function features in Excel help you with this.
To insert SUM function, need to follow the following steps:
Step 1. Select a cell.
Step 2. Click the Insert Function button. The ‘Insert Function‘ dialog box appears.
Step 3. Look for a function or select a function from a category. For example, choose SUM from the statistical category.
Step 4. Click OK.
The ‘Function Arguments‘ dialog box appears.
Step 5. Click within the Range box and select the range A1:E1.
Step 6. Click OK.
Result: Excel will sum all the number which are present from A1:E1.
To insert MAX function, need to follow the following steps:
Step 1. Select a cell.
Step 2. Click the Insert Function button. The ‘Insert Function‘ dialog box appears.
Step 3. Look for a function or select a function from a category. For example, choose MAX from the statistical category.
Step 4. Click OK. The ‘Function Arguments‘ dialog box appears.
Step 5. Click within the Range box and select the range A1:E1.
Step 6. Click OK
Result: Excel will MAX all the number which are present from B2:E21
To insert COUNT function, need to follow the following steps:
Step 1. Select a cell.
Step 2. Click the Insert Function button. The ‘Insert Function‘ dialog box appears.
Step 3. Look for a function or select a function from a category. For example, choose COUNT from the statistical category.
Step 4. Click OK.
The ‘Function Arguments‘ dialog box appears.
Step 5. Click within the Range box and select the range B2:E2.
Step 6. Click OK.
Result: Excel will COUNT all the number which are present from B2:E2