Требования:

  • Базовые знания vba — Использование таблиц / именованных диапазонов При работе с рабочими книгами, включенными и выключенными, иногда между повторными посещениями книги может быть трудно запомнить структуру данных и настроенную формулу.

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

В этом примере я покажу, как можно упростить формулу расчета бонусов.

image

Внешний вид формулы без таблицы или UDF Formula:

ЕСЛИ (СУММ (C2 / D2) ⇐ 1; 0; ЕСЛИ (СУММ (C2 / D2)> = 3; СУММ C2-D2) 0,03); ЕСЛИ (И (СУММ (C2 / D2)> 1; СУММ (C2 / D2) <3) = ИСТИНА; СУММ ((C2-D2) 0,02); 1)

С первого взгляда сложно понять логику этой формулы.

Внешний вид формулы с таблицей и без UDF Формула:

ЕСЛИ (СУММ ([@ [Годовые продажи]] / [@ Зарплата]) ⇐ 1; 0; ЕСЛИ (СУММ ([@ [Годовые продажи]] / [@ Зарплата])> = 3; СУММ [@ [Годовые продажи]] — [@ Зарплата]) 0,03); ЕСЛИ (И (СУММ ([@ [Годовые продажи]]] / [@ Зарплата])> 1; СУММ ([@ [Годовые продажи]]] / [@ Заработная плата]) <3) = ИСТИНА; СУММ (([@ [Годовые продажи]] — [@ Заработная плата]) 0,02); 1)

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

‘Я предпочитаю иметь длинные и описательные названия функций, чем короткие и не описательные названия Функция calculate_salary_to_sale_ratio_and_return_bonus (AnnualSales as Double, salary as Double) As Double Dim salary_to_sale_ratio As Double Dim Bon_factor As Double Dim return_bonus As Double salary_to_sale_sale_sale_salary_to_sale_ratio_and_return_bonus До 3 Bonus_factor = 0,02 Case Is> 3 Bonus_factor = 0,03 Case Else Bonus_factor = 0 # Конечный выбор return_bonus = (AnnualSales — зарплата) * Bonus_factor calculate_salary_to_sale_ratio_and_return_bonus = return_bonus Конечная функция Использование функции Формула:

Calcul_salary_to_sale_ratio_and_return_bonus ([@ [Годовые продажи]]; [@ Зарплата])

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