Сложные формулы в excel

Сложные формулы в excel

Эта статья будет интересна тем, кто пытается понять работу сложных формул.

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

Разберём работу этих инструментов на нескольких примерах.

Пример 1. Дана таблица, содержащая сведения о персонале предприятия. Требуется по введённому табельному номеру определить фамилию сотрудника.

Для решения этой задачи в ячейку H3 ведём табельный номер, а в ячейку I3 формулу =ИНДЕКС($B$2:$B$25;ПОИСКПОЗ(H3;$E$2:$E$25;0))

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

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

Теперь посмотрим, как с этой же формулой поможет разобраться клавиша F9.

Выделим в строке формул ссылку I3, нажмём F9, выделим фрагмент $E$2:$E$37 и снова нажмём F9. Клавиша F9 вычисляет выделенные фрагменты формулы, и мы можем видеть не только результат функции, но и аргументы в виде массивов. Согласитесь, что при таком подходе формула становится «прозрачной», и становится очевиден результат функции ПОИСКПОЗ()

Чтобы привести формулу в первоначальный вид, нажмём ESC.

Ещё немного потренируемся: выделим фрагмент $B$2:$B$37, нажмём F9, затем выделим функцию ПОИСКПОЗ(I3;$E$2:$E$37;0) и снова F9. Видим массив фамилий, среди которых будет выбрана третья по счёту

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

После анализа формулы не забывайте нажимать ESC для возврата к исходному виду.

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

Пример 2. На основе таблицы из Примера 1 создать список табельных номеров и фамилий сотрудников одного из отделов, указанного в отдельной ячейке. Формула, решающая эту задачу, выглядит так: =ИНДЕКС($E$2:$E$25;НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$25=$H$7;СТРОКА($A$1:$A$24));СТРОКА(A1))), причём это — формула массива, которую следует вводить сочетанием клавиш + +

Основой этой формулы является функция ИНДЕКС(), которая позволяет вывести элемент массива по указанному индексу (порядковому номеру). Первым аргументом этой функции указывается диапазон ячеек с табельными номерами. Выделив в формуле фрагмент $E$2:$E$25 и нажав F9, мы увидим значения исходного массива

Порядковый номер для выбора элемента массива вычисляется с помощью функции НАИМЕНЬШИЙ(ЕСЛИ(.

Разобьём эту часть формулы на составляющие. Выделим фрагмент $A$2:$A$25=$H$7 и нажмём F9. Это логическое выражение даёт значение ИСТИНА, если значение ячейки диапазона $A$2:$A$25 равно выбранному названию отдела $H$7, и ЛОЖЬ, если не равно.

Выделим фрагмент СТРОКА($A$1:$A$24) и нажмём F9, получим массив чисел, идущих по порядку от 1 до 24.

Теперь предсказуем результат функции ЕСЛИ() — это массив, в котором значения ИСТИНА заменятся на порядковые номера, а значения ЛОЖЬ останутся на месте. Увидеть это можно, выделив функцию ЕСЛИ целиком с закрывающей скобкой и нажав F9

Далее в действие вступает функция НАИМЕНЬШИЙ(), которая первым аргументом имеет вышеуказанный массив, а вторым — функцию СТРОКА(A1). Обращаем внимание, что во всей формуле это единственная относительная ссылка, которая будет изменяться при копировании формулы по строкам, а именно в первом случае даст 1, на следующей строке 2 и т.д. по порядку. В итоге в ячейке I7 формула, «расшифрованная» с помощью клавиши F9, будет иметь вид

А скопированная в ячейку I8

Если понадобится применить данную формулу для другого диапазона, изменится исходный диапазон в функции ИНДЕКС(), а также изменится верхняя граница диапазона функции СТРОКА(), в то время как нижняя граница остаётся всегда $A$1. Важно, чтобы количество строк исходного диапазона совпадало с количеством строк в функции СТРОКА().

Фамилии в столбец J можно вставить с помощью формулы, разобранной в Примере 1.

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

Наглядность в сложных формулах

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

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

Программисты, однако, давно нашли способ удобного представления вложенных друг в друга объектов (процессов, циклов, вычислений). В большистве языков программирования (в том числе и в VBA) для этого успешно используется два основных приема:

  • система отступов слева при написании кода — каждый уровень отступов обозначает свою степень вложенности
  • комментарии для объяснения сложных или неочевидных фрагментов кода
Читать еще:  Как в excel прописать формулу суммы

Нечто похожее можно изобразить и с формулами в Excel.

Переносы и отступы

Для разбиения длинной формулы на несколько отдельных строк, например, по отдельным функциям или аргументам, можно использовать сочетание клавиш ALT+Enter, предварительно установив курсор в строке формул в нужное место. Саму строку формул (начиная с версии Excel 2007) можно спокойно увеличить по высоте, потянув за нижний край:

Отступы между функциями и аргументами можно смело делать клавишей пробела — это никак не повлияет на формулу и не приведет к ошибкам в вычислениях:

Комментарии

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

Если же формула или аргумент должен выдавать не число, а текст, то функцию Ч плюсовать уже нельзя — получим ошибку ЗНАЧ, т.к. нельзя складывать числа и текст. Для комментирования текста вместо нее можно использовать функцию ПОВТОР (REPT) . Она, по идее, повторяет заданный текст N-ое количество раз, но N мы можем задать равное нулю и приклеить получившуюся пустую строку к нашей формуле с помощью символа склеивания &:

В комплексе, все вышеперечисленное позволяет ощутимо облегчить понимание сложных формул в «тяжелых случаях»:

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

Создание сложных формул с помощью встроенных логических функций Excel

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

Ниже представлен список операторов сравнения Excel:

Больше или равно

Результатом логического выражения является логическое значение ИСТИНА (1) или логическое значение ЛОЖЬ (0).

Функция ЕСЛИ – это функция, которая позволяет вывести в ячейку одно значение, если заданное пользователем условие выполняется и другое – если условие не выполняется.

ЕСЛИ(лог_выраж.; знач._если_истина; знач._если_ложь)

Рассчитать стоимость товара с учетом того, что если количество превысило 5 шт., то магазин дает скидку 10%. Исходные данные приведены на рис. 26.

Для того чтобы рассчитать стоимость товара с учетом скидки необходимо:

Переместить курсор в ячейку D2. С помощью мастера функций выбрать из категории Логические функцию ЕСЛИ (рис. 27), а затем щелкнуть на кнопке ОК.

Диалоговое окно Аргументы функции (рис. 28) содержит три поля ввода. В поле Лог_выражение необходимо ввести условие, которое определяет, превышает ли проданное кол-во товара 5 шт., следовательно введем в это поле С2>5. В поле Значение_если_истина необходимо ввести формулу, которая вычисляет стоимость товара с учетом скидки, тогда введем в это поле B2*C2-B2*C2*0,1. В поле Значение_если_ложь необходимо ввести формулу, которая вычисляет стоимость товара без учета скидки (условие С2>5 — Ложь), в тогда введем в это поле B2*C2 (см. рис. 29). Теперь щелкнем на кнопке OK.

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

Функции ЕСЛИ могут быть вложены друг в друга в качестве значений аргументов значение_если_истина и значение_если_ложь. С помощью таких вложенных функций Если можно конструировать более сложные проверки. Рассмотрим на примерах, как необходимо использовать вложенной функцией ЕСЛИ.

На рис. 31 приведена таблица с данными. Необходимо:

Определить, на какую сумму продано товаров каждого вида.

Определить, на какую сумму продано товаров каждого вида с учетом скидки (сумма с учетом скидки = сумма — сумма * скидка). Скидка начисляется по следующему принципу: если продано товара на сумму более 2500 грн., то скидка составит 5%, если продано товара на сумму менее 1100 грн., то скидка составит 0%, в остальных случаях скидка составит 2%.

Для того чтобы выполнить первый пункт задания необходимо в ячейку D2 ввести формулу =C2*B2.

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

Переместим курсор в ячейку E2 и с помощью мастера функций введем следующую формулу (рис. 33 – 34). Результаты решения приведены на рис. 35.

Рис. 35

Функции ИЛИ, И

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

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

Функция ИЛИ возвращает логическое значение ИСТИНА, если хотя бы одно из логических выражений истинно, а функция И возвращает логическое значение ИСТИНА, только если все логические выражения истинны.

Читать еще:  Функция поискпоз в excel примеры с несколькими условиями

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

Предположим, что нужно вывести на экран содержимое ячейки B4, если она содержит число строго между 1 и 100 (1 =1; B4 =4.5.

Тогда в ячейку С15 необходимо ввести формулу: =СЧЁТЕСЛИ(B11:B13;»>=4,5″). Результат приведен на рис. 40

СУММЕСЛИ (диапазон; критерий; диапазон_суммирования)

диапазон — диапазон ячеек проверяемых на критерий (условие).

критерий — критерий (условие) в форме числа, выражения или текста, определяющего суммируемые ячейки.

диапазон_суммирования — фактические ячейки для суммирования.

Функция СУММЕСЛИ работает следующим образом: ячейки из «диапазон_суммирования» суммируются, только если соответствующие им ячейки в аргументе «диапазон» удовлетворяют условию (критерию). В тех случаях, когда диапазон вычисляемых ячеек (где проверяется условие) и диапазон фактических ячеек для суммирования совпадают, аргумент «диапазон_суммирования» можно не указывать.

В таблице на рис. 41 приведены объемы партий товара, полученные магазином. Необходимо просуммировать только объемы тех партий, значения которых превышают 20. Решение на рис. 42

Создание сложных формул в Microsoft Excel

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

Как создать сложную формулу в Excel

В приведенном ниже примере, мы продемонстрируем, каким образом Excel вычисляет сложные формулы, опираясь на порядок выполнения операций. В данном примере мы хотим вычислить величину налога с продаж за услуги по питанию. Чтобы это осуществить, запишем следующее выражение в ячейке D4: =(D2+D3)*0,075. Эта формула сложит стоимость всех позиций счета, а затем умножит на размер налога с продаж 7,5% (записанный как 0,075).

Excel придерживается порядка действий и сначала складывает значения в скобках: (44.85+39.90)=$84.75. Затем умножает это число на налоговую ставку: $84.75*0.075. Результат вычислений показывает, что налог с продаж составит $6.36.

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

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

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

  1. Выделите ячейку, которая будет содержать формулу. В нашем примере мы выбрали ячейку C4.
  2. Введите в нее следующее выражение: =B2*C2+B3*C3. Действия в формуле будут выполняться в соответствии с правилами порядка, следовательно, первым идет умножение: 2.29*20=45.80 и 3.49*35=122.15. Затем эти значения будут суммированы для вычисления полной стоимости: 45.80+122.15.
  3. Выполните проверку, затем нажмите Enter на клавиатуре. Формула вычислит и отобразит результат. В нашем случае результат вычислений показывает, что полная стоимость заказа составляет $167.95.

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

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

10 формул Excel, которые пригодятся каждому

Не нужно тратить время на подсчёты в Microsoft Excel вручную, ведь существует множество формул, которые помогут быстро справиться с поставленными задачами и повысить точность ваших отчётов. Мы собрали 10 наиболее полезных формул, которые вы сможете выучить за один день.

Англоязычный вариант: =SUM(5; 5) или =SUM(A1; B1) или =SUM(A1:B5)

Функция СУММ позволяет вычислить сумму двух или более чисел. В этой формуле вы также можете использовать ссылки на ячейки.

С помощью формулы вы можете:

  • посчитать сумму двух чисел c помощью формулы: =СУММ(5; 5)
  • посчитать сумму содержимого ячеек, сссылаясь на их названия: =СУММ(A1; B1)
  • посчитать сумму в указанном диапазоне ячеек, в примере во всех ячейках с A1 по B6: =СУММ(A1:B6)

Англоязычный вариант: =COUNT(A1:A10)

Данная формула подсчитывает количество ячеек с числами в одном ряду. Если вам необходимо узнать, сколько ячеек с числами находятся в диапазоне c A1 по A30, нужно использовать следующую формулу: =СЧЁТ(A1:A30).

Англоязычный вариант: =COUNTA(A1:A10)

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

Англоязычный вариант: =LEN(A1)

Функция ДЛСТР подсчитывает количество знаков в ячейке. Однако, будьте внимательны – пробел также учитывается как знак.

Англоязычный вариант: =TRIM(A1)

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

Читать еще:  Если пусто то пусто excel формула

Мы добавили лишний пробел после фразы “Я люблю Excel”. Формула СЖПРОБЕЛЫ убрала его, в этом вы можете убедиться, взглянув на количество знаков с использованием формулы и без.

ЛЕВСИМВ, ПСТР и ПРАВСИМВ

=ЛЕВСИМВ(адрес_ячейки; количество знаков)

=ПРАВСИМВ(адрес_ячейки; количество знаков)

=ПСТР(адрес_ячейки; начальное число; число знаков)

Англоязычный вариант: =RIGHT(адрес_ячейки; число знаков), =LEFT(адрес_ячейки; число знаков), =MID(адрес_ячейки; начальное число; число знаков).

Эти формулы возвращают заданное количество знаков текстовой строки. ЛЕВСИМВ возвращает заданное количество знаков из указанной строки слева, ПРАВСИМВ возвращает заданное количество знаков из указанной строки справа, а ПСТР возвращает заданное число знаков из текстовой строки, начиная с указанной позиции.

Мы использовали ЛЕВСИМВ, чтобы получить первое слово. Для этого мы ввели A1 и число 1 – таким образом, мы получили «Я».

Мы использовали ПСТР, чтобы получить слово посередине. Для этого мы ввели А1, поставили 3 как начальное число и затем ввели число 6 – таким образом, мы получили «люблю» из фразы «Я люблю Excel».

Мы использовали ПРАВСИМВ, чтобы получить последнее слово. Для этого мы ввели А1 и число 6 – таким образом, мы получили слово «Excel» из фразы «Я люблю Excel».

Формула: =ВПР(искомое_значение; таблица; номер_столбца; тип_совпадения)

Англоязычный вариант: =VLOOKUP (искомое_значение; таблица; номер_столбца; тип_совпадения)

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

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

  1. В первом списке данные записаны с А1 по В13, во втором – с D1 по Е13.
  2. В ячейке B17 поставим формулу: =ВПР(B16; A1:B13; 2; ЛОЖЬ)
  • B16 = искомое значение, то есть паспортные данные. Они имеются в обоих списках.
  • A1:B13 = таблица, в которой находится искомое значение.
  • 2 – номер столбца, где находится искомое значение.
  • ЛОЖЬ – логическое значение, которое означает то, что вам требуется точное совпадение возвращаемого значения. Если вам достаточно приблизительного совпадения, указываете ИСТИНА, оно также является значением по умолчанию.

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

Формула: =ЕСЛИ(логическое_выражение; «текст, если логическое выражение истинно; «текст, если логическое выражение ложно»)

Англоязычный вариант: =IF(логическое_выражение; «текст, если логическое выражение истинно; «текст, если логическое выражение ложно»)

Когда вы проводите анализ большого объёма данных в Excel, есть множество сценариев для взаимодействия с ними. В зависимости от каждого из них появляется необходимость по‑разному воздействовать на данные. Функция «ЕСЛИ» позволяет выполнять логические сравнения значений: если что‑то истинно, то необходимо сделать это, в противном случае сделать что‑то ещё.

Снова обратимся к примеру из сферы продаж: допустим, что у каждого продавца есть установленная норма по продажам. Вы использовали формулу ВПР, чтобы поместить доход рядом с именем. Теперь вы можете использовать оператор «ЕСЛИ», который будет выражать следующее: «ЕСЛИ продавец выполнил норму, вывести выражение «Норма выполнена», если нет, то «Норма не выполнена».

В примере с ВПР у нас был доход в столбце B и имя человека в столбце E. Мы можем поместить квоту в столбце C, а следующую формулу – в ячейку D1:

=ЕСЛИ(B1>C1; «Норма выполнена»; «Норма не выполнена»)

Функция «ЕСЛИ» покажет нам, выполнил ли первый продавец свою норму или нет. После можно скопировать и вставить эту формулу для всех продавцов в списке, значение автоматически изменится для каждого работника.

СУММЕСЛИ, СЧЁТЕСЛИ, СРЗНАЧЕСЛИ

Формула: =СУММЕСЛИ(диапазон; условие; диапазон_суммирования) =СЧЁТЕСЛИ(диапазон; условие)

=СРЗНАЧЕСЛИ(диапазон; условие; диапазон_усреднения)

Англоязычный вариант: =SUMIF(диапазон; условие; диапазон_суммирования), =COUNTIF(диапазон; условие), =AVERAGEIF(диапазон; условие; диапазон_усреднения)

Эти формулы выполняют соответствующие функции – СУММ, СЧЁТ, СРЗНАЧ, если выполнено заданное условие.

Формулы с несколькими условиями – СУММЕСЛИМН, СЧЁТЕСЛИМН, СРЗНАЧЕСЛИМН – выполняют соответствующие функции, если все указанные критерии соответствуют истине.

Используя функции на предыдущем примере, мы можем узнать:

СУММЕСЛИ – общий доход только для продавцов, выполнивших норму.

СРЗНАЧЕСЛИ – средний доход продавца, если он выполнил норму.

СЧЁТЕСЛИ – количество продавцов, выполнивших норму.

Конкатенация

Формула: =(ячейка1&» «&ячейка2)

За этим причудливым словом скрывается объединение данных из двух и более ячеек в одной. Сделать объединение можно с помощью формулы конкатенации или просто вставив символ & между адресами двух ячеек. Если в ячейке A1 находится имя «Иван», в ячейке B1 – фамилия «Петров», их можно объединить с помощью формулы =A1&» «&B1. Результат – «Иван Петров» в ячейке, где была введена формула. Обязательно оставьте пробел между » «, чтобы между объединёнными данными появился пробел.

Формула конкатенации даёт аналогичный эффект и выглядит так: =ОБЪЕДИНИТЬ(A1;» «; B1) или в англоязычном варианте =concatenate(A1;» «; B1).

Кстати, все перечисленные формулы можно применять и в Google‑таблицах.

Эта статья является лишь верхушкой айсберга в изучении Excel. Для профессионального использования программы рекомендуем учится у профессионалов на курсах по Microsoft Excel.

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
Adblock
detector