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

    0
    0


    Хотя Excel может похвастаться более чем 450 функциями, иногда они просто не справляются. Эти встроенные функции не справляются, когда вы хотите автоматизировать определенные задачи или выполнить уникальные вычисления в своих базах данных. Вот где проявляется магия VBA (Virtual Basic for Applications). Это неизведанная функция Excel для создания пользовательских функций, которая полностью изменила то, как я работаю со своими электронными таблицами.




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

    Пользовательские функции (UDF) в Excel

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


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

    Создание и использование пользовательской функции в Excel

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

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

    • Пользовательская функция начинается с Функция и заканчивается Конечная функция. Вам необходимо написать логику между операторами Function и End Function.
    • За оператором функции следует имя функции. Вам нужно дать ей уникальное имя, чтобы вы могли ее идентифицировать и легко использовать в любое время.
    • Имя не может совпадать со стандартными именами функций Excel, поскольку в этом случае всегда будет выполняться стандартная функция.
    • Имя пользовательской функции не должно совпадать с адресом ячейки на листе. Например, использование имени CDE567 не допускается.
    • В функциях Excel нельзя использовать пробел. При этом можно использовать подчеркивание, например среднее_количество в вашей функции.


    Используйте пользовательские функции в Excel

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

    1. Откройте книгу Excel на своем ПК.
    2. Нажмите Альт + Ф11 (или Вариант + F11 для Mac) клавиши для открытия VBA. В качестве альтернативы вы можете перейти к Разработчик вкладку и выберите Визуальный базовый.
      Открыть Visual Basic в Excel
    3. Выбирать Вставлять вверху и нажмите Модуль.
      Открыть модуль в Visual Basic
    4. Запишите код VBA. Как вы можете видеть из примера ниже, я дал ему Он добавил имя для лучшего знакомства. Нажмите Ctrl+С (или Команда + S на Mac) клавиши, чтобы сохранить его.
      Напишите функцию Visual Basic


    Теперь вы можете закрыть окно VBA и вернуться к листу Excel. Выберите ячейку, введите =ДобавитьНечетное(B4:B14) и нажмите Enter, чтобы вычислить общее количество нечетных чисел в заданном диапазоне.

    Выполнить функцию Excel


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

    1. Откройте редактор VBA в Microsoft Excel (см. шаги выше).
    2. Создайте новый модуль. Введите функцию ниже.
      Пользовательская функция в Excel


    Закройте окно и перейдите в вашу книгу Excel. Перейдите в любую ячейку и введите =РассчитатьВозраст(A22) для расчета конечного результата. Когда вы вносите изменения в определенный диапазон ячеек, функция автоматически обновляет конечное значение.

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

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


    Рассмотрим другой сценарий: вы работаете в отделе продаж и часто должны определять комиссию для торговых представителей на основе их общих показателей продаж. Теперь комиссия установлена ​​в размере 5% для продаж до $5000, 7% для продаж от $5001 до $10000 и 10%, если продажи превышают $10000. Вы можете создать пользовательскую функцию с соответствующими условиями и получить желаемые результаты в кратчайшие сроки.

    1. Откройте редактор VBA в Microsoft Excel (проверьте шаги выше).
    2. Создайте новый модуль из меню Вставка. Напишите пользовательскую функцию ниже.
      Написать пользовательскую функцию в Excel


    Вернитесь к своему рабочему листу Excel и введите =РассчитатьКомиссию(G11) и рассчитайте комиссию в кратчайшие сроки.

    Рассчитать комиссию на основе функции Excel

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


    Используйте Excel на стероидах

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

    Предыдущая статьяPalworld выходит на PS5 уже сегодня, так как судебное разбирательство с Nintendo не за горами
    Следующая статьяПоследний трейлер Dragon Age: The Veilguard – это просто один большой дракон
    Петр Григорин
    Интересуется софтом, разработкой и использование новых приложений, технология искусственного интеллекта. Этот писатель - человек с техническими знаниями, который увлечен разработкой программного обеспечения и использованием новых приложений. Его особенно интересуют технологии искусственного интеллекта и то, как они могут быть использованы для улучшения различных отраслей промышленности и повседневной жизни. Обладая прочной основой в области информатики и острым взглядом на инновации, этот писатель обязательно привнесет ценные идеи и соображения в любую дискуссию на эти темы. Пишет ли он о последних открытиях в области ИИ или исследует потенциал новых программных инструментов, его работа обязательно будет увлекательной и заставляющей задуматься.