Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Статьи об Excel

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35734
Главная » Статьи » Эффективная работа в 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))), причём это - формула массива, которую следует вводить сочетанием клавиш <Ctrl>+<Shift>+<Enter>

 

Основой этой формулы является функция ИНДЕКС(), которая позволяет вывести элемент массива по указанному индексу (порядковому номеру). Первым аргументом этой функции указывается диапазон ячеек с табельными номерами. Выделив в формуле фрагмент $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.

 

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

 

 

 

 

Категория: Приёмы работы с формулами | Добавил: Pelena (07.08.2014)
Просмотров: 11046 | Комментарии: 2 | Рейтинг: 5.0/5


Всего комментариев: 2
Спам-сообщение скрыто. Показать
+2   Спам
1    VEKTORVSFREEMAN   (19.09.2014 10:42)
   Отличная статья. Я как начинающий возьму себе на заметку. Ах где же были мои мозги на уроках информатики.... hands

0   Спам
2    TTT   (13.04.2015 08:46)
   Очень полезно!!! спасибо! hands

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!