Сборник готовых решений для типовых задач в повседневной работе с microsoft excel

Книга «Microsoft Excel: готовые решения — бери и пользуйся!»

Сборник готовых решений типовых проблем при работе в Microsoft Excel

Книга Excel готовые решения. Николай Павлов

Зачем эта книга

Я не умею учиться по книгам. То ли времени не хватает, то ли усидчивости, но для меня метод «научного тыка» всегда оставался главным. До книги же дело доходило только когда я упирался в очередную нерешабельную с ходу задачу. Тогда я лез в умную книжку, искал там описание похожей проблемы и, в очередной раз убедившись что «больнее всего наступать на детские грабли», находил решение. Или не находил — это уж как повезет с книгой.

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

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

Китайский мудрец Лао Цзы как-то сказал: «Если ты не нашел книгу, которую тебе хотелось бы прочитать — напиши ее сам».

Я и написал.

О чем эта книга

В книгу вошли самые полезные фрагменты и приемы из моих тренингов, лучшие материалы этого сайта в переработанном виде и статьи, которые я писал для офлайновых и онлайновых журналов и блогов за последние 5 лет. Минимум «воды», минимум теории, 360 страниц формата А4 практической пользы. Книга состоит из 226 приемов, разбитых на 9 глав и охватывает весь спектр повседневных задач офисного пользователя Excel:

dropdown.png  

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

Скачать пробную главу

Скачать пробную главу

calendar.png

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

text.png

Работа с текстом
Склеивание и разборка текста на отдельные фрагменты (слова, символы). Числа-как-текст и операции с ними. Перевод текста в транслит, поиск и замена латиницы в русском тексте. Исправление «кривого» текста с лишними символами, пробелами, проверка текста на соответствие шаблону.

book.png

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

ranges.png

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

mail.png

Интернет, электронная почта
Как отправить почту прямо из Excel, сделать одиночную или массовую рассылку. Как загрузить на лист Excel курс валюты или другие данные из интернета (веб-запрос, импорт XML). Как создать онлайн-опрос, результаты которого автоматически будут собираться в ваш файл Excel и т.д.

duplicates.png

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

formatting.png

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

scissors.png

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

formulas.png

Формулы
Какие бывают типы ссылок в формулах и как ими правильно пользоваться. Как быстро искать и исправлять ошибки в формулах, как ошибки скрывать и перехватывать. Как скопировать формулы без сдвига ссылок. Что такое именованные диапазоны и как они помогают при вводе формул и т.д.

protection.png

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

pivot.png

Сводные таблицы
Как готовить данные для сводной таблицы. Как создать отчет сводной таблицы и настроить его вид. Различные способы вычислений в сводных таблицах. Фильтрация сводных срезами и на временной шкале. Детализация итогов, разбиение сводной по листам.

zoom.png

Поиск и подстановка данных
Как быстро искать, находить и подставлять (заменять) данные в таблицах. Автофильтр. Использование срезов для фильтрации. Точный и приблизительный поиск. Подстановка с помощью функции ВПР (VLOOKUP), ее аналоги, секреты и нюансы ее применения. Двумерный поиск в таблице. Поиск с учетом регистра и без и др.

Посмотреть оглавление полностью (pdf, 600Кб)

Файлы с примерами из книги

К каждой задаче, описанной в книге прилагается «живой» файл-пример с готовой формулой или макросом.

список файлов с примерами

Где купить и сколько стоит

Два варианта на выбор:

Согласно принципу Парето, 20% усилий обеспечивают 80% результата. В этой книге только 20% того, что я знаю об Excel, но эти 20% помогли мне решить 80% всех моих задач. Надеюсь, что помогут вам.

Николай Павлов   С уважением,
  автор книги
  и проекта «Планета Excel»
  Николай Павлов

Отзывы читателей

TheLine

Книга на 5+ Информация хорошо подготовлена, структурирована и легко понятна.

Vaion

давно собирался более детально изучить Excel, периодически приходится работать с объемными таблицами различного содержания. По описанию курса показалось что он стоящий, чутьё не подвело. Чувствуется что автор глубоко разбирается в предмете, изложение — очень простое, поймет даже новичок, материал из категории — бери и делай (без теории и пр.). Спасибо Автору.

Игорь Цветков

Пользуюсь месяц! Реально любые мелкие вопросы, которые возникают, и раньше требовавшие много времени )) Теперь решаются моментально! Рекомендую!

Артем Бойко

Купил книгу, спасибо большое! Увидимся на ваших замечательных тренингах!

Вадим Меркулов

Отличная книга, ничего лишнего!

Roman

Купил книгу из чувства глубокой благодарности за этот сайт!!! :)) А сама книга, как приятный бонус. Спасибо за Ваш труд.

Ольга Смеловская

Николай, спасибо за книгу, за Ваш труд. Купила вчера в электронной версии «мою прелесть». Жаль, что она не разговаривает Вашим голосом — это единственный её недостаток.

Александр

Отличная книга! Рафинированная Excel — польза. Спасибо, Николай

Михаил Силин

Единственная книга по Excel, которая написана с душой и для людей

Прохор Протопович

Очень полезная и практичная книга, молодец Николай. И главное АВТОР не жадный. Цена книги доступна основной массе Россиян. Видно, что заработать деньги для него не самое главное. Очень благодарен ему за книгу и за все его уроки и статьи.

Иван Никулин

Это волшебная книга! Самая лучшая по полному изучению программы MICROSOFT EXCEL, такой доступной и такой понятной не сыскать. В электронной версии книги [формат PDF], особенно радует то, что создано «работающее оглавление». Согласитесь удобно когда, при наведении курсора на нужный пункт оглавления [появится «рука» — означает что ссылка работоспособная], — при нажатии Вас автоматически “перебросит” к нужному пункту содержания, то есть на нужную страницу. И это здорово, не приходится судорожно крутить колесиком мыши!.. В этой книге разобрано все подробно, все на каждом примере, с иллюстрациями.. Я люблю совершенствоваться, а с данным материалом все получится неимоверно быстро! Любой вопрос решается на раз, два… ) Спасибо, Николай! )

Смольянинова Таисия

Сейчас как раз самостоятельно занимаюсь по Вашей книге «Microsoft Excel. Готовые решения — бери и пользуйся.» Откровенно говоря, другие расхваленные книги известных авторов нервно курят в сторонке перед Вашим изданием. Все очень понятно и внятно объяснено. Спасибо!

Светлана Ересько

… книга стала самой любимой и самой настольной. Огромнейшее спасибо!! Книга + надстройка Plex — эксель стал еще интересней и элегантней. Записываюсь на онлайн тренинг. Дождалась….

Илья Белоусов

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

Игорь Строгов

Согласен со всеми авторами на 100%. Эта книга всегда должна быть под рукой, потому что возникающие проблемы можно решить за пару минут, а не за пару часов. И не надо лопатить интернет в поисках подсказок. Огромное спасибо, Николай!

Оставьте свой отзыв!

  • Главная
  • Аудиокниги
  • Книги
  • Журналы

Лучшее в категории — Книги / Компьютерная литература

Java 7 (2012, Ильдар Хабибуллин)
Рейтинг: 10 из 10
Программирование на Python для начинающих (2015, Майк МакГрат)
Рейтинг: 9,8 из 10
Простой Python. Современный стиль программирования (2016, Билл Любанович)
Рейтинг: 9,8 из 10
Программирование. Принципы и практика с использованием C++. 2-е издание (2016, Бьярне Страуструп)
Рейтинг: 9,8 из 10
Windows 10. Новейший самоучитель (2015, Виталий Леонтьев)
Рейтинг: 9,7 из 10
Изучаем JavaScript. Руководство по созданию современных веб-сайтов (2017, Этан Браун)
Рейтинг: 9,6 из 10
Программирование на Java для начинающих (2016, Майк МакГрат)
Рейтинг: 9,6 из 10
Программирование на C для начинающих. 4-е издание (2016, Майк МакГрат)
Рейтинг: 9,6 из 10

27
июн
2015

Excel - готовые решения

ISBN: 978-5-519-01837-1
Формат: PDF, EBook (изначально компьютерное)
Автор: Николай Павлов
Год выпуска: 2014
Жанр: Компьютерная литература
Издательство: Книга по Требованию
Язык: Русский
Количество страниц: 382

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

Рекомендуется пользователям Microsoft Excel любого уровня.

Список примеров

    Автоматическая фиксация текущей даты при вводе данных
    Быстрый ввод даты без разделителей
    Быстрый ввод текущей даты
    Виды ссылок в формулах
    Вставка в отфильтрованные строки
    Вставка печатной подложки
    Выборка сразу всех искомых значений из таблицы
    Выборочное отображение листов пользователям
    Выборочное суммирование из диапазона по 1-2-3 критериям
    Выделение дубликатов цветом
    Выделение цветом строки или столбца по условию
    Выпадающий список для выбора изображений товаров
    Выпадающий список на основе динамического диапазона
    Выпадающий список с автоматическим добавлением
    Выпадающий список с удалением использованных элементов
    Вычисление возраста или стажа
    Вычисление временных интервалов
    Вычисление дня недели по дате
    Вычисление нужной даты по формуле
    Вычисления в сводных
    Генерация паролей
    Двумерный поиск в таблице
    Динамическая гиперссылка для быстрого перехода
    Добавление значков к ячейкам
    Заливка ячеек в шахматном порядке
    Замена формул на их значения
    Заполнение пустых ячеек
    Защита листа с сохранением группировки
    Извлечение N-ro по счету слова из ячейки
    Извлечение символов из текстовой строки
    Извлечение списка уникальных элементов из диапазона
    Импорт курса валют с сайта
    Использование срезов для поиска и фильтрации
    Как выделить из даты день, месяц, год отдельно
    Как собрать дату из фрагментов (день, месяц, год)
    Как создать выпадающий список
    Картинка в примечании к ячейке
    Картинка в примечаниях
    Маркированный и нумерованный списки
    Микрографики в ячейках
    Настройка вычислений в сводных таблицах
    Нестандартные форматы ячеек
    Номер квартала по дате
    Номер недели по дате
    Обработка ошибок в формулах
    Объединение данных из двух столбцов в один
    Оглавление
    Ограничение рабочей области на листе
    Отделяющие линии между группами строк
    Отправка книги или листа по электронной почте
    Перевод текста в транслит
    Подсветка дат и сроков
    Подсветка лишних пробелов
    Подсветка недопустимых значений
    Подсветка ячеек с формулами
    Подстановка с помощью функции ВПР (VLOOKUP)
    Подсчет количества слов в ячейке
    Подсчет количества уникальных значений в диапазоне
    Поиск в таблице с учетом регистра
    Поиск данных в таблице с помощью функций ИНДЕКС и ПОИСКПОЗ
    Поиск и замена английских букв в тексте
    Полосатая заливка строк таблицы зеброй
    Получение списка файлов в папке
    Пометка элементов списка флажками (галочками)
    Превращение строк в столбцы и обратно
    Преобразование текстовой даты в полноценную дату
    Приблизительный поиск с помощью функции ВПР
    Проверка текста на соответствие шаблону
    Прячем содержимое ячейки
    Разделение слипшегося текста по столбцам
    Различные типы ссылок на ячейки в формулах
    Сборка данных из нескольких одинаковых таблиц
    Сборка листов из разных книг в одну
    Свиг дат
    Связанные (зависимые) выпадающие списки
    Склеивание текста из нескольких ячеек
    Скрытие и отображение ненужных строк и столбцов
    Случайная выборка данных из диапазона
    Создание отчетов с помощью сводных таблиц
    Создание писем с помощью функции ГИПЕРССЫЛКА
    Создание резервных копий ценных файлов
    Сортировка диапазона формулой
    Сортировка диапазона
    Сортировка листов
    Сохранение выбранных листов как отдельных файлов
    Список файлов в папке
    Сумма ячеек по цвету
    Суперскрытый лист
    Точное копирование формул без сдвига ссылок
    Удаление апострофов в начале ячеек
    Удаление из текста лишних символов и пробелов
    Удаление пустых строк
    Удаление пустых ячеек в диапазоне
    Удобная навигация по листам
    Удобный просмотр формул и результатов одновременно
    Улучшенный вариант функции ВПР (VLOOKUP)
    Универсальный календарь формулой
    Условное форматирование
    Фамилия И.О. из ФИО
    Фильтрация дат с помощью временной шкалы
    Фильтрация срезами
    Функция запроса курса доллара на заданную дату
    Цветовые шкалы
    Число дней между двумя датами
    Выпадающий список с данными из другого файла
    Сборка данных из нескольких разных таблиц

28
июл
2009

Excel 2007 (2008, Игорь Пащенко)

IT-литература — Офисные приложения — Excel 2007 С помощью этой книги вы познакомитесь с основными возможностями программы Microsoft Excel 2007, предназначенной для создания электронных таблиц и управлению ими. Вы сможете быстро освоить все необходимые приемы, поскольку весь необходимый материал изложен максимально кратко и понятно, с испо …

ISBN: 978-5-699-24209-2
Формат: PDF, Отсканированные страницы
Год выпуска: 2008
Автор: Игорь Пащенко
Жанр: Обучающая литература
Издательство: ЭКСМО
Количество страниц: 496

10
авг
2014

Excel 2010 на примерах

На конкретных примерах показаны возможности популярного офисного приложения Microsoft Office Excel 2010. Рассмотрены особенности версии, существенно изменившийся графический интерфейс, ресурсы (настройки, гиперссылки, примечания, печать и надстройки) форматирование и применение стилей, методы обработки данных, программирование в среде VBA …

ISBN: 978-5-9775-0578-9
Формат: PDF, EBook (изначально компьютерное)
Автор: Алексей Васильев
Год выпуска: 2010
Жанр: Компьютерная литература
Издательство: БХВ-Петербург
Серия: На примерах
Язык: Русский
Количество страниц: 432/628

08
апр
2015

Excel 2010 в примерах (2012, Карчевский Е.М.)

На конкретных примерах показаны возможности популярного офисного приложения Microsoft Office Excel 2010. В учебнике вы найдете: Первое знакомство; Элементарная сортировка данных; Графическое представление данных таблиц; Работа с диаграммами; Использование рисунков в диаграммах; Работа со списками; Сортировка; Использование фильтров; Работ …

Формат: PDF, EBook (изначально компьютерное)
Автор: Карчевский Е.М., Филиппов И.Е.
Год выпуска: 2012
Жанр: Компьютерная литература
Издательство: Казанский университет
Язык: Русский
Количество страниц: 100

09
авг
2015

Excel 2013. Полное руководство (2015, ы: В. Серогодский)

С этой книгой вы научитесь грамотно пользоваться профессиональными возможностями Excel 2013, сможете существенно повысить эффективность своей работы и научитесь быстро решать самые различные задачи. Особое внимание уделено таким важным вопросам, как проведение расчетов (от решения алгебраических уравнений до использования спец. функций Ex …

ISBN: 978-5-94387-970-8
Формат: PDF, OCR без ошибок
Авторы: В. Серогодский, А. Рогозин, Д. Козлов, А. Дружинин, Р. Прокди
Год выпуска: 2015
Жанр: Компьютерная литература
Издательство: Наука и техника
Серия: Полное руководство
Язык: Русский
Количество страниц: 416

04
окт
2013

Понятный самоучитель Excel 2013

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

ISBN: 978-5-496-00786-3
Формат: PDF, OCR без ошибок
Автор: Алексей Лебедев
Год выпуска: 2013
Жанр: Компьютерная литература
Издательство: Питер
Язык: Русский
Количество страниц: 128

15
мая
2011

Понятный самоучитель Excel 2010

Microsoft Excel — одна из самых загадочных и интересных программ в пакете MS Office 2010. Интересна она многочисленными средствами автоматизации работы, оформления документов и богатыми вычислительными возможностями. Загадочность ее состоит в том, что большинство пользователей применяют лишь малую толику того, что может дать им Excel. Это …

ISBN: ISBN 978-5-49807-771-0
Формат: PDF, Отсканированные страницы
Автор: В. Волков
Год выпуска: 2010
Жанр: Компьютерная литература
Издательство: Питер
Язык: Русский
Количество страниц: 252

08
фев
2017

MS Excel в расчетных задачах (2010, Т.Р. Косовцева)

Рассматривается версия MS Excel 2007.Учебное пособие предназначено для студентов специальностей «Прикладная информатика в экономике» и «Экономика», изучающих дисциплину «Информатика», и содержит необходимые теоретические сведения по применению электронных таблиц для решения конкретных математических и экономических задач, построения диагр …

ISBN: 978-5-9558-0282-4
Формат: PDF, EBook (изначально компьютерное)
Автор: Т.Р. Косовцева, В.Ю. Петров
Год выпуска: 2010
Жанр: Информатика, экономика
Издательство: СПГУ ИТМО
Язык: русский
Количество страниц: 82

16
авг
2014

Microsoft Excel 2010. Самое необходимое

Книга представляет собой практическое руководство для тех, кто начинает работать с Microsoft Excel 2010. В ней представлены самые необходимые сведения для решения типовых задач: выполнения расчетов, форматирования и оформления таблиц, построения диаграмм и графиков. Уделено внимание обработке данных, использованию шаблонов и макросов. Кни …

ISBN: 978-5-9775-0583-3
Формат: PDF, EBook (изначально компьютерное)
Автор: Никита Культин, Лариса Цой
Год выпуска: 2010
Жанр: Компьютерная литература
Издательство: БХВ-Петербург
Серия: Самое необходимое
Язык: Русский
Количество страниц: 208

Готовые решения

Сборник готовых решений самых распространенных проблем и задач, с которыми сталкиваются в повседневной работе пользователи Microsoft Excel. Материал охватывает все основные направления и темы: работу с текстом и датами, форматирование, вычисления с помощью формул и функций, обработку больших массивов данных и создание по ним аналитических отчетов с помощью сводных таблиц. Рекомендуется пользователям Microsoft Excel любого уровня. Автор готовых решений — Николай Павлов, тренер по продуктам Microsoft Office и по Excel и автор сайта «Планета Excel».

Как правильно использовать функцию СМЕЩ в Excel

Функция СМЕЩ может оказаться очень полезной при подсчете суммы, когда есть необходимость добавлять новые строки. Эта функция позволяет возвращать ссылку на диапазон, который смещен относительно исходной ссылки на определенное число столбцов и строк. Рассмотрим работу этой функции на небольшом примере.

Базы данныхПрактикум

Как в таблице Excel проверить текст на соответствие установленному шаблону

В языке Visual Basic существует один крайне полезный оператор, называемый Like. Он умеет проверять подобие (похожесть) двух текстовых строк или соответствие текстовой строки заданному шаблону. Такое может очень пригодиться при проверке введенных пользователем данных. Например, с его помощью легко можно определить, правильно ли был введен.

МакросыРабота с текстомФорматирование

Как правильно настроить поиск и замену английских букв в русском тексте таблиц Excel

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

ДанныеМакросыРабота с текстом

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

Иногда в работе некоторых специалистов (IT-администраторов, инженеров и др.) возникает ситуация, когда нужно быстро создать много паролей для новых пользователей, т.е. сгенерировать случайные наборы символов.

МакросыРабота с текстомФункции

Как в таблице Excel просто и быстро подсчитать количество слов в ячейке

Предположим, что в ячейке А1 у нас есть какой-то текст, а в ячейке B1 нам нужно подсчитать количество слов в этом тексте. Простым, но красивым решением для подсчета количества слов в ячейке будет следующая формула для B1.

Работа с текстомСохранение данныхЯчейки

Excel - готовые решения — 2543525 — 1


ID товара

2543525


Издательство

Т8


Год издания

2016


ISBN

978-5-519-01837-1


Размер

28×20.7×2.2


Вес, г

899

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

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


Т8

На товар пока нет отзывов

Поделитесь своим мнением раньше всех

Как получить бонусы за отзыв о товаре

1


Сделайте заказ в интернет-магазине

2


Напишите развёрнутый отзыв от 300 символов только на то, что вы купили

3


Дождитесь, пока отзыв опубликуют.

Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать
неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в
первой десятке.

Правила начисления бонусов

Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать
неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в
первой десятке.

Правила начисления бонусов

Книга «Excel — готовые решения» есть в наличии в интернет-магазине «Читай-город» по привлекательной цене.
Если вы находитесь в Москве, Санкт-Петербурге, Нижнем Новгороде, Казани, Екатеринбурге, Ростове-на-Дону или любом
другом регионе России, вы можете оформить заказ на книгу
Николай Павлов
«Excel — готовые решения» и выбрать удобный способ его получения: самовывоз, доставка курьером или отправка
почтой. Чтобы покупать книги вам было ещё приятнее, мы регулярно проводим акции и конкурсы.

Microsoft Excel: Готовые решения – бери и пользуйся!

Николай Павлов

Microsoft Excel:
Готовые решения- бери и пользуйся!

2

Николай Павлов

Павлов Н.
П12 Excel – готовые решения. Бери и пользуйся! / Николай Павлов. – М.: Книга по Требованию, 2014. – 382 с.

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

ISBN: 978-5-519-01837-1
УДК 373.167.1:002
ББК 32.81-018,2*32,973

Охраняется законом РФ об авторском праве. Воспроизведение всей книги или любой ее части воспрещается без
письменного разрешения автора. Любые попытки нарушения закона будут преследоваться в судебном
порядке.

© Н.В. Павлов, 2014
© Книга по Требованию, 2014

3

Microsoft Excel: Готовые решения – бери и пользуйся!

Короткое предисловие
Если ты не нашел книгу, которую тебе хотелось бы прочитать, то
напиши ее сам. (Лао Цзы)

Я знаю, что предисловия никто не читает, поэтому буду краток.
Согласно принципу Парето, 20% усилий обеспечивают 80% результатов. В этой книге 20% того, что я знаю об
Excel, но это те 20%, которые позволят вам решать 80% всех задач в реальной жизни.
Меня зовут Николай Павлов. Я тренер по продуктам Microsoft Office и по Excel и автор сайта «Планета Excel»
(www.planetaexcel.ru).
Вот уже больше 10 лет я провожу тренинги по Microsoft Excel и другим программам пакета Microsoft Office для
компаний и частных лиц. Мне нравится помогать людям и менять их представление о том, что можно сделать в
этих программах. Я – практик, кроме проведения тренингов я разрабатываю проекты автоматизации бизнеспроцессов с использованием Microsoft Office и VBA для компаний разного калибра.
За время работы у меня накопился приличный набор приемов, алгоритмов, «фишек» по работе в этих
программах, которым я и хочу с вами поделиться в этой книге.

С уважением,
Николай Павлов
Microsoft Certified Trainer
Microsoft Most Valuable Professional
Microsoft Office Master Instructor

4

Николай Павлов

Оглавление
КОРОТКОЕ ПРЕДИСЛОВИЕ ………………………………………………………………………………………………………………………………………… 4
ФАЙЛЫ ПРИМЕРОВ И ВИДЕОУРОКИ ……………………………………………………………………………………………………………………….. 12
ВЫПАДАЮЩИЕ СПИСКИ …………………………………………………………………………………………………………………………………………. 13
КАК СОЗДАТЬ ВЫПАДАЮЩИЙ СПИСОК ………………………………………………………………………………………………………………………………….. 14
Способ 1. Быстрый ……………………………………………………………………………………………………………………………………………….. 14
Способ 2. Стандартный ……………………………………………………………………………………………………………………………………….. 14
Способ 3. Элемент управления ……………………………………………………………………………………………………………………………… 16
Способ 4. Элемент ActiveX …………………………………………………………………………………………………………………………………….. 18
Итоговая сравнительная таблица всех способов …………………………………………………………………………………………………. 20
СВЯЗАННЫЕ (ЗАВИСИМЫЕ) ВЫПАДАЮЩИЕ СПИСКИ ………………………………………………………………………………………………………………….. 21
Способ 1. Функция ДВССЫЛ (INDIRECT) ……………………………………………………………………………………………………………………. 21
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH) …………………………………………………. 22
ВЫПАДАЮЩИЙ СПИСОК ДЛЯ ВЫБОРА ИЗОБРАЖЕНИЙ ТОВАРОВ …………………………………………………………………………………………………… 25
Шаг 1. Создаем каталог с фото и даем ему имя ……………………………………………………………………………………………………. 25
Шаг 2. Выпадающий список для выбора модели …………………………………………………………………………………………………….. 26
Шаг 3. Копируем фотографию………………………………………………………………………………………………………………………………. 26
Шаг 4. Создаем динамическую ссылку на выбранную фотографию ……………………………………………………………………….. 27
Шаг 5. Привязываем фотографию к ссылке …………………………………………………………………………………………………………… 28
ВЫПАДАЮЩИЙ СПИСОК С АВТОМАТИЧЕСКИМ ДОБАВЛЕНИЕМ ОТСУТСТВУЮЩИХ ЭЛЕМЕНТОВ ………………………………………………………………. 29
Шаг 1. Создаем именованный диапазон …………………………………………………………………………………………………………………. 29
Шаг 2. Создаем выпадающий список в ячейке ………………………………………………………………………………………………………… 29
Шаг 3. Добавляем простой макрос ……………………………………………………………………………………………………………………….. 30
ВЫПАДАЮЩИЙ СПИСОК С УДАЛЕНИЕМ ИСПОЛЬЗОВАННЫХ ЭЛЕМЕНТОВ…………………………………………………………………………………………. 32
Постановка задачи ……………………………………………………………………………………………………………………………………………….. 32
Шаг 1. Кто сколько работает? …………………………………………………………………………………………………………………………….. 32
Шаг 2. Кто еще свободен? …………………………………………………………………………………………………………………………………….. 32
Шаг 3. Формируем список ……………………………………………………………………………………………………………………………………… 33
Шаг 4. Создаем именованный диапазон свободных сотрудников …………………………………………………………………………… 33
Шаг 5. Создаем выпадающий список в ячейках ………………………………………………………………………………………………………. 34
ВЫПАДАЮЩИЙ СПИСОК НА ОСНОВЕ ДИНАМИЧЕСКОГО ДИАПАЗОНА ……………………………………………………………………………………………… 35
ВЫПАДАЮЩИЙ СПИСОК С ДАННЫМИ ИЗ ДРУГОГО ФАЙЛА ………………………………………………………………………………………………………….. 38
Способ 1. Функция ДВССЫЛ ……………………………………………………………………………………………………………………………………. 38
Способ 2. Импорт данных ……………………………………………………………………………………………………………………………………… 38
ДАТЫ И ВРЕМЯ ……………………………………………………………………………………………………………………………………………………… 42
КАК ПРАВИЛЬНО ВВОДИТЬ ДАТЫ И ВРЕМЯ …………………………………………………………………………………………………………………………….. 43
ВСПЛЫВАЮЩИЕ КАЛЕНДАРИ ДЛЯ БЫСТРОГО ВВОДА ДАТЫ …………………………………………………………………………………………………………. 44
БЫСТРЫЙ ВВОД ДАТЫ БЕЗ РАЗДЕЛИТЕЛЕЙ ……………………………………………………………………………………………………………………………… 46
АВТОМАТИЧЕСКАЯ ФИКСАЦИЯ ТЕКУЩЕЙ ДАТЫ ПРИ ВВОДЕ ДАННЫХ………………………………………………………………………………………………. 47
ОСОБЕННОСТИ КОПИРОВАНИЯ ДАТ ……………………………………………………………………………………………………………………………………… 48
БЫСТРЫЙ ВВОД ТЕКУЩЕЙ ДАТЫ …………………………………………………………………………………………………………………………………………. 49
КАК EXCEL НА САМОМ ДЕЛЕ ХРАНИТ И ОБРАБАТЫВАЕТ ДАТЫ И ВРЕМЯ …………………………………………………………………………………………… 50
ЧИСЛО ДНЕЙ МЕЖДУ ДВУМЯ ДАТАМИ ………………………………………………………………………………………………………………………………….. 51
Как посчитать количество дней между двумя датами ………………………………………………………………………………………… 51
Как посчитать количество рабочих дней между двумя датами …………………………………………………………………………… 51
КАК ВЫДЕЛИТЬ ИЗ ДАТЫ ДЕНЬ, МЕСЯЦ И ГОД ОТДЕЛЬНО……………………………………………………………………………………………………………. 52
КАК СОБРАТЬ ДАТУ ИЗ ФРАГМЕНТОВ (ДЕНЬ, МЕСЯЦ, ГОД) …………………………………………………………………………………………………………… 53
СДВИГ ДАТ …………………………………………………………………………………………………………………………………………………………………… 54
Сдвиг даты на N дней в будущее или прошлое ………………………………………………………………………………………………………. 54
Сдвиг даты на N рабочих (банковских) дней ………………………………………………………………………………………………………….. 54
Сдвиг даты на N месяцев………………………………………………………………………………………………………………………………………. 54
Сдвиг даты на N лет…………………………………………………………………………………………………………………………………………….. 54
УНИВЕРСАЛЬНЫЙ КАЛЕНДАРЬ ФОРМУЛОЙ …………………………………………………………………………………………………………………………….. 55
ВЫЧИСЛЕНИЕ ДНЯ НЕДЕЛИ ПО ДАТЕ …………………………………………………………………………………………………………………………………….. 57
5

Microsoft Excel: Готовые решения – бери и пользуйся!

ВЫЧИСЛЕНИЕ ВРЕМЕННЫХ ИНТЕРВАЛОВ ……………………………………………………………………………………………………………………………….. 58
ВЫЧИСЛЕНИЕ ВОЗРАСТА ИЛИ СТАЖА ……………………………………………………………………………………………………………………………………. 59
НОМЕР НЕДЕЛИ ПО ДАТЕ ………………………………………………………………………………………………………………………………………………….. 60
Способ 1. Стандарт ГОСТ ИСО 8601-2001………………………………………………………………………………………………………………. 60
Способ 2. Неделя с 1-м января ……………………………………………………………………………………………………………………………….. 60
НОМЕР КВАРТАЛА ПО ДАТЕ ……………………………………………………………………………………………………………………………………………….. 62
ПРЕОБРАЗОВАНИЕ ТЕКСТОВОЙ ДАТЫ В ПОЛНОЦЕННУЮ ДАТУ ………………………………………………………………………………………………………. 63
ВЫЧИСЛЕНИЕ НУЖНОЙ ДАТЫ ПО ФОРМУЛЕ ……………………………………………………………………………………………………………………………. 64
РАБОТА С ТЕКСТОМ ……………………………………………………………………………………………………………………………………………….. 65
СКЛЕИВАНИЕ ТЕКСТА ИЗ НЕСКОЛЬКИХ ЯЧЕЕК…………………………………………………………………………………………………………………………… 66
Способ 1. Функция СЦЕПИТЬ …………………………………………………………………………………………………………………………………… 66
Способ 2. Символ для склеивания текста (&) ………………………………………………………………………………………………………… 66
Способ 3. Макрос для объединения ячеек без потери текста ……………………………………………………………………………….. 66
ИЗВЛЕЧЕНИЕ СИМВОЛОВ ИЗ ТЕКСТОВОЙ СТРОКИ …………………………………………………………………………………………………………………….. 68
ИЗВЛЕЧЕНИЕ N-ГО ПО СЧЕТУ СЛОВА ИЗ ЯЧЕЙКИ ………………………………………………………………………………………………………………………. 69
Способ 1. Формулами …………………………………………………………………………………………………………………………………………….. 69
Способ 2. Пользовательская макрофункция ………………………………………………………………………………………………………….. 69
ФАМИЛИЯ И.О. ИЗ ФИО …………………………………………………………………………………………………………………………………………………. 71
РАЗДЕЛЕНИЕ «СЛИПШЕГОСЯ» ТЕКСТА ПО СТОЛБЦАМ ………………………………………………………………………………………………………………… 72
ПЕРЕВОД ТЕКСТА В ТРАНСЛИТ (НИКОЛАЙ В NIKOLAY И Т.Д.) ……………………………………………………………………………………………………….. 76
ЧИСЛА КАК ТЕКСТ …………………………………………………………………………………………………………………………………………………………… 77
Когда это хорошо и когда плохо ……………………………………………………………………………………………………………………………. 77
ПРЕВРАЩЕНИЕ ЧИСЕЛ-КАК-ТЕКСТ В ПОЛНОЦЕННЫЕ ЧИСЛА …………………………………………………………………………………………………………. 79
Способ 1. Преобразование в число …………………………………………………………………………………………………………………………. 79
Способ 2. Умножение на единицу …………………………………………………………………………………………………………………………… 79
УДАЛЕНИЕ ИЗ ТЕКСТА ЛИШНИХ СИМВОЛОВ И ПРОБЕЛОВ ……………………………………………………………………………………………………………. 80
Замена ………………………………………………………………………………………………………………………………………………………………….. 80
Удаление пробелов ……………………………………………………………………………………………………………………………………………….. 80
Удаление непечатаемых символов ……………………………………………………………………………………………………………………….. 81
Функция ПОДСТАВИТЬ …………………………………………………………………………………………………………………………………………… 81
Удаление апострофов в начале ячеек ……………………………………………………………………………………………………………………. 82
ПОДСЧЕТ КОЛИЧЕСТВА СЛОВ В ЯЧЕЙКЕ …………………………………………………………………………………………………………………………………. 83
ГЕНЕРАЦИЯ ПАРОЛЕЙ ………………………………………………………………………………………………………………………………………………………. 84
ПОИСК И ЗАМЕНА АНГЛИЙСКИХ БУКВ В РУССКОМ ТЕКСТЕ……………………………………………………………………………………………………………. 85
Способ 1. Шрифт без кириллицы …………………………………………………………………………………………………………………………… 85
Способ 2. Подсветка латиницы красным цветом шрифта …………………………………………………………………………………… 85
Способ 3. Функция IsLatin на VBA ……………………………………………………………………………………………………………………………. 86
Замена латиницы на кириллицу ……………………………………………………………………………………………………………………………. 87
ПРОВЕРКА ТЕКСТА НА СООТВЕТСТВИЕ ШАБЛОНУ ………………………………………………………………………………………………………………………. 88
ОПЕРАЦИИ С КНИГАМИ И ЛИСТАМИ ……………………………………………………………………………………………………………………….. 90
УДОБНАЯ НАВИГАЦИЯ ПО ЛИСТАМ ………………………………………………………………………………………………………………………………………. 91
Горячие клавиши …………………………………………………………………………………………………………………………………………………… 91
Переход мышью ……………………………………………………………………………………………………………………………………………………. 91
Закладки ……………………………………………………………………………………………………………………………………………………………….. 91
ОГЛАВЛЕНИЕ КНИГИ ……………………………………………………………………………………………………………………………………………………….. 93
Гиперссылки ………………………………………………………………………………………………………………………………………………………….. 93
Динамическое оглавление с помощью формул ………………………………………………………………………………………………………. 94
Макрос автоматического оглавления ………………………………………………………………………………………………………………….. 96
БЫСТРОЕ КОПИРОВАНИЕ ЛИСТОВ………………………………………………………………………………………………………………………………………… 98
СОХРАНЕНИЕ ВЫБРАННЫХ ЛИСТОВ КАК ОТДЕЛЬНЫХ ФАЙЛОВ ……………………………………………………………………………………………………… 99
Простое разделение листов по файлам ……………………………………………………………………………………………………………….. 99
Разделение с сохранением …………………………………………………………………………………………………………………………………….. 99
Сохранение в новые книги только выделенных листов ……………………………………………………………………………………….. 100
Сохранение только выделенных листов в новый файл ………………………………………………………………………………………… 100
СБОРКА ЛИСТОВ ИЗ РАЗНЫХ КНИГ В ОДНУ ……………………………………………………………………………………………………………………………. 101
СОРТИРОВКА ЛИСТОВ…………………………………………………………………………………………………………………………………………………….. 102
6

Николай Павлов

ОПТИМИЗАЦИЯ БЫСТРОДЕЙСТВИЯ…………………………………………………………………………………………………………………………………….. 103
Новые форматы файлов Excel 2007–2013…………………………………………………………………………………………………………….. 103
Используемый диапазон ………………………………………………………………………………………………………………………………………. 103
Форматирование ………………………………………………………………………………………………………………………………………………… 104
Картинки ……………………………………………………………………………………………………………………………………………………………. 104
Примечания ………………………………………………………………………………………………………………………………………………………… 105
Кэш сводных таблиц …………………………………………………………………………………………………………………………………………… 105
Журнал изменений (логи) …………………………………………………………………………………………………………………………………….. 105
Макросы и формы на VBA ……………………………………………………………………………………………………………………………………. 106
Ручной пересчет формул …………………………………………………………………………………………………………………………………….. 106
Замена формул на константы ……………………………………………………………………………………………………………………………. 106
Внешние ссылки…………………………………………………………………………………………………………………………………………………… 107
Именованные диапазоны …………………………………………………………………………………………………………………………………….. 107
Условное форматирование с формулами…………………………………………………………………………………………………………….. 107
ПОЛУЧЕНИЕ СПИСКА ФАЙЛОВ В ПАПКЕ ……………………………………………………………………………………………………………………………….. 109
Способ 1. Формулы ………………………………………………………………………………………………………………………………………………. 109
Способ 2. Макрос …………………………………………………………………………………………………………………………………………………. 110
СОЗДАНИЕ РЕЗЕРВНЫХ КОПИЙ ЦЕННЫХ ФАЙЛОВ ……………………………………………………………………………………………………………………. 112
ЗАЩИТА ДАННЫХ ………………………………………………………………………………………………………………………………………………… 114
ПРЯЧЕМ СОДЕРЖИМОЕ ЯЧЕЙКИ………………………………………………………………………………………………………………………………………… 115
ЗАЩИТА ЯЧЕЕК ЛИСТА ОТ ИЗМЕНЕНИЙ………………………………………………………………………………………………………………………………… 116
ВЫБОРОЧНАЯ ЗАЩИТА ДИАПАЗОНОВ ЛИСТА ДЛЯ РАЗНЫХ ПОЛЬЗОВАТЕЛЕЙ …………………………………………………………………………………… 118
ЗАЩИТА ЛИСТА С СОХРАНЕНИЕМ ГРУППИРОВКИ …………………………………………………………………………………………………………………….. 119
ЗАЩИТА ЛИСТОВ КНИГИ …………………………………………………………………………………………………………………………………………………. 121
ШИФРОВАНИЕ КНИГИ ……………………………………………………………………………………………………………………………………………………. 122
ВСКРЫТИЕ ЗАЩИТЫ ………………………………………………………………………………………………………………………………………………………. 124
СУПЕРСКРЫТЫЙ ЛИСТ ……………………………………………………………………………………………………………………………………………………. 125
ВЫБОРОЧНОЕ ОТОБРАЖЕНИЕ ЛИСТОВ ПОЛЬЗОВАТЕЛЯМ ………………………………………………………………………………………………………….. 127
ОГРАНИЧЕНИЕ РАБОЧЕЙ ОБЛАСТИ НА ЛИСТЕ…………………………………………………………………………………………………………………………. 129
Скрытие лишних строк и столбцов ……………………………………………………………………………………………………………………. 129
Свойство ScrollArea……………………………………………………………………………………………………………………………………………… 129
ИНТЕРНЕТ, ЭЛЕКТРОННАЯ ПОЧТА ………………………………………………………………………………………………………………………….. 131
ВЕБ-ОПРОС С ПОМОЩЬЮ EXCEL И SKYDRIVE …………………………………………………………………………………………………………………………. 132
Шаг 1. Создаем опрос в OneDrive ………………………………………………………………………………………………………………………….. 132
Шаг 2. Создаем вопросы ………………………………………………………………………………………………………………………………………. 133
Шаг 3. Публикация опроса и сбор данных …………………………………………………………………………………………………………….. 134
ОРГАНИЗАЦИЯ ПОЧТОВОЙ РАССЫЛКИ ………………………………………………………………………………………………………………………………… 138
Постановка задачи ……………………………………………………………………………………………………………………………………………… 138
Подготовка списка клиентов в Excel …………………………………………………………………………………………………………………… 138
Создаем сообщение в Word и подключаем Excel …………………………………………………………………………………………………… 139
СОЗДАНИЕ ПИСЕМ С ПОМОЩЬЮ ФУНКЦИИ ГИПЕРССЫЛКА ……………………………………………………………………………………………………. 145
ИМПОРТ КУРСА ВАЛЮТ С САЙТА ……………………………………………………………………………………………………………………………………….. 147
Способ 1. Простой веб-запрос для текущего курса валют…………………………………………………………………………………… 147
Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат ………………………… 149
Способ 3. Импорт XML ………………………………………………………………………………………………………………………………………… 153
ФУНКЦИЯ ЗАПРОСА КУРСА ДОЛЛАРА НА ЗАДАННУЮ ДАТУ…………………………………………………………………………………………………………. 156
ОТПРАВКА КНИГИ ИЛИ ЛИСТА ПО ЭЛЕКТРОННОЙ ПОЧТЕ …………………………………………………………………………………………………………… 157
Способ 1. Встроенная отправка ………………………………………………………………………………………………………………………….. 157
Способ 2. Макросы отправки книги/листа по электронной почте ……………………………………………………………………… 158
ДУБЛИКАТЫ И УНИКАЛЬНЫЕ ………………………………………………………………………………………………………………………………… 160
ПОДСЧЕТ КОЛИЧЕСТВА УНИКАЛЬНЫХ ЗНАЧЕНИЙ В ДИАПАЗОНЕ ………………………………………………………………………………………………….. 161
Способ 1. Если нет пустых ячеек …………………………………………………………………………………………………………………………. 161
Способ 2. Если есть пустые ячейки ……………………………………………………………………………………………………………………… 162
УДАЛЕНИЕ ДУБЛИКАТОВ СТРОК ………………………………………………………………………………………………………………………………………… 164
ИЗВЛЕЧЕНИЕ СПИСКА УНИКАЛЬНЫХ ЭЛЕМЕНТОВ ИЗ ДИАПАЗОНА ………………………………………………………………………………………………… 165
7

Microsoft Excel: Готовые решения – бери и пользуйся!

Способ 1. Сводная таблица …………………………………………………………………………………………………………………………………. 165
Способ 2. Формулой …………………………………………………………………………………………………………………………………………….. 166
ВЫДЕЛЕНИЕ ДУБЛИКАТОВ ЦВЕТОМ ……………………………………………………………………………………………………………………………………. 168
В одном столбце …………………………………………………………………………………………………………………………………………………. 168
В нескольких столбцах ………………………………………………………………………………………………………………………………………… 169
ФОРМАТИРОВАНИЕ ……………………………………………………………………………………………………………………………………………… 171
МИКРОГРАФИКИ В ЯЧЕЙКАХ…………………………………………………………………………………………………………………………………………….. 172
Гистограммы ……………………………………………………………………………………………………………………………………………………… 172
Спарклайны …………………………………………………………………………………………………………………………………………………………. 173
Повтор символа N раз…………………………………………………………………………………………………………………………………………. 175
ВЫДЕЛЕНИЕ ЦВЕТОМ ЯЧЕЕК ПО УСЛОВИЮ ……………………………………………………………………………………………………………………………. 176
ЦВЕТОВЫЕ ШКАЛЫ ……………………………………………………………………………………………………………………………………………………….. 179
ДОБАВЛЕНИЕ ЗНАЧКОВ К ЯЧЕЙКАМ ……………………………………………………………………………………………………………………………………. 180
Наборы значков в условном форматировании …………………………………………………………………………………………………….. 180
Нестандартные символы …………………………………………………………………………………………………………………………………… 182
ВЫДЕЛЕНИЕ ЦВЕТОМ СТРОКИ/СТОЛБЦА ПО УСЛОВИЮ …………………………………………………………………………………………………………….. 185
ПОДСВЕТКА ДАТ И СРОКОВ………………………………………………………………………………………………………………………………………………. 189
Простой способ …………………………………………………………………………………………………………………………………………………… 189
Сложный способ ………………………………………………………………………………………………………………………………………………….. 189
ОТДЕЛЯЮЩИЕ ЛИНИИ МЕЖДУ ГРУППАМИ СТРОК …………………………………………………………………………………………………………………… 194
ПОДСВЕТКА НЕДОПУСТИМЫХ ЗНАЧЕНИЙ……………………………………………………………………………………………………………………………… 196
ПОДСВЕТКА ЛИШНИХ ПРОБЕЛОВ……………………………………………………………………………………………………………………………………….. 198
ПОЛОСАТАЯ ЗАЛИВКА СТРОК ТАБЛИЦЫ «ЗЕБРОЙ» ………………………………………………………………………………………………………………….. 200
Способ 1. Форматировать как таблицу ……………………………………………………………………………………………………………… 200
Способ 2. Условное форматирование ………………………………………………………………………………………………………………….. 201
ЗАЛИВКА ЯЧЕЕК В ШАХМАТНОМ ПОРЯДКЕ ……………………………………………………………………………………………………………………………. 203
ВСТАВКА ПЕЧАТНОЙ ПОДЛОЖКИ……………………………………………………………………………………………………………………………………….. 204
НЕСТАНДАРТНЫЕ ФОРМАТЫ ЯЧЕЕК…………………………………………………………………………………………………………………………………….. 208
МАРКИРОВАННЫЙ И НУМЕРОВАННЫЙ СПИСКИ……………………………………………………………………………………………………………………… 211
Маркированный список форматированием …………………………………………………………………………………………………………. 211
Нумерованный список формулой …………………………………………………………………………………………………………………………. 211
SmartArt ………………………………………………………………………………………………………………………………………………………………. 212
СКРЫТИЕ/ОТОБРАЖЕНИЕ НЕНУЖНЫХ СТРОК И СТОЛБЦОВ ………………………………………………………………………………………………………… 213
Способ 1. Скрытие строк и столбцов ………………………………………………………………………………………………………………….. 213
Способ 2. Группировка …………………………………………………………………………………………………………………………………………. 214
Способ 3. Скрытие помеченных строк/столбцов макросом ………………………………………………………………………………… 214
КАРТИНКА В ПРИМЕЧАНИИ К ЯЧЕЙКЕ ………………………………………………………………………………………………………………………………….. 217
Способ 1. Одиночная вставка ………………………………………………………………………………………………………………………………. 217
Способ 2. Вставка картинок оптом ……………………………………………………………………………………………………………………. 218
СУММА ЯЧЕЕК ПО ЦВЕТУ …………………………………………………………………………………………………………………………………………………. 220
Цвет шрифта …………………………………………………………………………………………………………………………………………………….. 220
Количество вместо суммы …………………………………………………………………………………………………………………………………. 220
Нюансы пересчета ……………………………………………………………………………………………………………………………………………… 221
ПОДСВЕТКА ЯЧЕЕК С ФОРМУЛАМИ И БЕЗ ……………………………………………………………………………………………………………………………… 222
Способ 1. Выделение по условию ………………………………………………………………………………………………………………………….. 222
Способ 2. Условное форматирование и макрофункция ………………………………………………………………………………………… 222
ПОМЕТКА ЭЛЕМЕНТОВ СПИСКА ФЛАЖКАМИ (ГАЛОЧКАМИ)……………………………………………………………………………………………………….. 225
РЕДАКТИРОВАНИЕ ……………………………………………………………………………………………………………………………………………….. 227
БЫСТРОЕ ВЫДЕЛЕНИЕ ДИАПАЗОНОВ И НАВИГАЦИЯ ………………………………………………………………………………………………………………… 228
Быстрое перемещение по листу …………………………………………………………………………………………………………………………. 228
Выделение соседних ячеек …………………………………………………………………………………………………………………………………… 228
Выделение «до упора» ………………………………………………………………………………………………………………………………………….. 228
Текущая область ………………………………………………………………………………………………………………………………………………… 228
От начала до конца …………………………………………………………………………………………………………………………………………….. 228
АВТОПОДБОР ШИРИНЫ СТОЛБЦОВ ……………………………………………………………………………………………………………………………………. 229
РЕДАКТИРОВАНИЕ СРАЗУ НЕСКОЛЬКИХ ЛИСТОВ……………………………………………………………………………………………………………………… 230
8

Николай Павлов

БЫСТРОЕ КОПИРОВАНИЕ ФОРМУЛ И СМАРТ-ТЕГИ …………………………………………………………………………………………………………………… 231
СЛИЯНИЕ ДАННЫХ ИЗ ДВУХ СТОЛБЦОВ В ОДИН ……………………………………………………………………………………………………………………… 233
ПРЕВРАЩЕНИЕ СТРОК В СТОЛБЦЫ И ОБРАТНО……………………………………………………………………………………………………………………….. 234
Способ 1. Специальная вставка …………………………………………………………………………………………………………………………… 234
Способ 2. Функция ТРАНСП …………………………………………………………………………………………………………………………………… 234
Способ 3. Формируем адрес сами …………………………………………………………………………………………………………………………. 235
КОПИРОВАНИЕ ТОЛЬКО ВИДИМЫХ ЯЧЕЕК…………………………………………………………………………………………………………………………….. 237
ВСТАВКА В ОТФИЛЬТРОВАННЫЕ СТРОКИ ……………………………………………………………………………………………………………………………… 239
Способ 1. Вставка одинаковых значений или формул …………………………………………………………………………………………… 239
Способ 2. Макрос вставки любых значений …………………………………………………………………………………………………………. 240
ФОРМУЛЫ …………………………………………………………………………………………………………………………………………………………… 241
РАЗЛИЧНЫЕ ТИПЫ ССЫЛОК НА ЯЧЕЙКИ В ФОРМУЛАХ ………………………………………………………………………………………………………………. 242
Относительные ссылки ………………………………………………………………………………………………………………………………………. 242
Смешанные ссылки ……………………………………………………………………………………………………………………………………………… 242
Абсолютные ссылки ……………………………………………………………………………………………………………………………………………. 242
Действительно абсолютные ссылки ………………………………………………………………………………………………………………….. 243
ЗАЧЕМ НУЖЕН СТИЛЬ ССЫЛОК R1C1 В ФОРМУЛАХ …………………………………………………………………………………………………………………. 244
Что это ……………………………………………………………………………………………………………………………………………………………… 244
Как это включить/отключить …………………………………………………………………………………………………………………………… 244
Где режим R1C1 может быть полезен ………………………………………………………………………………………………………………… 245
УДОБНЫЙ ПРОСМОТР ФОРМУЛ И РЕЗУЛЬТАТОВ ОДНОВРЕМЕННО ……………………………………………………………………………………………….. 247
ОТЛАДКА ФОРМУЛ И ПОИСК ОШИБОК ………………………………………………………………………………………………………………………………… 249
Режим редактирования ………………………………………………………………………………………………………………………………………. 249
Отображение стрелок зависимостей ………………………………………………………………………………………………………………… 249
Вычисления «на лету» …………………………………………………………………………………………………………………………………………. 251
Пошаговое выполнение сложных формул ……………………………………………………………………………………………………………. 251
Отслеживание результатов вычислений ……………………………………………………………………………………………………………. 252
ОБРАБОТКА ОШИБОК В ФОРМУЛАХ ……………………………………………………………………………………………………………………………………. 253
Перехват ошибок ……………………………………………………………………………………………………………………………………………….. 253
Скрытие ошибок на экране …………………………………………………………………………………………………………………………………. 253
Скрытие ошибок при печати ………………………………………………………………………………………………………………………………. 254
ЗАМЕНА ФОРМУЛ НА ИХ ЗНАЧЕНИЯ ……………………………………………………………………………………………………………………………………. 256
ТОЧНОЕ КОПИРОВАНИЕ ФОРМУЛ БЕЗ СДВИГА ССЫЛОК …………………………………………………………………………………………………………….. 258
Способ 1. Абсолютные ссылки …………………………………………………………………………………………………………………………….. 258
Способ 2. Временная деактивация формул ………………………………………………………………………………………………………….. 259
Способ 3. Копирование через Блокнот …………………………………………………………………………………………………………………. 259
Способ 4. Макрос …………………………………………………………………………………………………………………………………………………. 261
ИМЕНОВАННЫЕ ДИАПАЗОНЫ В ФОРМУЛАХ ………………………………………………………………………………………………………………………….. 263
Создание именованного диапазона ……………………………………………………………………………………………………………………… 263
Использование имен диапазонов в формулах ………………………………………………………………………………………………………. 264
Локальные и глобальные имена …………………………………………………………………………………………………………………………… 264
Именованные константы …………………………………………………………………………………………………………………………………… 265
ВЫЧИСЛЕНИЯ БЕЗ ФОРМУЛ ……………………………………………………………………………………………………………………………………………… 266
Специальная вставка ………………………………………………………………………………………………………………………………………….. 266
Строка состояния ………………………………………………………………………………………………………………………………………………. 267
Калькулятор ……………………………………………………………………………………………………………………………………………………….. 268
ОПЕРАЦИИ С ДИАПАЗОНАМИ ДАННЫХ …………………………………………………………………………………………………………………. 269
УДАЛЕНИЕ ПУСТЫХ ЯЧЕЕК В ДИАПАЗОНЕ ……………………………………………………………………………………………………………………………… 270
Способ 1. Грубо и быстро …………………………………………………………………………………………………………………………………….. 270
Способ 2. Формула массива …………………………………………………………………………………………………………………………………. 270
Способ 3. Пользовательская функция на VBA ………………………………………………………………………………………………………. 271
УДАЛЕНИЕ ПУСТЫХ СТРОК ……………………………………………………………………………………………………………………………………………….. 273
ЗАПОЛНЕНИЕ ПУСТЫХ ЯЧЕЕК ……………………………………………………………………………………………………………………………………………. 274
СОРТИРОВКА ДИАПАЗОНА……………………………………………………………………………………………………………………………………………….. 276
Простая сортировка …………………………………………………………………………………………………………………………………………… 276
Многоуровневая сортировка ………………………………………………………………………………………………………………………………. 276
9

Microsoft Excel: Готовые решения – бери и пользуйся!

Сортировка по цвету………………………………………………………………………………………………………………………………………….. 277
Сортировка по смыслу, а не по алфавиту……………………………………………………………………………………………………………. 277
Сортировка текста и чисел одновременно …………………………………………………………………………………………………………. 280
СОРТИРОВКА ДИАПАЗОНА ФОРМУЛОЙ ……………………………………………………………………………………………………………………………….. 282
Способ 1. Числовые данные ………………………………………………………………………………………………………………………………….. 282
Способ 2. Текстовый список и обычные формулы ………………………………………………………………………………………………… 282
Способ 3. Формула массива …………………………………………………………………………………………………………………………………. 284
СБОРКА ДАННЫХ ИЗ НЕСКОЛЬКИХ ОДИНАКОВЫХ ТАБЛИЦ …………………………………………………………………………………………………………. 286
Простые формулы ………………………………………………………………………………………………………………………………………………. 286
Трехмерные формулы ………………………………………………………………………………………………………………………………………….. 286
Функция ДВССЫЛ (INDIRECT) ………………………………………………………………………………………………………………………………… 287
СБОРКА ДАННЫХ ИЗ НЕСКОЛЬКИХ РАЗНЫХ ТАБЛИЦ ………………………………………………………………………………………………………………… 288
ПРЕВРАЩЕНИЕ ПРОСТОГО ДИАПАЗОНА В «УМНУЮ» ТАБЛИЦУ ……………………………………………………………………………………………………. 292
СЛУЧАЙНАЯ ВЫБОРКА ДАННЫХ ИЗ ДИАПАЗОНА …………………………………………………………………………………………………………………….. 295
Способ 1. Случайная сортировка …………………………………………………………………………………………………………………………. 295
Способ 2. Функция НАИМЕНЬШИЙ………………………………………………………………………………………………………………………… 296
Способ 3. Случайная выборка без повторов – функция Lotto на VBA …………………………………………………………………….. 296
ВЫБОРОЧНОЕ СУММИРОВАНИЕ ИЗ ДИАПАЗОНА ПО 1-2-3… КРИТЕРИЯМ ………………………………………………………………………………………. 298
Способ 1. Функция СУММЕСЛИ, когда одно условие………………………………………………………………………………………………. 298
Способ 2. Функция СУММЕСЛИМН, когда условий много ………………………………………………………………………………………. 299
Способ 3. Столбец-индикатор …………………………………………………………………………………………………………………………….. 300
Способ 4. Формула массива …………………………………………………………………………………………………………………………………. 301
Способ 5. Функция баз данных БДСУММ ………………………………………………………………………………………………………………. 302
ПОИСК И ПОДСТАНОВКА ДАННЫХ ………………………………………………………………………………………………………………………… 303
НАЙТИ И ЗАМЕНИТЬ………………………………………………………………………………………………………………………………………………………. 304
Простой поиск…………………………………………………………………………………………………………………………………………………….. 304
Неточный поиск по маске ……………………………………………………………………………………………………………………………………. 305
Поиск по формату ………………………………………………………………………………………………………………………………………………. 305
АВТОФИЛЬТР ………………………………………………………………………………………………………………………………………………………………. 307
Простая фильтрация …………………………………………………………………………………………………………………………………………. 307
Фильтрация текста …………………………………………………………………………………………………………………………………………… 309
Фильтрация дат ………………………………………………………………………………………………………………………………………………… 309
Фильтрация чисел ………………………………………………………………………………………………………………………………………………. 310
Фильтрация по цвету …………………………………………………………………………………………………………………………………………. 311
ИСПОЛЬЗОВАНИЕ СРЕЗОВ ДЛЯ ПОИСКА И ФИЛЬТРАЦИИ …………………………………………………………………………………………………………… 313
ПОДСТАНОВКА С ПОМОЩЬЮ ФУНКЦИИ ВПР (VLOOKUP) ……………………………………………………………………………………………………….. 315
Ошибки #Н/Д и их подавление ……………………………………………………………………………………………………………………………… 317
ПРИБЛИЗИТЕЛЬНЫЙ ПОИСК С ПОМОЩЬЮ ФУНКЦИИ ВПР (VLOOKUP) ……………………………………………………………………………………….. 319
УЛУЧШЕННЫЙ ВАРИАНТ ФУНКЦИИ ВПР (VLOOKUP) ……………………………………………………………………………………………………………… 322
ПОИСК ДАННЫХ В ТАБЛИЦЕ С ПОМОЩЬЮ ФУНКЦИИ ИНДЕКС И ПОИСКПОЗ (INDEX И MATCH) …………………………………………………….. 324
ВЫБОРКА СРАЗУ ВСЕХ ИСКОМЫХ ЗНАЧЕНИЙ ИЗ ТАБЛИЦЫ ФОРМУЛОЙ МАССИВА……………………………………………………………………………… 325
ДВУМЕРНЫЙ ПОИСК В ТАБЛИЦЕ………………………………………………………………………………………………………………………………………… 326
Вариант 1. Точный поиск …………………………………………………………………………………………………………………………………….. 326
Вариант 2. Приблизительный поиск …………………………………………………………………………………………………………………… 327
ПОИСК В ТАБЛИЦЕ С УЧЕТОМ РЕГИСТРА……………………………………………………………………………………………………………………………….. 329
ДИНАМИЧЕСКАЯ ГИПЕРССЫЛКА ДЛЯ БЫСТРОГО ПЕРЕХОДА ИЗ ОДНОЙ ТАБЛИЦЫ В ДРУГУЮ ………………………………………………………………… 332
Шаг 1. Создаем переменную с именем листа ………………………………………………………………………………………………………. 332
Шаг 2. Создаем гиперссылки ………………………………………………………………………………………………………………………………… 333
СВОДНЫЕ ТАБЛИЦЫ …………………………………………………………………………………………………………………………………………….. 335
СОЗДАНИЕ ОТЧЕТОВ С ПОМОЩЬЮ СВОДНЫХ ТАБЛИЦ ……………………………………………………………………………………………………………… 336
Исходные данные ………………………………………………………………………………………………………………………………………………… 336
Создание отчета………………………………………………………………………………………………………………………………………………… 336
Доводка внешнего вида отчета………………………………………………………………………………………………………………………….. 339
Обновление и пересчет……………………………………………………………………………………………………………………………………….. 339
НАСТРОЙКА ВЫЧИСЛЕНИЙ В СВОДНЫХ ТАБЛИЦАХ ………………………………………………………………………………………………………………….. 340
Другие функции расчета вместо банальной суммы …………………………………………………………………………………………….. 340
10

Николай Павлов

Доли и проценты ………………………………………………………………………………………………………………………………………………… 343
Отличие и приведенное отличие ………………………………………………………………………………………………………………………… 346
Ранжирование …………………………………………………………………………………………………………………………………………………….. 347
Индекс влияния ……………………………………………………………………………………………………………………………………………………. 348
ФИЛЬТРАЦИЯ СРЕЗАМИ ………………………………………………………………………………………………………………………………………………….. 350
ФИЛЬТРАЦИЯ ДАТ С ПОМОЩЬЮ ВРЕМЕННОЙ ШКАЛЫ …………………………………………………………………………………………………………….. 355
ДЕТАЛИЗАЦИЯ РЕЗУЛЬТАТОВ ……………………………………………………………………………………………………………………………………………. 356
Просмотр подробностей ……………………………………………………………………………………………………………………………………. 356
Разделение сводной таблицы по листам …………………………………………………………………………………………………………….. 356
Экспресс-просмотр ……………………………………………………………………………………………………………………………………………… 358
БЛАГОДАРНОСТИ …………………………………………………………………………………………………………………………………………………. 360

11

Microsoft Excel: Готовые решения – бери и пользуйся!

Файлы примеров и видеоуроки
Для большинства из описанных в этой книге приемов, макросов и формул можно скачать «живые» примеры в
виде файлов с моего сайта «Планета Excel» по адресу:

http://www.planetaexcel.ru/books/
Также на сайте в разделе ВИДЕО (http://www.planetaexcel.ru/video/) есть несколько десятков моих обучающих
видеороликов по различным инструментам Microsoft Excel:

Все это в открытом доступе, совершенно бесплатно. Заходите, смотрите, скачивайте, изучайте!

12

Николай Павлов

Выпадающие списки

В

ыпадающие (раскрывающиеся) списки на листах Microsoft Excel – крайне полезный
инструмент и используются очень часто. Во-первых, это удобно и позволяет не вводить
повторяющиеся элементы списков с клавиатуры. Во-вторых, это исключает
«человеческий фактор» и, во многих случаях, убережет от ошибок и опечаток при вводе данных.
В этой главе вы узнаете:
 4 способа создать выпадающий список на листе Excel.
 Как создать связанные друг с другом списки (содержимое второго зависит от выбора в
первом).
 Как создать выпадающий список с картинками.
 Как создать выпадающие списки с автоматическим добавлением или удалением
элементов.
 Как сделать выпадающий список с данными из другого файла.

13

Microsoft Excel: Готовые решения – бери и пользуйся!

Как создать выпадающий список
Способ 1. Быстрый
Один щелчок правой кнопкой мыши по пустой ячейке под столбцом с данными, команда контекстного меню
Выбрать из раскрывающегося списка (Choose from drop-down list) или нажать сочетание клавиш Alt+стрелка
вниз. Появится отсортированный список уникальных ранее введенных значений:

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

Способ 2. Стандартный
Этот способ чуть сложнее, но существенно богаче по возможностям настройки:
1. Выделите ячейки с данными, которые должны попасть в выпадающий список (например,
наименованиями товаров).
2. Выделите ячейки (можно сразу несколько), в которых хотите получить выпадающий список, и выберите
на вкладке Данные – Проверка данных (Data – Validation). Из выпадающего списка Тип данных (Allow)
выберите вариант Список (List), поставьте курсор в поле Источник (Source) и выделите диапазон с
эталонными значениями элементов списка:

14

Николай Павлов

Если диапазон источника расположен на другом листе, то в версиях Excel 2007 и старше его
выделить не удастся. Нужно будет заранее дать ему имя (выделить и нажать Ctrl+F3) и ввести
потом это имя в поле Источник (Source). Не забудьте поставить перед именем знак «равно».
Нажмите ОК и проверьте результат:

Бонусом к этому способу идет возможность задать подсказку и сообщение об ошибке при неправильном вводе
на вкладках Сообщение для ввода (Input Message) и Сообщение об ошибке (Error Alert):

15

Microsoft Excel: Готовые решения – бери и пользуйся!

Способ 3. Элемент управления
Этот способ представляет собой вставку на лист нового объекта – элемента управления «Поле со списком» с
последующей привязкой его к диапазонам на листе. Для этого:
1. Откройте вкладку Разработчик (Developer). Если этой вкладки не видно, то в Excel 2007 нужно нажать
кнопку Офис – Параметры Excel – флажок Отображать вкладку Разработчик на ленте (Office Button –
Excel Options – Show Developer Tab in the Ribbon) или в Excel 2010–2013 щелкните правой кнопкой
мыши по ленте, выберите команду Настройка ленты (Customize Ribbon) и включите отображение
вкладки Разработчик (Developer) с помощью флажка.
2. Найдите значок выпадающего списка среди элементов управления форм (не ActiveX!). Ориентируйтесь
по всплывающим подсказкам – Поле со списком (Dropdown list):

Щелкните по значку и нарисуйте небольшой горизонтальный прямоугольник – будущий список. Чтобы
рисовать ровно по границам ячеек – удерживайте клавишу Alt.
3. Щелкните по нарисованному списку правой кнопкой мыши и выберите команду Формат объекта
(Format control). В появившемся диалоговом окне задайте:

16

Николай Павлов



Формировать список по диапазону – выделите ячейки с наименованиями товаров, которые должны
попасть в список
Связь с ячейкой – укажите ячейку, куда нужно выводить порядковый номер выбранного пользователем
элемента.
Количество строк списка – сколько строк показывать в выпадающем списке. По умолчанию – 8, но
можно больше, чего не позволяет предыдущий способ.

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

17

Microsoft Excel: Готовые решения – бери и пользуйся!

Способ 4. Элемент ActiveX
Этот способ частично напоминает предыдущий. Основное отличие в том, что на лист добавляется не элемент
управления, а элемент ActiveX «Поле со списком» из раскрывающегося набора под кнопкой Вставить (Insert) с
вкладки Разработчик (Developer):

Механизм добавления тот же – выбираем объект из списка и рисуем его на листе. А вот дальше начинаются
серьезные отличия от предыдущего способа.
Во-первых, созданный выпадающий ActiveX список может находиться в двух принципиально разных
состояниях: режиме отладки, когда можно настраивать его параметры и свойства, двигать его по листу и менять
размеры, и режиме ввода, когда единственное, что можно, – выбирать из него данные. Переключение между
этими режимами происходит с помощью кнопки Режим Конструктора (Design Mode) на вкладке Разработчик
(Developer):

Если эта кнопка нажата, то мы можем настраивать параметры выпадающего списка, используя соседнюю
кнопку Свойства (Properties), которая откроет окно со списком всех возможных настроек для выделенного
объекта, т.е. нашего списка:

18

Николай Павлов

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




ListFillRange – диапазон ячеек, откуда берутся данные для списка. Выделить мышью диапазон он не
даст, надо просто вписать его руками с клавиатуры (например, Лист2!A1:A5);
LinkedCell – связанная ячейка, куда будет выводиться выбранный из списка элемент;
ListRows – количество отображаемых в выпадающем списке строк;
Font – шрифт, размер, начертание (курсив, подчеркивание и т.д., кроме цвета);
ForeColor и BackColor – цвет текста и фона соответственно.

Большим и жирным плюсом этого способа является возможность быстрого перехода к нужному элементу в
списке при вводе первых букв с клавиатуры (!), чего нет у всех остальных способов.
Также возможно указывать в качестве ListFillRange не только одномерные диапазоны. Можно, например,
задать диапазон из двух столбцов и нескольких строк, указав дополнительно, что выводить нужно два столбца
(свойство ColumnCount=2). Тогда можно получить весьма привлекательные результаты, окупающие все
потраченные на дополнительные настройки усилия:

19

Microsoft Excel: Готовые решения – бери и пользуйся!

Итоговая сравнительная таблица всех способов
Способ 1.
Примитивный

Способ 2.
Стандартный

Способ 3.
Элемент
управления

Способ 4.
Элемент ActiveX

низкая

средняя

высокая

высокая

нет

нет

нет

да

всегда 8

всегда 8

любое

любое

Быстрый поиск элемента по первым буквам

нет

нет

нет

да

Необходимость использования дополнительной
функции ИНДЕКС

нет

нет

да

нет

Возможность создания связанных выпадающих списков

нет

да

нет

нет

Сложность
Возможность настройки шрифта, цвета и т.д.
Количество отображаемых строк

20

Николай Павлов

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

Способ 1. Функция ДВССЫЛ (INDIRECT)
Этот фокус основан на применении функции ДВССЫЛ (INDIRECT), которая умеет делать одну простую вещь –
преобразовывать содержимое любой указанной ячейки в адрес диапазона, который понимает Excel. Т.е. если в
ячейке лежит текст «А1», то функция выдаст в результате ссылку на ячейку А1. Если в ячейке лежит слово
«Маша», то функция выдаст ссылку на именованный диапазон с именем Маша и т.д.
Возьмем, к примеру, вот такой список моделей автомобилей Toyota, Ford и Nissan:

Выделим весь список моделей Toyota (с ячейки А2 и вниз до конца списка) и дадим этому диапазону имя Toyota
на вкладке Формулы (Formulas) с помощью Диспетчера имен (Name Manager), кнопка Создать (Create). Затем
повторим то же самое со списками моделей Ford и Nissan, задав имена диапазонам Ford и Nissan
соответственно.
При задании имен помните о том, что они не должны содержать пробелов, знаков препинания и
начинаться обязательно с буквы. Поэтому если бы в одной из марок автомобилей присутствовал
бы пробел (например, Land Rover), то его пришлось бы заменить в ячейке и в имени диапазона на
нижнее подчеркивание (т.е. Land_Rover).
Теперь создадим первый выпадающий список для выбора марки автомобиля. Выделите пустую ячейку и
нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data). Затем из выпадающего списка
Тип данных (Allow) выберите вариант Список (List) и в поле Источник (Source) выделите ячейки с названиями
марок (ячейки A1:C1 в нашем примере). После нажатия на ОК первый выпадающий список готов:

21

Microsoft Excel: Готовые решения – бери и пользуйся!

Теперь создадим второй (зависимый) выпадающий список, в котором будут отображаться только модели
выбранной в первом списке марки. Так же как в предыдущем случае, откройте окно Проверки данных, но в
поле Источник нужно будет ввести вот такую формулу:
=ДВССЫЛ(F3)
или =INDIRECT(F3)
где F3 – адрес ячейки с первым выпадающим списком (замените на свой).
Все. После нажатия на ОК содержимое второго списка будет выбираться по имени диапазона, выбранного в
первом списке.
Минусы такого способа:

В качестве вторичных (зависимых) диапазонов не могут выступать динамические диапазоны,
задаваемые формулами типа СМЕЩ (OFFSET). Для первичного (независимого) списка их использовать
можно, а вот вторичный список должен быть определен жестко, без формул. Однако, это ограничение
можно обойти, создав отсортированный список соответствий марка-модель (см. Способ 2).
Имена вторичных диапазонов должны совпадать с элементами первичного выпадающего списка. Т.е.
если в нем есть текст с пробелами, то придется их заменять на подчеркивания с помощью функции
ПОДСТАВИТЬ (SUBSTITUTE), т.е. формула будет выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;» «;»_»))
Надо руками создавать много именованных диапазонов (если у нас много марок автомобилей).

Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
Этот способ требует наличия отсортированного списка соответствий марка-модель вот такого вида:

Для создания первичного выпадающего списка марок можно воспользоваться обычным способом, описанным
выше, т.е.


дать имя диапазону D1:D3 (например, Марки) с помощью Диспетчера имен (Name Manager) с вкладки
Формулы (Formulas)
выбрать на вкладке Данные (Data) команду Проверка данных (Data Validation)
выбрать из выпадающего списка вариант проверки Список (List) и указать в качестве Источника (Source)
=Марки или просто выделить ячейки D1:D3 (если они на том же листе, где список).

А вот для зависимого списка моделей придется создать именованный диапазон с функцией СМЕЩ (OFFSET),
который будет динамически ссылаться только на ячейки моделей определенной марки. Для этого:

22

Николай Павлов


Нажмите Ctrl+F3 или воспользуйтесь кнопкой Диспетчер имен (Name Manager) на вкладке Формулы
(Formulas).
Создайте новый именованный диапазон с любым именем (например, Модели) и в поле Ссылка
(Reference) в нижней части окна введите руками следующую формулу:

=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1)
=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1)
Ссылки должны быть абсолютными (со знаками $). После нажатия Enter к формуле будут автоматически
добавлены имена листов – не пугайтесь.
Функция СМЕЩ (OFFSET) умеет выдавать ссылку на диапазон нужного размера, сдвинутый относительно
исходной ячейки на заданное количество строк и столбцов. В более понятном варианте синтаксис этой функции
таков:
=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках;
размер_диапазона_в_столбцах)

Таким образом:




начальная ячейка – берем первую ячейку нашего списка, т.е. А1
сдвиг_вниз – считает функция ПОИСКПОЗ (MATCH), которая, попросту говоря, выдает порядковый
номер ячейки с выбранной маркой (G7) в заданном диапазоне (столбце А)
сдвиг_вправо = 1, т.к. мы хотим сослаться на модели в соседнем столбце (В)
размер_диапазона_в_строках – вычисляем с помощью функции СЧЁТЕСЛИ (COUNTIF), которая умеет
подсчитать количество встретившихся в списке (столбце А) нужных нам значений – марок авто (G7)
размер_диапазона_в_столбцах = 1, т.к. нам нужен один столбец с моделями

В итоге должно получиться что-то вроде этого:

23

Microsoft Excel: Готовые решения – бери и пользуйся!

Осталось добавить выпадающий список на основе созданной формулы к ячейке G8. Для этого:


выделяем ячейку G8
выбираем на вкладке Данные (Data) команду Проверка данных (Data Validation)
из выпадающего списка выбираем вариант проверки Список (List) и вводим в качестве Источника
(Source) знак «равно» и имя нашего диапазона, т.е. =Модели

24

Николай Павлов

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

Шаг 1. Создаем каталог с фото и даем ему имя
Создаем на Листе 1 каталог с наименованиями и фотографиями товаров, состоящий из двух столбцов (Модель
и Фото):

Теперь надо дать имя нашему каталогу, чтобы ссылаться на него в будущем. Для этого используем кнопку
Диспетчер имен (Name Manager) на вкладке Формулы (Formulas). Создаем новый диапазон, вводим имя
(например, Фотоальбом) и в качестве адреса указываем формулу:
25

Microsoft Excel: Готовые решения – бери и пользуйся!

=СМЕЩ(Лист1!$A$1;1;0;СЧЁТЗ(Лист1!$A:$A)-1;1)
=OFFSET(Лист1!$A$1;1;0;COUNTA(Лист1!$A:$A)-1;1)

Эта формула определяет последнюю занятую ячейку в столбце А и выдает на выходе диапазон с А2 до этой
найденной ячейки. Такая относительно сложная конструкция нужна, чтобы впоследствии дописывать новые
модели к нашему списку и не думать об исправлении диапазона. Если дописывать точно ничего не придется, то
можете вместо ввода этой страшноватой формулы просто указать =A2:A5

Шаг 2. Выпадающий список для выбора модели
Перейдем на Лист 2 и создадим там ячейку с выпадающим списком для выбора пользователем модели
телефона (пусть это будет A1). Выделяем ячейку и идем на вкладку Данные – Проверка данных (Data – Data
Validation). Далее в поле Тип данных (Allow) выбираем Список (List), а в качестве Источника (Source) указываем
наш Фотоальбом (не забудьте перед ним добавить знак равенства):

Кроме того, этой ячейке удобно дать имя – вкладка Формулы – Диспетчер имен (Formulas – Name Manager),
создаем диапазон и далее вводим имя (например, Выбор) и ОК.

Шаг 3. Копируем фотографию
Перенесем первую фотографию из фотоальбома к выпадающему списку. Надо выделить ячейку с первой
фотографией (не сам рисунок, а ячейку!) и развернуть выпадающий список под кнопкой Копировать (Copy) на
Главной (Home) вкладке:
26

Николай Павлов

Microsoft Excel 2007 больше ничего не спросит, а в Excel 2010 появится еще одно дополнительное окно с
выбором типа создаваемого изображения:

В нем нужно выбрать варианты «как на экране» и «растровый».
Копируем, переходим на Лист 2 к выпадающему списку и в любую пустую ячейку недалеко от него вставляем
наш мини-скриншот ячейки с фотографией (на вкладке Главная – Правка – Вставить или обычное CTRL+V).

Шаг 4. Создаем динамическую ссылку на выбранную фотографию
Теперь необходимо сделать ссылку, которая будет указывать на ячейку с выбранной фотографией. Снова
открываем Диспетчер имен (Name Manager) на вкладке Формулы (Formulas) и создаем еще один
именованный диапазон:

27

Microsoft Excel: Готовые решения – бери и пользуйся!

…или в английском варианте
=OFFSET(Лист1!$B$2;MATCH(Выбор;Фотоальбом;0)-1;0;1;1)
Технически функция ПОИСКПОЗ (MATCH) находит ячейку с нужной моделью в каталоге по названию, а функция
СМЕЩ (OFFSET) затем выдает ссылку на соседнюю справа от найденного названия ячейку, т.е. ячейку с
фотографией товара.

Шаг 5. Привязываем фотографию к ссылке
Осталось выделить скопированную фотографию на Листе 2 и вписать в строку формул
=Фото
и нажать Enter

28

Николай Павлов

Выпадающий список с автоматическим добавлением отсутствующих
элементов
Задача: сделать в ячейке D2 выпадающий список, чтобы пользователь мог выбирать имена из списка (столбец
А). Если нужного имени нет в списке, то пользователь может ввести новое имя прямо в ячейку D2 – оно
автоматически добавится к столбцу А и начнет отображаться в выпадающем списке в будущем.

Шаг 1. Создаем именованный диапазон
Сначала создадим именованный диапазон, указывающий на заполненные именами ячейки в столбце А –
сколько бы имен в списке ни находилось. Для этого жмем на вкладке Формулы (Formulas) кнопку Диспетчер
имен (Name Manager) и затем Создать (New).
Вводим имя диапазона (допустим, People) и в строку Ссылка (Reference) вводим следующую формулу:
=СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A$1:$A$24);1)
в английской версии Excel это будет:
=OFFSET(Лист1!$A$1;0;0;COUNTA(Лист1!$A$1:$A$24);1)
Эта формула ссылается на все заполненные ячейки в столбце А, начиная с А1 и вниз до конца – до последнего
имени.

Шаг 2. Создаем выпадающий список в ячейке
Выделяем ячейку D2 и жмем на вкладке Данные (Data) кнопку Проверка данных (Data Validation). Далее
выбираем из выпадающего списка Тип данных (Allow) позицию Список (List) и вводим в строку Источник
(Source) ссылку на созданный на шаге 1 именованный диапазон (не забудьте перед именем диапазона
поставить знак равенства!):

29

Microsoft Excel: Готовые решения – бери и пользуйся!

Чтобы Excel позволил нам в будущем ввести в список и новые имена, снимем галочки на вкладках Сообщение
для ввода (Input Message) и Сообщение об ошибке (Error Alert) и нажмем ОК. Теперь у нас есть выпадающий
список в ячейке D2. Причем если, например, вручную дописать новое имя в столбце А, то оно автоматически
появится в выпадающем списке в ячейке D2, поскольку имена берутся из динамического диапазона People,
который автоматически отслеживает изменения в столбце А.

Шаг 3. Добавляем простой макрос
Щелкаем правой кнопкой мыши по ярлычку нашего листа и выбираем Исходный текст (View Source). Откроется
модуль листа в редакторе Visual Basic, куда надо ввести такой код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lReply As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = «$D$2» Then
If IsEmpty(Target) Then Exit Sub
If WorksheetFunction.CountIf(Range(«People»), Target) = 0 Then
lReply = MsgBox(«Добавить введенное имя » & _
Target & » в выпадающий список?», vbYesNo + vbQuestion)
If lReply = vbYes Then
Range(«People»).Cells(Range(«People»).Rows.Count + 1, 1) = Target
End If
End If
End If
End Sub

Если ваш выпадающий список находится не в ячейке D2 или вы назвали диапазон с именами не People, а как-то
еще, то подправьте эти параметры в макросе на свои.
Всё! Теперь при попытке ввести новое имя в ячейку D2 Excel будет спрашивать

30

Николай Павлов

…и при утвердительном ответе пользователя автоматически добавлять новое имя к списку в столбце А и в
выпадающий список в ячейку D2.

31

Microsoft Excel: Готовые решения – бери и пользуйся!

Выпадающий список с удалением использованных элементов
Постановка задачи
Имеем в качестве примера недельный график дежурств, который надо заполнить именами сотрудников,
причем для каждого сотрудника максимальное количество рабочих дней (смен) ограничено. Идеальным
вариантом было бы организовать в ячейках B2:B8 выпадающий список, но при этом сделать так, чтобы уже
занятые сотрудники автоматически убирались из выпадающего списка, оставляя только свободных:

Чтобы реализовать подобный вариант выпадающего списка, выполним несколько простых шагов.

Шаг 1. Кто сколько работает?
Сначала давайте подсчитаем, кто из наших сотрудников уже назначен на дежурство и на сколько смен. Для
этого добавим к зеленой таблице еще один столбец, введем в него следующую формулу:
=СЧЁТЕСЛИ($B$2:$B$8;E2) или в англоязычной версии =COUNTIF($B$2:$B$8;E2)

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

Шаг 2. Кто еще свободен?
Теперь выясним, кто из наших сотрудников еще свободен, т.е. не исчерпал запас допустимых смен. Добавим
еще один столбец и введем в него формулу, которая будет выводить номера свободных сотрудников:
=ЕСЛИ(F2-G2COUNT($H$2:$H$10);»»;INDEX($E$2:$E$10;SMALL($H$2:$H$10;ROW(E2)-1)))

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

Шаг 4. Создаем именованный диапазон свободных сотрудников
Жмем кнопку Диспетчер имен (Name Manager) на вкладке Формулы (Formulas) и создаем новый именованный
диапазон Имена по следующей формуле:
=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10))
…или в англоязычной версии:
=OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-COUNTBLANK(Лист1!I$2:I$10))

33

Microsoft Excel: Готовые решения – бери и пользуйся!

Фактически мы просто даем диапазону занятых ячеек в синем столбце собственное название Имена.

Шаг 5. Создаем выпадающий список в ячейках
Осталось выделить ячейки B2:B8 нашего графика и добавить в них выпадающий список с элементами
диапазона Имена. Для этого жмем кнопку Проверка данных (Data Validation) на вкладке Данные (Data) и в
открывшемся окне выберем в списке допустимых значений вариант Список (List) и укажем Источник (Source)
данных:

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

34

Николай Павлов

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

Для реализации такой задачи есть простой и удобный способ почти без формул. Способ основан на новой
возможности последних версий Microsoft Excel начиная с 2007 версии. Суть его в том, что любой диапазон
можно выделить и отформатировать как Таблицу. Тогда он превращается, упрощенно говоря, в «резиновый»,
т.е. сам начинает отслеживать изменения своих размеров, автоматически растягиваясь-сжимаясь при
добавлении-удалении в него данных.
Выделите диапазон вариантов для выпадающего списка (A1:A5 в нашем примере выше) и на Главной (Home)
вкладке нажмите кнопку Форматировать как таблицу (Home – Format as Table). Дизайн можно выбрать любой
– это роли не играет:

Обратите внимание на то, что таблица должна иметь строку заголовка (в нашем случае это А1 со словом
Сотрудники). Первая ячейка играет роль «шапки» и содержит название столбца. На появившейся после
35

Microsoft Excel: Готовые решения – бери и пользуйся!

превращения в Таблицу вкладке Конструктор (Design) можно изменить стандартное имя таблицы на свое (без
пробелов!). По этому имени мы сможем потом адресоваться к таблице на любом листе этой книги:

Теперь выделите ячейки, где вы хотите создать выпадающие списки (в нашем примере выше это D2), и
нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data). В открывшемся окне на вкладке
Параметры (Settings) выберите вариант Список (List) и введите в поле Источник (Source) вот такую формулу:

=INDIRECT(«Таблица1[Сотрудники]»)
Смысл этой формулы прост. Выражение Таблица1[Сотрудники] – это ссылка на столбец с данными для списка
из нашей умной таблицы. Но проблема в том, что Excel почему-то не хочет понимать прямых ссылок в поле
Источник (Source), т.е. нельзя написать в поле Источник выражение вида =Таблица1[Сотрудники]. Поэтому мы
идем на тактическую хитрость – вводим ссылку как текст (в кавычках) и используем функцию ДВССЫЛ
(INDIRECT), которая преобразовывает текстовую ссылку в настоящую, «живую».

36

Николай Павлов

Осталось только нажать на ОК. Если теперь дописать к нашей таблице новые элементы, то они будут
автоматически в нее включены, а значит – добавятся к нашему выпадающему списку. С удалением – то же
самое.
Если вам лень возиться с вводом формулы ДВССЫЛ, то можно чуть упростить процесс. После создания умной
таблицы просто выделите мышью диапазон с элементами для выпадающего списка (A2:A5) и введите в поле
адреса имя для этого диапазона (без пробелов), например Стажеры, и нажмите на Enter:

Фактически этим мы создаем именованный динамический диапазон, который ссылается на данные из нашей
умной таблицы. Теперь имя этого диапазона можно ввести в окне создания выпадающего списка в поле
Источник (Source):

37

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Способ 1. Функция ДВССЫЛ
В простом случае можно использовать функцию ДВССЫЛ (INDIRECT), чтобы сформировать правильную ссылку
на внешний файл.
Например, если необходимо создать выпадающий список с содержимым ячеек А1:А10 с листа Список из файла
Товары.xls, нужно открыть окно проверки данных через вкладку Данные – Проверка данных (Data – Validation)
и в поле Источник (Source) ввести следующую конструкцию:
=ДВССЫЛ(«[Товары.xls]Список!$A$1:$A$10»)

Функция ДВССЫЛ (INDIRECT) преобразует текстовую строку аргумента в реальный адрес, используемый для
ссылки на данные. Обратите внимание, что имя файла заключается в квадратные скобки, а восклицательный
знак служит разделителем имени листа и адреса диапазона ячеек. Если имя файла содержит пробелы, то его
надо заключить в апострофы.
Если файл с исходными данными для списка лежит в другой папке, необходимо указать полный путь к файлу,
например, следующим образом:
=ДВССЫЛ(«‘D:Договоры[Товары.xls]Список’!$A$1:$A$10»)
В данном случае не забудьте заключить в апострофы полный путь к файлу и имя листа.
Минус этого способа только один – выпадающий список будет корректно работать только в том случае, если
файл Товары.xls открыт.

Способ 2. Импорт данных
Суть этого способа в том, что данные для выпадающего списка буду импортироваться из другого файла в
текущий. Для этого необходимо создать обновляемую связь между двумя файлами.
Сначала откройте файл-источник, где находятся эталонные значения для выпадающего списка (назовем его,
допустим, Справочник.xlsx).
38

Николай Павлов

Выделите диапазон с данными для списка и отформатируйте его как таблицу с помощью кнопки
Форматировать как таблицу на вкладке Главная (Home – Format as Table). Обратите внимание, что у такой
таблицы предварительно должна быть сделана «шапка» – строка заголовка. После этого файл Справочник
можно сохранить и закрыть.
Теперь откроем книгу, где мы хотим создать выпадающий список (условно назовем ее Бланк.xlsx). Вставим
чистый лист (Alt+F11), выберем на вкладке Данные – Существующие подключения – Найти другие (Data –
Existing Connections – Browse for more) и укажем наш файл Справочник.xlsx. Появится диалоговое окно, в
котором Excel спросит нас о том, какую именно таблицу мы хотим импортировать (если их в файле было
несколько):

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

Тут можно включить флажок Обновить при открытии файла (Refresh on open), чтобы каждый раз при открытии
этой книги иметь последнюю версию списка:

39

Microsoft Excel: Готовые решения – бери и пользуйся!

После нажатия на кнопку ОК Excel загрузит данные из созданной таблицы из файла Справочник в наш текущий
файл Бланк и отформатирует их в виде таблицы:

Если выделить импортированный список (диапазон А2:А7 в нашем случае), то в строке формул можно увидеть
его имя, которое он автоматически получает при вставке:

Это имя также можно увидеть в Диспетчере имен на вкладке Формулы (Formulas – Name Manager).
Осталось создать выпадающий список, который будет ссылаться на эти данные. Для этого:
1. Выделяем ячейки, где хотим создать выпадающие списки.
2. На вкладке Данные жмем на кнопку Проверка данных (Data – Validation).
3. Выбираем в раскрывающемся списке разрешенных типов данных вариант Список (List) и вводим в поле
Источник (Source) следующую формулу:

40

Николай Павлов

В англоязычной версии Excel это будет =INDIRECT(«Таблица_Справочник»).
Логично было бы ввести просто имя нашего диапазона, но, к сожалению, Microsoft Excel почему-то не
воспринимает имена таблиц в поле Источник. Поэтому мы используем тактическую хитрость – функцию
ДВССЫЛ (INDIRECT), которая превращает свой аргумент (имя нашей таблицы) в рабочую ссылку.
Все. После нажатия на ОК наш список начнет работать и будет в дальнейшем автоматически обновляться,
подгружая данные из другого файла:

41

Microsoft Excel: Готовые решения – бери и пользуйся!

Даты и время

Л

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

Как правильно, быстро и удобно вводить даты и время.

Как сделать всплывающий календарь для быстрого ввода даты.

Как выделить из даты отдельно день, месяц или год или собрать их обратно в дату.

Как сдвигать дату на N рабочих или календарных дней, месяцев или лет.

Как вычислить стаж или возраст.

Как по дате определить квартал, номер недели или день недели.

42

Николай Павлов

Как правильно вводить даты и время
Если иметь в виду российские региональные настройки, то Excel позволяет вводить дату очень разными
способами – и понимает их все:
«Классическая» форма

3.10.2006

Сокращенная форма

3.10.06

С использованием дефисов

3-10-6

С использованием дроби

3/10/6

Внешний вид (отображение) даты в ячейке может быть очень разным (с годом или без, месяц числом или
словом и т.д.) и задается через контекстное меню – правой кнопкой мыши по ячейке и далее Формат ячеек
(Format Cells) или сочетанием клавиш Ctrl+1:

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

43

Microsoft Excel: Готовые решения – бери и пользуйся!

Всплывающие календари для быстрого ввода даты
Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно
сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (TODAY), сочетанием клавиш Ctrl+; или
макросом, но если нужны разные даты из прошлого или будущего, то вбивать их руками долго.
Естественно, это «узкое место» не осталось без внимания опытных пользователей и экспертов Excel MVP,
которые оперативно создали несколько интерактивных календарей на макросах для удобного ввода дат. Вот
подборка неплохих, на мой взгляд, бесплатных вариантов:

Windows Date Picker
Автор: Ron de Bruin.
Цена: бесплатно.
http://www.rondebruin.nl/win/addins/datepicker.htm
 Устанавливается как надстройка (есть версии для старых Excel 2000–

2003 и для новых Excel 2007–2010 и, отдельно, для Excel 2013.
 Вызывается через контекстное меню ячейки (правой кнопкой мыши по
ячейке – Date Picker).
 Позволяет вставлять дату в нескольких форматах, вплоть до номера
недели (по разным стандартам).
 Автоматически подстраивается под российский стандарт недели (с
понедельника).

Excel Date Picker
Автор: Jim Cone.
Цена: бесплатно.
http://www.contextures.com/exceldatepicker.html



Макрос (не надстройка!) с открытым кодом VBA – можно посмотреть,
как все устроено, и модернизировать «под себя». Но надо копировать
код в каждый используемый файл и вызывать нажатием на кнопку или
сочетанием клавиш, т.е. универсальность хромает.
Удобная система прокрутки лет и месяцев.
Российскую неделю (с понедельника) знает.
Каких-либо настроек нет.

Mini Calendar and Date Picker
Автор: VERTEX.
Цена: бесплатно.
http://office.microsoft.com/enus/templates/results.aspx?qu=date%20picker&queryid=bdadaa42-f9db-4c1191c1-76906b14bdac

Работает только в Excel 2013, добавляется через магазин
приложений Office Apps Store на вкладке Вставка – Приложения
для Office (Insert – Office Apps Store).

44

Николай Павлов



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

45

Microsoft Excel: Готовые решения – бери и пользуйся!

Быстрый ввод даты без разделителей
Если вам часто приходится вводить даты и время в ячейки, то вам должна понравиться идея писать их
сокращенно, без точек-дробей – просто как число. Чтобы в заданном диапазоне ячеек листа, например, число
250699 после ввода и нажатия клавиши Enter автоматически превращалось в 25.06.1999:

Для реализации такого возможны два варианта.
Первый – использовать функцию преобразования текста в дату ДАТАЗНАЧ (DATEVALUE) и функции извлечения
фрагментов из текста ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) и ПСТР (MID), чтобы разделить шесть введенных
чисел по два, добавить к ним точки и составить из них полноценную дату в соседней ячейке:

…или в англоязычном варианте:
=DATEVALUE(LEFT(D1;2)&”.”&MID(D1;3;2)&”.”&RIGHT(D1;2))
Если же хочется выполнять это преобразование прямо в той же ячейке, куда вводятся числа, то без макроса не
обойтись. Для этого щелкните по ярлычку листа, куда будут вводиться даты и время, и выберите команду
Исходный текст (View Code). В открывшееся окно редактора Visual Basic вставьте следующий код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(«A2:A10»)) Is Nothing Then
With Target
StrVal = Format(.Text, «000000»)
If IsNumeric(StrVal) And Len(StrVal) = 6 Then
Application.EnableEvents = False
dDate = DateValue(Left(StrVal, 2) & «/» & Mid(StrVal, 3, 2) & «/» & Right(StrVal, 2))
.NumberFormat = «dd/mm/yyyy»
.Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
End If
End With
End If
Application.EnableEvents = True
End Sub

Диапазон A2:A10 в коде замените на свою область листа, куда подобным образом собираетесь вводить даты.

46

Николай Павлов

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

Чтобы реализовать такой ввод даты, нам потребуется простой макрос, который надо добавить в модуль
рабочего листа. Для этого щелкните правой кнопкой мыши по ярлычку листа с таблицей и выберите в
контекстном меню команду Исходный текст (View Code). Затем в появившееся пустое окно модуля введите код
следующего макроса:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell in Target
‘проходим по всем измененным ячейкам
If Not Intersect(cell, Range(«A2:A100»)) Is Nothing Then
‘если изменененная ячейка
‘попадает в диапазон A2:A100
With cell.Offset(0, 1)
‘вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit ‘выполняем автоподбор ширины для столбца B,
‘чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub

При необходимости измените «чувствительный» диапазон «А2:А100» на свой собственный. Если необходимо
вставлять дату не в соседний столбец, а правее – подставьте в оператор Offset(0,1) вместо 1 число побольше.
Закройте редактор Visual Basic и попробуйте ввести что-нибудь в диапазон А2:А100. В соседней ячейке тут же
появится текущая дата-время!

47

Microsoft Excel: Готовые решения – бери и пользуйся!

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

48

Николай Павлов

Быстрый ввод текущей даты
Для ввода сегодняшней даты в текущую ячейку можно воспользоваться сочетанием клавиш Ctrl+Ж (или
Ctrl+Shift+4 если у вас другой системный язык по умолчанию).
Если нужно, чтобы в ячейке всегда была актуальная сегодняшняя дата – лучше воспользоваться функцией
СЕГОДНЯ (TODAY):

Если нужно вставить не только текущую дату, но и время, то подойдет функция ТДАТА (NOW):

Обе функции можно вставить стандартным образом: либо с помощью стандартного Мастера функций (кнопка
fx в строке формул) или с вкладки Формулы – Дата и время (Formulas – Date & Time).

49

Microsoft Excel: Готовые решения – бери и пользуйся!

Как Excel на самом деле хранит и обрабатывает даты и время
Если выделить ячейку с датой и установить для нее числовой или общий формат (правой кнопкой по ячейке
Формат ячеек – вкладка Число – Общий) или Ctrl+Shift+1, то можно увидеть интересную картинку:

На самом деле любую дату Excel хранит и обрабатывает именно так – как число с целой и дробной частью.
Целая часть числа (41720) – это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до
текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0).
Из всех этих фактов следуют два чисто практических вывода:

Во-первых, Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года.
Дата Куликовской битвы, к примеру, введенная в ячейку листа, останется текстом, и к ней нельзя будет
применить обычные функции обработки дат. Если же вы историк и вам все же необходимо работать с
такими датами, то придется использовать специальные макрофункции, например, отсюда
http://j-walk.com/ss/excel/files/xdate.htm
Во-вторых, с датами и временем в Excel возможно выполнять любые математические операции. Именно
потому, что на самом деле они – числа! А вот это уже раскрывает перед пользователем массу
возможностей.

50

Николай Павлов

Число дней между двумя датами
Как посчитать количество дней между двумя датами
С учетом принципов, описанных в предыдущем пункте, считается простым вычитанием – из конечной даты
вычитаем начальную и переводим результат в Общий (General) или Числовой (Number) формат (сочетание
Ctrl+Shift+1), чтобы показать разницу в днях:

Как посчитать количество рабочих дней между двумя датами
Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого
расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве
аргументов этой функции необходимо указать начальную и конечную даты, а также ячейки с датами выходных:
государственных праздников, больничных дней, отпусков, отгулов и т.д., т.е. любых дат, которые тоже должны
считаться за нерабочие.

Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более
древних версиях сначала необходимо подключить надстройку Пакет анализа. Для этого идем в
меню Сервис – Надстройки (Tools – Add-Ins) и ставим галочку напротив Пакет анализа (Analisys
Toolpak). После этого в Мастере функций в категории Дата и время появится необходимая нам
функция ЧИСТРАБДНИ (NETWORKDAYS).

51

Microsoft Excel: Готовые решения – бери и пользуйся!

Как выделить из даты день, месяц и год отдельно
Для этого можно использовать простые функции ДЕНЬ (DAY), МЕСЯЦ (MONTH) и ГОД (YEAR) соответственно:

С днем месяца и годом все однозначно, а вот если необходимо, чтобы месяц выводился не числом, а словом,
то можно использовать функцию ВЫБОР (CHOOSE) для подстановки нужного слова по номеру месяца:

В Excel 2013 для подобного однократного разделения можно использовать еще и функцию Мгновенное
заполнение (Flash Fill). Достаточно просто начать вручную вводить номер, например, года в ячейки соседнего с
датами столбца, как Excel услужливо предложит продолжить список лет уже самостоятельно:

Также можно ввести пару значений вручную, а потом воспользоваться кнопкой Мгновенное заполнение (Flash
Fill) на вкладке Данные (Data).

52

Николай Павлов

Как собрать дату из фрагментов (день, месяц, год)
Процедура обратная предыдущему пункту. Можно легко выполнить с помощью функции ДАТА (DATE):

Обратите внимание, что последовательность аргументов этой функции прямо противоположна российскому
стандарту записи дат: сначала идет год, потом – месяц и только потом – день.
Интересный нюанс состоит в том, что если вы зададите числовые значения, которые в результате приведут к
созданию невозможной даты (введете в ячейку А1 число 32, например), то функция выдаст не ошибку, а
переключится в следующий месяц:

Аналогичным способом можно сдвигать дату на заданное количество месяцев вперед или даже назад:

53

Microsoft Excel: Готовые решения – бери и пользуйся!

Сдвиг дат
Сдвиг даты на N дней в будущее или прошлое
Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу, то для вычисления даты,
отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число:

Сдвиг даты на N рабочих (банковских) дней
Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY). Она позволяет вычислить дату, отстоящую вперед
или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных, суббот и
воскресений, и государственных праздников). Использование этой функции полностью аналогично
применению функции ЧИСТРАБДНИ (NETWORKDAYS), описанной выше:

Сдвиг даты на N месяцев
Допустим, нужно вычислить дату окончания 10-месячного контракта, подписанного 22 марта 2014 г. Для этого
можно воспользоваться стандартной функцией ДАТАМЕС (EMONTH) из категории Дата и время:

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

Сначала мы разбираем дату на составляющие при помощи функций ДЕНЬ, МЕСЯЦ и ГОД, а потом собираем ее
обратно функцией ДАТА, но предварительно добавляем к году нужное число.
В английской версии это будет соответственно: =DATE(YEAR(A1)+B1;MONTH(A1);DAY(A1))
54

Николай Павлов

Универсальный календарь формулой
Если вам нужен календарь на листе Microsoft Excel, то у вас есть много разных способов – от кропотливого
вбивания дат вручную до подключения всплывающих календарей из различных надстроек и макросов. Еще
один вариант – реализовать универсальный календарь на любую дату с помощью всего одной (правда, весьма
страшной с непривычки) формулы массива.
Чтобы ее использовать, создайте на листе заготовку вот такого вида:

Дата в ячейке B2 может быть любой, тут важен только месяц и год. В ячейках диапазона B3:H3 могут быть
названия дней недели в любом подходящем формате.
Теперь выделите диапазон B4:H9 и введите туда вот такую формулу:
=ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1)) МЕСЯЦ(ДАТА(ГОД(B2);МЕСЯЦ(B2);1)(ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1) +{0:1:2:3:4:5}*7+{1;2;3;4;5;6;7}-1);» «; ДАТА(ГОД(B2);МЕСЯЦ(B2);1)(ДЕНЬНЕД(ДАТА(ГОД(B2);МЕСЯЦ(B2);1);2)-1) +{0:1:2:3:4:5}*7+{1;2;3;4;5;6;7}-1)
В английском варианте это будет:
=IF(MONTH(DATE(YEAR(B2);MONTH(B2);1)) MONTH(DATE(YEAR(B2);MONTH(B2);1)(WEEKDAY(DATE(YEAR(B2);MONTH(B2);1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1);””; DATE(YEAR(B2);MONTH(B2);1)(WEEKDAY(DATE(YEAR(B2);MONTH(B2);1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1)
Затем нажмите сочетание Ctrl+Shift+Enter, чтобы ввести эту формулу как формулу массива. Все выделенные
ячейки должны заполниться датами заданного в B2 месяца:

55

Microsoft Excel: Готовые решения – бери и пользуйся!

Останется только навести внешний блеск, добавив форматирование и скрыв день в заголовке B2 и месяц и год в
остальных ячейках с помощью окна Формат ячеек (Ctrl+1):

56

Николай Павлов

Вычисление дня недели по дате
Что б они ни делали – не идут дела! Видно, в понедельник их мама
родила! (из к/ф «Бриллиантовая рука»)

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД
(WEEKDAY) из категории Дата и время.

Первый аргумент этой функции – ячейка с исходной датой, второй – тип отсчета дней недели (самый удобный –
2).
Если необходимо, чтобы день недели выводился не числом (5), а текстом («пт» или «пятница»), то можно
использовать еще и функцию ВЫБОР (CHOOSE), чтобы подставить вместо цифры нужное текстовое значение:

57

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24
часов, то Excel обнулит ее и начнет суммировать опять заново. Чтобы этого не происходило, нужно применить к
итоговой ячейке формат 37:30:55 с помощью диалогового окна Формат ячейки (Format Cells):

58

Николай Павлов

Вычисление возраста или стажа
Для вычисления длительностей интервалов дат в Microsoft Excel есть функция РАЗНДАТ (DATEDIF).
Нюанс в том, что вы не найдете эту функцию в списке Мастера функций, нажав кнопку fx – она является
недокументированной возможностью Excel. Точнее говоря, найти описание этой функции и ее аргументов
можно только в полной версии англоязычной справки, поскольку на самом деле она оставлена для
совместимости со старыми версиями Excel и Lotus 1-2-3. Однако, несмотря на то что эту функцию не получится
вставить стандартным способом через вкладку Формулы – Вставить функцию (Formulas – Insert Function), ее
можно вручную вписать в ячейку с клавиатуры – и она сработает!
Синтаксис функции следующий:
РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)

Самый интересный аргумент последний. Он определяет, каким именно образом и в каких единицах будет
измеряться интервал между начальной и конечной датами. Этот параметр может принимать следующие
значения:
«y»
«m»
«d»
«yd»
«md»
«ym»

разница в полных годах
в полных месяцах
в полных днях
разница в днях с начала года без учета лет
разница в днях без учета месяцев и лет
разница в полных месяцах без учета лет

При желании подсчитать и вывести, например, ваш стаж в виде «3 г. 4 мес. 12 дн.» можно использовать символ
“&” для склеивания фрагментов, т.е. ввести в ячейку следующую формулу:
=РАЗНДАТ(A1;A2;»y»)&» г. «&РАЗНДАТ(A1;A2;»ym»)&» мес. «&РАЗНДАТ(A1;A2;»md»)&» дн.»
или в английской версии Excel:
=DATEDIF(A1;A2;»y»)&» y. «&DATEDIF(A1;A2;»ym»)&» m. «&DATEDIF(A1;A2;»md»)&» d.»
где А1 – ячейка с датой поступления на работу, А2 – с датой увольнения.
При использовании функции с третьим аргументом «md» и «ym» в некоторых случаях функция
считает неправильно. Это зависит от нескольких факторов: исходных дат, версии Office,
установленных пакетов обновления (SP).

59

Microsoft Excel: Готовые решения – бери и пользуйся!

Номер недели по дате
Потребность знать номер рабочей недели для заданной даты (или группы дат) весьма востребованная вещь в
управленческом учете. Понедельные отчеты, еженедельный контроль выполнения плана, недельная сетка
вещания в рекламе – все это требует умения определять номер рабочей недели для заданной даты. Задача на
первый взгляд простая, но (как всегда) есть несколько весьма существенных нюансов.
Во-первых, в разных странах отсчет начала и конца самой недели – различается. У нас в России днем отсчета
недели принят понедельник, а в других странах (например, США и Израиле) – воскресенье.
Во-вторых, вопрос – какую неделю считать первой? На сегодняшний момент существуют как минимум два
основных варианта с разной логикой. Рассмотрим их последовательно.

Способ 1. Стандарт ГОСТ ИСО 8601-2001
Первой рабочей неделей года считается та, на которую выпадает первый четверг года (или 4 января, если
хотите). Здесь логика проста. Первая неделя – это та, на которую пришлось больше трех дней (больше
половины недели) из наступившего года. Некоторое неудобство в том, что в году получается когда 52, а когда
53 рабочих недели. Плюс ко всему 1 января может запросто оказаться 52-й неделей предыдущего года.
Но именно этот вариант официально принят в России с 2002 года как государственный и остается им на данный
момент (см. ГОСТ ИСО 8601-2001). Чтобы посчитать номер недели по дате по такой системе, можно
использовать вот такую формулу (предполагается, что дата в ячейке А1):

В англоязычной версии это будет =TRUNC(MOD(A1+3-WEEKDAY(A1;2);365,25)/7+1)
В Excel 2013 функцию для расчета номера недели по ISO добавили в стандартный набор – она называется
НОМНЕДЕЛИ.ISO (WEEKNUM.ISO)

Способ 2. Неделя с 1-м января
В этом случае первой неделей года считается та, на которую попадает 1 января. Здесь также возникает
сложность в том, что в году может оказаться 52 или 53 недели и, плюс ко всему, 1 января может выпасть на
воскресенье, т.е. шесть последних дней года могут оказаться уже в неделе с номером 1, что затрудняет
отчетность. Тем не менее, если такой способ нумерации вам нужен, то его можно реализовать функцией
НОМНЕДЕЛИ (WEEKNUM).
Если у вас Excel не 2007 версии или новее, то сначала придется подключить надстройку Пакет
анализа через меню Сервис—Надстройки (Tools – Add-Ins – Analysis ToolPak), чтобы к списку
функций Excel в категории Дата и время добавилась функция НОМНЕДЕЛИ (WEEKNUM). В Excel
2007–2013 ничего специально подключать не надо – эта функция входит в стандартный набор.

60

Николай Павлов

Вставляем эту функцию в нужную ячейку и указываем в качестве аргумента ячейку с датой и точку отсчета
недели (1 – с воскресенья, 2 – с понедельника):

При всей внешней простоте этого решения тут есть две тонкости. Во-первых, если у того пользователя, который
откроет ваш файл, не будет заранее подключена надстройка Пакет анализа или у него не Excel 2007/2010 – он
увидит вместо номера недели ошибку #ЗНАЧ!. Excel сам не распознает эту функцию, нужно обязательно
заранее подключить надстройку. Во-вторых, названия функций из надстроек Excel сам не переводит на другой
язык при открытии книги в Excel с другой версией. Т.е. если даже у пользователя и подключена надстройка, но
версия Excel англоязычная, то он тоже увидит вместо номера недели ошибку #VALUE!, потому что нужно
вручную исправить русское название функции НОМНЕДЕЛИ на английское WEEKNUM – только так она
заработает. Поэтому использование этой функции из надстройки Пакет анализа хорошо только в тех случаях,
когда предполагается, что никто, кроме вас, с файлом работать не будет.
А если будет? Тогда лучше пойти другим путем. Он более примитивен, зато надежен. Если предположить, что
дата хранится в ячейке А1, то вот такая формула посчитает такой же номер недели, как и функция НОМНЕДЕЛИ:
=1+ЦЕЛОЕ((A1-ДАТА(ГОД(A1+4-ДЕНЬНЕД(A1+6));1;5)+ДЕНЬНЕД(ДАТА(ГОД(A1+4-ДЕНЬНЕД(A1+6));1;3)))/7)
или в англоязычной версии:
=1+INT((A1-DATE(YEAR(A1+4-WEEKDAY(A1+6));1;5)+WEEKDAY(DATE(YEAR(A1+4-WEEKDAY(A1+6));1;3)))/7)

61

Microsoft Excel: Готовые решения – бери и пользуйся!

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

В английской версии Excel эта формула выглядит =ROUNDUP(MONTH(A1)/3;0)
Функция МЕСЯЦ (MONTH) в данном случае извлекает номер месяца для даты, а ОКРУГЛВВЕРХ (ROUNDUP) –
округляет результат до ближайшего наибольшего целого.
Если вам нужны римские (I, II, III, IV), а не арабские цифры в нумерации кварталов, то к формуле можно
добавить функцию преобразования РИМСКОЕ (ROMAN):

62

Николай Павлов

Преобразование текстовой даты в полноценную дату
Если в вашей ячейке лежит дата в виде текстовой строки, например, «8 март 2013», то для Excel это, естественно,
не дата, а текст. Чтобы преобразовать текстовую дату в полноценную (читай – в числовой код даты, т.к. внутри
Excel любая дата представлена именно числовым кодом), можно использовать специальную функцию
ДАТАЗНАЧ (DATEVALUE). Она умеет превращать в нормальную дату различные текстовые варианты ее
написания:

Как видно из скриншота, проблемы с преобразованием будут только у англоязычных дат (если у вас установлен
русский Excel), с падежами месяцев (ибо их нет в английском языке в принципе) и с совсем уж невнятными
цифровыми наборами типа «8 3 13». Со всем остальным эта функция замечательно справляется.
Если для ввода дат была использована не точка или косая черта, а запятая (что часто бывает при использовании
дополнительной цифровой клавиатуры), то придется сначала заменить запятую на точку с помощью функции
ПОДСТАВИТЬ (SUBSTITUTE) и потом уже использовать функцию ДАТАЗНАЧ для преобразования получившегося
текста в реальную дату:

63

Microsoft Excel: Готовые решения – бери и пользуйся!

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



первый понедельник января 2013 года – самый тяжелый понедельник года
второе воскресенье апреля 2010 года – день ПВО
первое воскресенье октября 2015 года – День учителя
и т.д.

Чтобы определить точную дату, на которую приходится такой день недели, нам потребуется небольшая, но
хитрая формула:

Или в английской версии =DATE(B1;B2;B4*7-6)+MOD(B3-DATE(B1;B2;);7)

64

Николай Павлов

Работа с текстом

К

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

В этой главе мы разберем:

Как делить текст из одной ячейки (столбца) на несколько и склеивать обратно.

Как выдергивать из длинной фразы отдельные слова (подстроки).

Что делать с числами, когда они воспринимаются Excel как текст.

Как перевести русский текст в транслит (Николай в Nikolay, например).

Как быстро привести в порядок текст, замусоренный при вводе лишними пробелами,
апострофами, латиницей и т.д.

65

Microsoft Excel: Готовые решения – бери и пользуйся!

Склеивание текста из нескольких ячеек
Способ 1. Функция СЦЕПИТЬ
В категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE), которая соединяет содержимое нескольких
ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:

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

Способ 2. Символ для склеивания текста (&)
Для суммирования содержимого нескольких ячеек используют знак +, а для склеивания содержимого ячеек
используют знак & (расположен на большинстве клавиатур на цифре 7):

При его использовании необходимо помнить, что:

Этот символ надо ставить в каждой точке соединения, т.е. на всех «стыках» текстовых строк, так же как
вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8).
Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о
целом слове), то этот текст надо заключать в кавычки, как и в предыдущем способе.

Способ 3. Макрос для объединения ячеек без потери текста
Начинающие пользователи часто пытаются использовать для объединения ячеек с текстом кнопку Объединить
и поместить в центре (Merge and Center) с вкладки Главная (Home):

66

Николай Павлов

Проблема в одном – объединять ячейки эта функция умеет, а вот с текстом сложность – в результирующей
объединенной ячейке остается текст только из верхней левой ячейки, а остальной текст мы теряем. Microsoft
Excel об этом, кстати, честно предупреждает при попытке выполнения этой операции:

Сделать свой вариант этой функции с сохранением (точнее – слиянием) текста из всех объединяемых ячеек
можно с помощью небольшого макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте в
вашу книгу новый программный модуль (меню Insert – Module) и введите туда текст такого простого макроса:
Sub MergeToOneCell()
Const sDELIM As String = » «
‘символ-разделитель
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) «Range» Then Exit Sub ‘если выделены не ячейки – выходим
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text ‘собираем текст из ячеек
Next rCell
Application.DisplayAlerts = False ‘отключаем стандартное предупреждение
.Merge Across:=False
‘объединяем ячейки
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) ‘добавляем к объед.ячейке текст
End With
End Sub

Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt+F8, то Excel
объединит выделенные ячейки в одну, слив туда же и текст из всех ячеек через пробелы. Вместо пробела,
конечно же, можно использовать другой разделитель – введите его во второй строке макроса в переменную
sDELIM.

67

Microsoft Excel: Готовые решения – бери и пользуйся!

Извлечение символов из текстовой строки
Иногда возникает необходимость «выдернуть» из текста в ячейке отдельные символы (один или сразу
несколько), т.е. извлечь подстроку из строки. В Microsoft Excel это можно легко сделать с помощью трех
встроенных текстовых функций:


ЛЕВСИМВ(текст; кол-во символов) – извлекает из текста заданное количество символов слева, т.е. от
начала строки;
ПРАВСИМВ(текст; кол-во символов) – делает то же самое, но берет текст справа, т.е. от конца;
ПСТР(текст; начальный символ; кол-во символов) – выдергивает из текста фрагмент заданной длины,
начиная с определенного символа.

68

Николай Павлов

Извлечение N-го по счету слова из ячейки
Способ 1. Формулами
Допустим, у вас в ячейке есть полное ФИО, а вам необходимо извлечь только имя или только фамилию. В
простом случае это можно сделать парой функций. Для извлечения первого слова в ячейке можно использовать
вот такую конструкцию:

…или в англоязычном варианте =LEFT(A1;FIND(“ “;A1)-1)
Функция ПОИСК ищет позицию первого вхождения пробела, а функция ЛЕВСИМВ затем извлекает все символы
с начала строки до этой позиции.
Для извлечения второго слова формула будет уже пострашнее:

=MID(A1;SEARCH(» «;A1)+1;SEARCH(» «;A1;SEARCH(» «;A1)+1)-SEARCH(» «;A1))
Формула для извлечения последнего слова тоже хороша:

=RIGHT(A1;LEN(A1)-FIND(«*»;SUBSTITUTE(A1;» «;»*»;LEN(A1)-LEN(SUBSTITUTE(A1;» «;»»)))))
Если подобное извлечение вам приходится делать часто, то проще будет один раз написать несложную макрофункцию на Visual Basic, которая сможет быстро и красиво извлекать любое по счету слово из любой ячейки.

Способ 2. Пользовательская макрофункция
Открываем редактор Visual Basic на вкладке Разработчик – Редактор Visual Basic (Developer – Visual Basic Editor)
или жмем сочетание клавиш Alt+F11. Вставляем новый модуль (меню Insert – Module) и вводим туда текст вот
этой пользовательской функции:
Function ExtractWord(Txt, n) As String
Dim x As Variant
Const DELIM = » «
x = Split(Txt, DELIM)
If n > 0 And n – 1 B3), то в ячейку выводится символ «стрелка
вверх» с кодом 233. В противном случае выводится символ с кодом 234, т.е. «стрелка вниз». Для всех ячеек
диапазона D3:D14 был выставлен шрифт Wingdings.
Коды наиболее удобных для подобного форматирования символов можно найти в следующей таблице:

Для автоматической подсветки стрелок красным и зеленым цветом в приведенном выше примере можно
использовать условное форматирование. Для этого нужно:
1. Выделить диапазон D3:D14 со стрелками.
2. Выбрать на вкладке Главная – Условное форматирование – Создать правило (Home – Condtitional
Formatting – Create Rule).
3. В открывшемся окне выбрать тип правила Использовать формулу для определения форматируемых
ячеек (Use formula to define which cells to format).
4. Ввести в поле формулы условие проверки (=C3>B3) и задать зеленый цвет шрифта, используя кнопку
Формат (Format):

183

Microsoft Excel: Готовые решения – бери и пользуйся!

Аналогичным образом можно создать правило для подсветки стрелок снизившихся продаж красным цветом.

184

Николай Павлов

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

…нам хотелось бы автоматом выделять цветом строки, где стоимость превышает 100. Для этого выделим всю
таблицу (без «шапки») и выберем на вкладке Главная – Условное форматирование – Создать правило (Home –
Conditional Formatting – Create Rule). В открывшемся окне зададим последний тип правила Использовать
формулу для определения форматируемых ячеек (Use formula to determine which cell to format) и введем в
поле следующую формулу:

185

Microsoft Excel: Готовые решения – бери и пользуйся!

Нужный цвет заливки можно задать, нажав на кнопку Формат (Format).
Обратите внимание на знак доллара в формуле перед адресом ячейки B2. Этот символ в данном случае
фиксирует букву столбца, т.е. при дальнейшей проверке условия оно будет применяться последовательно к
ячейкам B3, B4, B5 и т.д. Таким образом, мы будем проверять одну ячейку из столбца B в каждой строке, а
заливать цветом при этом всю строку (т.к. выделена вся таблица).
Для удобства и универсальности значение ограничения можно вынести в отдельную ячейку и немного
изменить формулу условия:

186

Николай Павлов

Обратите внимание, что ячейка с предельной стоимостью (H2) при этом должна быть задана абсолютно – с
двумя знаками доллара.
Совершенно аналогичным способом можно выделять цветом не строки, а столбцы.

Если у нас есть, например, график рабочих смен и мы хотим выделять цветом выходные (субботы и
воскресенья), то можно поступить похожим образом:

187

Microsoft Excel: Готовые решения – бери и пользуйся!

1. Выделить форматируемый диапазон (B3:S7).
2. Создать правило условного форматирования на основе формулы.
3. Ввести формулу проверки дня недели с использованием функции ДЕНЬНЕД (WEEKDAY), которая выдает
порядковый номер дня недели для заданной даты из ячейки B2. Для понедельника эта функция выдаст
1, для вторника – 2, для среды – 3 и т.д.
После выбора цвета с помощью кнопки Формат (Format) и нажатия на ОК мы получим соответствующую
подсветку столбцов.

188

Николай Павлов

Подсветка дат и сроков
Простой способ
Выделите диапазон с датами на листе и выберите на вкладке Главная – Условное форматирование – Правила
выделения ячеек – Дата (Home – Conditional Formatting – Highlight Cell Rules – Date Occuring). В открывшемся
окне выберите из выпадающего списка нужный вариант подсветки:

Сложный способ
Предположим, что у нас есть большая таблица поставок каких-либо товаров:

Обратите внимание на дату отгрузки. Если она в прошлом, то товар уже поставлен – можно не волноваться.
Если она в будущем – значит, мы должны держать вопрос на контроле и не забыть организовать поставку к
указанному сроку. И, наконец, если дата отгрузки совпадает с сегодняшней, то надо бросать все дела и
заниматься именно этой партией в данный момент (наивысший приоритет).
Для наглядности можно настроить три правила условного форматирования, чтобы автоматически заливать всю
строку с данными по партии в разные цвета в зависимости от даты отгрузки. Для этого выделим всю таблицу
189

Microsoft Excel: Готовые решения – бери и пользуйся!

(без «шапки») и выберем на вкладке Главная – Условное форматирование – Создать правило (Home –
Conditional Formatting – Create Rule). В открывшемся окне зададим последний тип правила Использовать
формулу для определения форматируемых ячеек (Use formula to determine which cell to format) и введем в
поле следующую формулу:

Эта формула берет последовательно содержимое ячеек E5, E6, E7… из столбца с датой отгрузки и сравнивает эту
дату с сегодняшней датой из ячейки C2. Если дата отгрузки раньше, чем сегодняшняя, то отгрузка уже была.
Обратите внимание на знаки доллара, используемые для закрепления ссылок. Ссылка на $C$2 должна быть
абсолютной – с двумя знаками доллара. Ссылка на первую ячейку столбца с датой отгрузки должна быть с
закреплением только столбца, но не строки, т.е. $E5.
После ввода формулы можно задать цвет заливки и шрифта, нажав на кнопку Формат (Format), и применить
потом наше правило, нажав на кнопку ОК. Затем повторить всю процедуру для проверки будущих поставок и
поставок на текущий день. Для отгруженных партий можно, например, выбрать серый цвет, для будущих
заказов – зеленый и для сегодняшних – срочный красный:

190

Николай Павлов

Вместо текущей даты можно вставить в ячейку С2 функцию СЕГОДНЯ (TODAY), которая будет обновлять дату
каждый раз при открытии файла, что будет приводить к автоматическому обновлению цветов в таблице.
Если подобная подсветка нужна не всегда, а только на определенное время работы с таблицей, то можно
добавить к уже сделанному еще и своего рода выключатель. Для этого откройте вкладку Разработчик (если ее
не видно, то сначала включите ее через Файл – Параметры – Настройка ленты) и нажмите кнопку Вставить
(Insert):

В открывшемся списке инструментов выберите Флажок (Checkbox) из верхнего набора Элементы управления
формы. Затем щелкните по тому месту листа, где хотите его разместить. Затем можно задать размеры надписи
и поменять ее текст (правой кнопкой мыши – Изменить текст):

191

Microsoft Excel: Готовые решения – бери и пользуйся!

Теперь, чтобы использовать флажок для включения-выключения подсветки, нужно связать его с любой ячейкой
на листе. Щелкните правой кнопкой мыши по нарисованному флажку и выберите в контекстном меню команду
Формат объекта (Format Object) и затем в открывшемся окне задайте любую подходящую ячейку в поле Связь с
ячейкой (Cell Link):

Проверьте, как все работает. В связанную ячейку Е2 должно выводиться значение ИСТИНА, когда флажок
включен, или ЛОЖЬ, когда он выключен.
Теперь осталось добавить одно правило в условное форматирование, чтобы наш флажок включал-выключал
подсветку дат. Выделите всю нашу таблицу (кроме «шапки») и откройте на вкладке Главная – Условное
форматирование – Управление правилами (Home – Conditional Formatting – Manage Rules). В открывшемся
окне должны быть хорошо видны созданные нами ранее правила для подсветки прошлых, будущих и
настоящих дат разными цветами:

192

Николай Павлов

Жмем кнопку Создать правило (New Rule), выбираем последний тип правила Использовать формулу для
определения форматируемых ячеек (Use formula to determine which cell to format) и вводим в поле
следующую формулу:

Формат не задаем и нажимаем ОК. Созданное правило должно добавиться к общему списку. Теперь
необходимо поднять его на первую строчку стрелками (если оно еще не там) и включить напротив него справа
флажок Остановить, если истина (Stop If True):

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

193

Microsoft Excel: Готовые решения – бери и пользуйся!

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

В приведенном выше примере это линии между датами, но в общем случае – между любыми повторяющимися
элементами в одном столбце.
Сделать подобное можно очень легко:
1. Выделите все ячейки в таблице, начиная с третьей строки (т.е. с А3 и до конца таблицы в нашем
примере).
2. Выберите на Главной вкладке команду Условное форматирование – Создать правило (Home –
Conditional Formatting – New Rule).
3. Выберите тип правила Использовать формулу для определения форматируемых ячеек (Use formula to
determine which cells to format) и введите в поле следующую формулу:
=$B2$B1
4. Нажмите на кнопку Формат (Format) и в открывшемся окне на вкладке Граница (Borders) включите
линию нужного цвета на верхней границе и нажмите ОК.
5. В общем и целом все должно выглядеть так:

194

Николай Павлов

После нажатия на ОК в этом окне наше правило заработает и между группами строк появятся горизонтальные
отчеркивающие линии.

195

Microsoft Excel: Готовые решения – бери и пользуйся!

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

И на отдельном листе Справочник вот такой список городов:

Если пользователь введет в поле Филиал город, не содержащийся в этом списке, то ячейка должна
автоматически заливаться красным, чтобы намекнуть об ошибке.
Выделим ячейку ввода (D5) и выберем на вкладке Главная – Условное форматирование – Создать правило
(Home – Conditional Formatting – New Rule). В открывшемся окне зададим последний тип правила
Использовать формулу для определения форматируемых ячеек (Use formula to determine which cell to
format) и введем в поле следующую формулу:
=И(НЕ(ЕПУСТО(D5));СЧЁТЕСЛИ(Справочник!A1:A6;D5)=0)
В английской версии это будет соответственно:
=AND(NOT(ISBLANK(D5));COUNTIF(Справочник!A1:A6;D5)=0)

196

Николай Павлов

Разберем работу этой формулы по частям:


Функция СЧЁТЕСЛИ (COUNTIF) вычисляет, сколько раз введенное в ячейку D5 значение встречается в
списке разрешенных городов на листе Справочник. Если это количество равно нулю, то введенный
город в списке не содержится.
Функция ЕПУСТО (ISBLANK) проверяет, введено ли что-то в ячейку D5. Она тут нужна, чтобы пустая
ячейка, куда еще ничего не успели ввести, не заливалась красным цветом.
Функция И (AND) проверяет, чтобы выполнялись сразу оба заданных условия (ячейка D5 не пустая и в
нее введено недопустимое значение). Только в этом случае сработает наша заливка красным цветом.

197

Microsoft Excel: Готовые решения – бери и пользуйся!

Подсветка лишних пробелов
Предположим, что мы создали форму для ввода данных пользователем – например, такую:

При вводе всегда есть вероятность некорректного ввода информации, «человеческий фактор». Один из
вариантов его проявления – лишние пробелы. Кто-то ставит их случайно, кто-то – намеренно, но в любом
случае даже один лишний пробел будет представлять для вас проблему в дальнейшем при обработке
введенной информации. Дополнительная «прелесть» в том, что их еще и не видно.
Безусловно, можно «причесывать» информацию после ввода с помощью специальных функций или макросов, а
можно подсвечивать некорректно введенные данные прямо в процессе заполнения формы, оперативно
сигнализируя об ошибке пользователю. Для этого:
1. Выделите поля ввода, где нужна проверка на лишние пробелы (желтые ячейки в нашем примере).
2. Выберите на Главной вкладке команду Условное форматирование – Создать правило (Home –
Conditional Formatting – Create Rule).
3. Выберите тип правила Использовать формулу для определения форматируемых ячеек (Use formula to
determine which cells to format) и введите в поле следующую формулу:

198

Николай Павлов

где D4 – адрес текущей ячейки (без знаков «$»). В английской версии это будет соответственно =G4TRIM(G4)
Функция СЖПРОБЕЛЫ (TRIM) убирает из текста лишние пробелы. Если оригинальное содержимое текущей
ячейки не равно «причесанному» с помощью функции СЖПРОБЕЛЫ, значит, в ячейке есть лишние пробелы.
Тогда происходит заливка поля ввода цветом, который можно выбрать, нажав на кнопку Формат (Format).
Теперь при забивании лишних пробелов «для красоты» наши поля ввода будут подсвечиваться красным,
намекая пользователю, что он не прав:

199

Microsoft Excel: Готовые решения – бери и пользуйся!

Полосатая заливка строк таблицы «зеброй»
Полосатая заливка «зеброй» – весьма популярный и удобный для просмотра вид оформления таблиц:

В Excel есть несколько способов быстрого создания такого дизайна.

Способ 1. Форматировать как таблицу
Выделите ваш диапазон с данными, нажмите кнопку Форматировать как таблицу (Format as Table) на вкладке
Главная (Home) и примените один из встроенных стилей с полосатым дизайном:

При необходимости можно в том же списке стилей выбрать внизу команду Создать стиль таблицы (New Table
Style) и настроить свой вариант, где «зебра» будет чередоваться не через строку, а через две или три и т.д.

200

Николай Павлов

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


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

Если эти функции вам не нужны, то можно превратить Таблицу обратно в обычный диапазон, оставив при этом
созданный полосатый дизайн. Для этого воспользуйтесь кнопкой Преобразовать в диапазон (Convert to Range)
на вкладке Конструктор (Design).

Способ 2. Условное форматирование
Этот способ универсален – им можно воспользоваться в любой версии Excel. Он основан на использовании
функции условного форматирования для заливки четных и нечетных строк разным цветом.
Выделите ячейки таблицы (кроме «шапки») и нажмите кнопку Условное форматирование (Conditional
Formatting) на вкладке Главная (Home). Выберите команду Создать правило (New Rule), затем в открывшемся
окне задайте последний тип правила Использовать формулу для определения форматируемых ячеек (Use a
formula to determine which cells to format).
В появившееся поле впишите следующую формулу:

201

Microsoft Excel: Готовые решения – бери и пользуйся!

Или в английской версии =MOD(ROW();2)=0
Эта формула берет номер текущей строки (функция СТРОКА), делит его на 2 и проверяет остаток от деления
(функция ОСТАТ). Если он равен нулю, т.е. номер строки четный, то происходит форматирование ячейки (не
забудьте нажать кнопку Формат и задать цвет шрифта или заливку).
Если необходимо залить не каждую 2-ю, а, скажем, каждую 5-ю строку, то просто измените в этой формуле
цифру 2 на 5.

202

Николай Павлов

Заливка ячеек в шахматном порядке
Этот способ представляет собой вариацию второго способа из предыдущего пункта.
Выделите диапазон ячеек, которые хотите залить, и выберите на Главной вкладке Условное форматирование –
Создать правило (Home – Conditional Formatting – New Rule). В открывшемся окне выберите тип правила
Использовать формулу для определения форматируемых ячеек (Use formula to determine which cells to
format) и введите в поле следующую формулу:

Или в англоязычном варианте =MOD(ROW();2)=MOD(COLUMN();2)
Функции СТРОКА() и СТОЛБЕЦ() определяют номер строки и столбца для каждой ячейки в диапазоне, а функция
ОСТАТ вычисляет остаток от деления этих номеров на 2. Если эти остатки равны друг другу, то срабатывает
заливка цветом, который можно выбрать, нажав на кнопку Формат (Format).

203

Microsoft Excel: Готовые решения – бери и пользуйся!

Вставка печатной подложки
В Microsoft Word есть весьма полезная в некоторых случаях функция – вставка печатной подложки, т.е.
полупрозрачной фоновой картинки или текста под содержимым на каждой странице документа (вкладка
Дизайн – Подложка):

В Excel нет такого встроенного функционала, но можно достаточно легко реализовать что-то подобное своими
силами при необходимости.
Переключитесь в режим разметки страницы с помощью кнопки Разметка страницы на вкладке Вид (View –
Page Break View) или кнопки в правом нижнем углу окна:

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

и нажмите затем кнопку Рисунок (Picture) на появившейся вкладке Работа с колонтитулами: Конструктор
(Header & Footer : Design). Выберите картинку для вставки из предложенного набора источников:

204

Николай Павлов

После выбора файла временно будет видно не само изображение, а его текстовое поле. Чтобы опустить
картинку пониже, введите перед ним несколько пустых абзацев клавишей Enter:

Настроить параметры вставленной картинки можно с помощью кнопки Формат рисунка (Picture Format),
которая откроет соответствующее диалоговое окно:

205

Microsoft Excel: Готовые решения – бери и пользуйся!

В частности, на вкладке Размер (Size) можно поиграть масштабом вставленной картинки, а на вкладке Рисунок
(Picture) – цветностью.
Если нужно сделать подложку с текстом, то придется его сначала создать:
1. Добавьте в книгу новый лист для временного размещения текста.
2. Уберите с него сетку, отключив флажок Сетка на вкладке Вид (View – Grid).
3. Вставьте текст, используя кнопку WordArt на вкладке Вставка (Insert – WordArt), и отформатируйте его
(поверните на нужный угол, задайте цвет, шрифт и т.д.).
4. Теперь нам нужно сделать скриншот фрагмента экрана с надписью и сохранить его как графический
файл. Это можно сделать с помощью стандартной программы Ножницы, входящей в состав Windows.

Полученный графический файл можно вставить в подложку так же, как было описано выше:
206

Николай Павлов

207

Microsoft Excel: Готовые решения – бери и пользуйся!

Нестандартные форматы ячеек
Microsoft Excel предлагает пользователю большой набор встроенных числовых форматов на разные случаи,
которые можно настроить через окно Формат ячейки (Format Cells), нажатием на Ctrl+1 или прямо с вкладки
Главная (Home):

Тем не менее иногда возникают ситуации, когда этих форматов недостаточно и требуется применить к ячейкам
нестандартные форматы (например, «кг», «чел.», градусы температуры «°C», «тыс. руб.» и т.д.).
Это можно легко реализовать. Для этого выделите ячейки, к которым надо применить пользовательский
формат, и нажмите сочетание клавиш Ctrl+1 или щелкните по ним правой кнопкой мыши и выберите в
контекстном меню команду Формат ячеек (Format Cells) – вкладка Число (Number), далее – Все форматы
(Custom):

208

Николай Павлов

В появившееся справа поле Тип введите маску нужного вам формата из последнего столбца этой таблицы:

209

Microsoft Excel: Готовые решения – бери и пользуйся!

Microsoft Excel использует несколько спецсимволов в масках форматов:



0 (ноль) – одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено
цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет
выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу
1,3456 применить маску 0,00 – получится 1,35;
# (решетка) – одно необязательное знакоместо – примерно то же самое, что и ноль, но если для
знакоместа нет числа, то ничего не выводится;
(пробел) – используется как разделитель групп разрядов по три между тысячами, миллионами,
миллиардами и т.д.;
[красный] – в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено
использовать только следующие цвета: черный, белый, красный, синий, зеленый, желтый, голубой.

Плюс пара простых правил:

Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы)
надо обязательно заключать в кавычки.
Можно указать несколько (до 4-х) разных масок форматов через точку с запятой. Тогда первая из масок
будет применяться к ячейке, если число в ней положительное, вторая – если отрицательное, третья –
если содержимое ячейки равно нулю, и четвертая – если в ячейке не число, а текст (см. выше пример с
температурой).
Спецсимволы-разделители между целой и дробной частью и тысячные (числа по три) Excel берет из
региональных настроек компьютера. Посмотреть и настроить их можно в Панели управления, пункт
Язык и региональные настройки (Control Panel – Regional & Language Settings).

210

Николай Павлов

Маркированный и нумерованный списки
В Microsoft Word есть замечательная команда Список на вкладке Главная (Home – Bullets and Numbering),
позволяющая быстро превратить набор абзацев в маркированный или нумерованный список. Быстро, удобно,
наглядно, не надо следить за нумерацией. В Excel такой функции нет, но можно попробовать ее имитировать с
помощью несложных формул и форматирования.

Маркированный список форматированием
Выделите ячейки с данными для списка, щелкните по ним правой кнопкой мыши и выберите Формат ячеек
(Format Cells), вкладка Число (Number), далее – Все форматы (Custom). Затем в поле Тип введите следующую
маску пользовательского формата:

Для ввода жирной точки можно воспользоваться сочетанием клавиш Alt+0149 (удерживая Alt, набрать 0149 на
цифровой клавиатуре).
Символ @ подразумевает собой введенный в ячейку текст, перед которым и будет отображаться наш маркер.

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

211

Microsoft Excel: Готовые решения – бери и пользуйся!

Технически, эта формула проверяет содержимое соседней справа ячейки (функции ЕСЛИ и ЕПУСТО), и если
соседняя ячейка пустая, то выводит пустую строку либо количество непустых ячеек (функция СЧЁТЗ) от начала
списка до текущей ячейки, т.е. порядковый номер.
В английской версии Excel эта формула выглядит как =IF(ISBLANK(F1);»»;COUNTA($F$1:F1))

SmartArt
Еще один вариант создания списка на листе Excel – графические объекты SmartArt. Это не совсем полноценный
способ, т.к. текст не будет физически храниться в ячейках листа и адресоваться к нему в формулах, например,
невозможно. Но если задача только в том, чтобы сделать красивый список, то этот способ вполне сгодится.
Чтобы вставить такой объект, перейдите на вкладку Вставка и воспользуйтесь кнопкой SmartArt (Insert –
SmartArt). В открывшемся списке есть много подходящих вариантов. Например, Вертикальный
маркированный список, который после вставки можно потом наполнить своей информацией:

212

Николай Павлов

Скрытие/отображение ненужных строк и столбцов
Предположим, что у нас имеется вот такая таблица, с которой приходится работать каждый день:

Кому таблица покажется маленькой – мысленно умножьте ее по площади в двадцать раз, добавив еще пару
кварталов и два десятка городов.
Задача – временно убирать с экрана ненужные в данный момент для работы строки и столбцы:


скрывать подробности по месяцам, оставляя только кварталы,
скрывать итоги по месяцам и по кварталам, оставляя только итог за полугодие,
скрывать ненужные в данный момент города (я работаю в Москве – зачем мне видеть Питер?) и т.д.

Способ 1. Скрытие строк и столбцов
Способ, прямо скажем, примитивный и не очень удобный, но два слова про него сказать нужно. Любые
выделенные предварительно строки или столбцы на листе можно скрыть, щелкнув по заголовку столбца или
строки правой кнопкой мыши и выбрав в контекстном меню команду Скрыть (Hide):

Для обратного отображения нужно выделить соседние строки/столбцы и, щелкнув правой кнопкой мыши,
выбрать в меню, соответственно, Отобразить (Unhide).
Проблема в том, что с каждым столбцом и строкой придется возиться персонально, что неудобно и долго.

213

Microsoft Excel: Готовые решения – бери и пользуйся!

Способ 2. Группировка
Если выделить несколько строк или столбцов, а затем выбрать на вкладке Данные – Группировать (Data –
Group), то они будут охвачены прямоугольной скобкой (сгруппированы). Причем группы можно делать
вложенными одна в другую (разрешается до 8 уровней вложенности):

Более удобный и быстрый вариант – использовать для группировки выделенных предварительно строк или
столбцов сочетание клавиш Alt+Shift+стрелка вправо, а для разгруппировки Alt+Shift+стрелка влево,
соответственно.
Такой способ скрытия ненужных данных гораздо удобнее – можно нажимать либо на кнопку со знаком «+» или
«-«, либо на кнопки с цифровым обозначением уровня группировки в левом верхнем углу листа – тогда все
группы нужного уровня будут сворачиваться или разворачиваться сразу.
Кроме того, если в вашей таблице присутствуют итоговые строки или столбцы с функцией суммирования
соседних ячеек, то есть шанс (не 100%-ный, правда), что Excel сам создаст все нужные группировки в таблице
одним движением – с помощью команды Данные – Группировать – Создать структуру (Data – Group – Create
Outline):

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

Способ 3. Скрытие помеченных строк/столбцов макросом
Этот способ, пожалуй, можно назвать самым универсальным. Добавим пустую строку и пустой столбец в начало
нашего листа и отметим любым значком те строки и столбцы, которые мы хотим скрывать:

214

Николай Павлов

Теперь откроем редактор Visual Basic (Alt+F11), вставим в нашу книгу новый пустой модуль (меню Insert –
Module) и скопируем туда текст двух простых макросов:
Sub Hide()
Dim cell As Range
Application.ScreenUpdating = False
For Each cell In ActiveSheet.UsedRange.Rows(1).Cells
If cell.Value = «x» Then cell.EntireColumn.Hidden = True
Next
For Each cell In ActiveSheet.UsedRange.Columns(1).Cells
If cell.Value = «x» Then cell.EntireRow.Hidden = True
Next
Application.ScreenUpdating = True
End Sub
Sub Show()
Columns.Hidden = False
Rows.Hidden = False
End Sub

Как легко догадаться, макрос Hide скрывает, а макрос Show отображает обратно помеченные строки и столбцы.
При желании макросам можно назначить горячие клавиши (сочетание Alt+F8 – кнопка Параметры) либо
создать прямо на листе кнопки для их запуска, используя вкладку Разработчик – Вставить – Кнопка (Developer –
Insert – Button).
Если мы хотим произвести подобное скрытие/отображение на всех листах книги, то в макрос придется
добавить цикл перебора листов:
Sub HideAllSheets()
Dim cell As Range
Application.ScreenUpdating = False
For Each sh in Worksheets()
sh.Activate
For Each cell In ActiveSheet.UsedRange.Rows(1).Cells
If cell.Value = «x» Then cell.EntireColumn.Hidden = True
Next
For Each cell In ActiveSheet.UsedRange.Columns(1).Cells
If cell.Value = «x» Then cell.EntireRow.Hidden = True
Next
Next sh
Application.ScreenUpdating = True
End Sub
Sub ShowAllSheets()
For Each sh in Worksheets()
sh.Activate
Columns.Hidden = False
Rows.Hidden = False
Next sh
215

Microsoft Excel: Готовые решения – бери и пользуйся!
End Sub

216

Николай Павлов

Картинка в примечании к ячейке
Идея этого приема в том, чтобы использовать в примечании к ячейке не текст, как обычно, а фотографии или
рисунки:

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

Способ 1. Одиночная вставка
1. Щелкните по ячейке, в которую будем вставлять примечание, правой кнопкой мыши и выберите в
контекстном меню Добавить примечание (Add Comment).
2. Чтобы примечание во время настройки постоянно не пропадало, щелкните по ячейке правой кнопкой
мыши и выберите команду Отобразить/Скрыть примечание (Show/Hide Comment).
3. Щелкните правой кнопкой мыши по штрихованной рамке вокруг примечания (штриховка при этом
должна превратиться в точки) и выберите в контекстном меню команду Формат примечания (Format
Comment).
В открывшемся окне перейдите на вкладку Цвета и линии (Colors and Lines) и из раскрывающегося списка Цвет
(Color) выберите опцию Способы заливки (Fill Effects):

217

Microsoft Excel: Готовые решения – бери и пользуйся!

4. В появившемся окне перейдите на вкладку Рисунок (Picture) и, щелкнув по кнопке Рисунок (Select
Picture), выберите нужный файл с изображением. Дополнительно можно установить флажок Сохранять
пропорции рисунка (Lock picture aspect ratio).
5. Жмем ОК во всех окнах и, возможно, немного подгоняем размеры примечания, чтобы картинку было
хорошо видно.

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

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

Выглядит все это, допустим, так:

Откройте редактор Visual Basic (сочетание клавиш Alt+F11), вставьте новый пустой модуль (меню Insert –
Module) и введите туда текст этого макроса:
Sub InsertPicturesInComments()
Dim rngPics As Range, rngOut As Range
Dim i As Long, p As String, w As Long, h As Long
Set rngPics = Range(«B1:B5»)
Set rngOut = Range(«A1:A5»)
rngOut.ClearComments

‘диапазон путей к картинкам
‘диапазон вывода примечаний

‘удаляем старые примечания

‘проходим в цикле по ячейкам
For i = 1 To rngPics.Cells.Count
p = rngPics.Cells(i, 1).Value
w = LoadPicture(p).Width
h = LoadPicture(p).Height

‘считываем путь к файлу картинки
‘и ее размеры

With rngOut.Cells(i, 1)
.AddComment.Text Text:=»»
‘создаем примечание без текста
.Comment.Visible = True
.Comment.Shape.Select True
End With
With rngOut.Cells(i, 1).Comment.Shape
‘заливаем картинкой
.Fill.UserPicture p
.ScaleWidth 1, msoFalse, msoScaleFromTopLeft
.ScaleHeight h / w * 1.8, msoFalse, msoScaleFromTopLeft
‘корректируем размеры
End With
Next i
End Sub

Диапазоны с путями к картинкам и названиями (rngPics и rngOut) нужно, естественно, заменить на свои.
Теперь осталось открыть окно управления макросами (Alt+F8) и запустить наш созданный макрос кнопкой
Выполнить (Run). Результат будет примерно такой:
218

Николай Павлов

Отдельно хотелось бы отметить что:


Вставленные в примечания картинки и фотографии будут неизбежно утяжелять файл. При большом
количестве изображений имеет смысл их заранее обработать (сжать до нужных размеров,
оптимизировать цветовую гамму и разрешение) с помощью специальных программ.
Отобразить или скрыть сразу все примечания можно на вкладке Рецензирование – Показать все
примечания (Review – Show all comments).
Удалить все примечания из выделенных ячеек можно на вкладке Главная – Очистить – Примечания
(Home – Clear – Comments).

219

Microsoft Excel: Готовые решения – бери и пользуйся!

Сумма ячеек по цвету
Помечать ячейки цветом, используя заливку или цвет шрифта, – очень удобно и наглядно (если вы не
дальтоник, конечно). Трудности возникают, когда по такой раскрашенной таблице появляется необходимость
сделать отчет. И если фильтровать и сортировать по цвету в последних версиях Excel научился, то суммировать
по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток, можно использовать несложную пользовательскую функцию
на Visual Basic, которая позволит нам суммировать ячейки с определенным цветом.
Откройте редактор Visual Basic на вкладке Разработчик (Developer). Если такой вкладки у вас не видно, то
включите ее в настройках Файл – Параметры – Настройка ленты (File – Options – Customize Ribbon).
В окне редактора вставьте новый модуль через меню Insert – Module и введите туда текст вот такой функции:
Public Function SumByColor(DataRange As Range, ColorSample As Range) As Double
Dim Sum As Double
Application.Volatile True
For Each cell In DataRange
If cell.Interior.Color = ColorSample.Interior.Color Then
Sum = Sum + cell.Value
End If
Next cell
SumByColor = Sum
End Function

Если теперь вернуться в Excel, то в Мастере функций (Вставка – Функция) в появившейся там категории
Определенные пользователем (User Defined) можно найти нашу функцию и вставить ее на лист:

У нее два аргумента:

DataRange – диапазон раскрашенных ячеек с числами,
ColorSample – ячейка, цвет которой принимается как образец для суммирования.

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

Количество вместо суммы
Если вам нужно подсчитывать не сумму покрашенных определенным цветом ячеек, а всего лишь их количество,
то наша функция будет еще проще. Замените в ней седьмую строку с:
Sum = Sum + cell.Value

на
220

Николай Павлов
Sum = Sum + 1

Нюансы пересчета
К сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением ее
содержимого, поэтому не запускает пересчет формул. Т.е. при перекрашивании исходных ячеек с числами в
другие цвета итоговая сумма по нашей функции пересчитываться не будет.
Полностью решить эту проблему невозможно, но можно ее существенно облегчить. Для этого в третьей строке
нашей функции используется команда Application.Volatile True. Она заставляет Excel пересчитывать результаты
нашей функции при изменении любой ячейки на листе (или по нажатию F9).
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange, и не
задавайте в качестве первого аргумента целый столбец – Excel «задумается» надолго.

221

Microsoft Excel: Готовые решения – бери и пользуйся!

Подсветка ячеек с формулами и без
Иногда возникают ситуации, где неплохо было бы иметь на листе автоматическое выделение ячеек с
формулами и без них (т.е. с константами) разным цветом, например:

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

Рассмотрим пару способов реализации такой подсветки.

Способ 1. Выделение по условию
Выделите диапазон с данными и выберите на вкладке Главная команду Найти и выделить – Выделение
группы ячеек (Home – Find & Select – Go To Special). Откроется диалоговое окно, при помощи которого можно
выделять ячейки по заданному условию:

Нам нужен будет переключатель Константы (Constants) или Формулы (Formulas), в зависимости от задачи.
После нажатия на ОК в нашем изначальном диапазоне на листе останутся выделенными только ячейки с
константами или формулами. Теперь можно применить заливку этих ячеек для наглядности любым цветом.

Способ 2. Условное форматирование и макрофункция
В Excel 2013 появилась встроенная функция, умеющая определять тип содержимого ячейки – ЕФОРМУЛА
(ISFORMULA). Она выдает логическое значение ИСТИНА (TRUE), если в ячейке формула, или ЛОЖЬ (FALSE), если
в ячейке константа.
В более ранних версиях Excel такой функции нет, но мы можем восполнить этот недостаток, написав ее своими
силами на VBA.
Откройте редактор Visual Basic с помощью вкладки Разработчик – Visual Basic (Developer – Visual Basic),
добавьте новый пустой модуль через меню Insert – Module и вставьте туда текст нашей функции:
Public Function ISFORMULA(cell As Range) As Boolean
ISFORMULA = cell.HasFormula
End Function

222

Николай Павлов

Эта функция проверяет свойство HasFormula указанной в качестве аргумента ячейки и выдает логическое
значение ИСТИНА или ЛОЖЬ соответственно. Использовать эту функцию для выделения цветом можно в связке
с условным форматированием. Для этого:
1. Выделите исходный диапазон данных.
2. Выберите на вкладке Главная – Условное форматирование – Создать правило (Home – Conditional
Formatting – New Rule).
3. В открывшемся окне выберите последний тип правила Использовать формулу для определения
форматируемых ячеек (Use formula to determine which cells to format).
4. Введите формулу проверки, используя созданную ранее функцию ISFORMULA или (если у вас Excel 2013)
стандартную функцию ЕФОРМУЛА (ISFORMULA), и задайте форматирование при помощи кнопки
Формат (Format):

Обратите внимание на то, что в качестве аргумента функции указан относительный (без знака $) адрес первой
выделенной ячейки в диапазоне.
После применения созданного правила все ячейки с формулами в выделенном диапазоне будут залиты цветом:

Проверить себя можно, кстати, при помощи кнопки Показать формулы (Show Formulas) на вкладке Формулы
(Formulas):

223

Microsoft Excel: Готовые решения – бери и пользуйся!

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

224

Николай Павлов

Пометка элементов списка флажками (галочками)
Имеем на листе список чего-либо. Хотелось бы иметь возможность удобной отметки выбранных элементов для
последующего их отбора. Примерно так:

Ставить флажок будем одинарным щелчком по ячейке в столбце А, а снимать – двойным.
Чтобы реализовать подобное, щелкните правой кнопкой мыши по ярлычку листа, где находится список, и
выберите в контекстном меню Исходный текст (Source Code). Вы должны попасть в редактор Visual Basic, в
пустой модуль текущего листа. Вставьте туда этот код:
‘Ставим флажок, если был одиночный щелчок по ячейке
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(«A2:A100»)) Is Nothing Then
Application.EnableEvents = False
Target.Font.Name = «Marlett»
Target = «a»
Application.EnableEvents = True
End If
End Sub
‘Снимаем флажок, если был двойной щелчок по ячейке
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range(«A2:A100»)) Is Nothing Then
Application.EnableEvents = False
Cancel = True
Target.ClearContents
Application.EnableEvents = True
End If
End Sub

Первая половина кода проверяет, не было ли одиночного щелчка по ячейкам в диапазоне A2:A100, и если был –
то ставит «галочку» – знак, который в шрифте Marlett находится на букве «а». Вторая половина этого кода
снимает флажок при двойном щелчке по ячейке. При необходимости замените в этих макросах «A2:A100» на
ваш диапазон.
Все! Закройте редактор Visual Basic и попробуйте, как это работает.
При необходимости подсчитать количество помеченных элементов всегда можно использовать простую
формулу, которая подсчитывает количество ячеек с буквой «а» в нашем диапазоне (на рисунке это ячейка H2):
=СЧЁТЕСЛИ(A2:A100;»a»)
Или в английской версии:
=COUNTIF(A2:A100;»a»)
Если надо, чтобы пользователь мог пометить только один элемент из списка, то код упрощается – достаточно
всего одного макроса:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
225

Microsoft Excel: Готовые решения – бери и пользуйся!
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(«A2:A100»)) Is Nothing Then
Application.EnableEvents = False
Range(«A2:A100»).ClearContents
Target.Font.Name = «Marlett»
Target = «h»
Application.EnableEvents = True
End If
End Sub

Этот макрос сначала полностью очищает наш столбец А, а потом вводит в текущую ячейку букву «h», которая в
шрифте Marlett даст нам характерный символ выбора по типу «один из» – жирную точку. Два таких символа
поставить, таким образом, не получится – доступен будет только выбор одного элемента из списка. Чтобы
извлечь выбранный элемент, можно использовать стандартную функцию ВПР (VLOOKUP), которая будет искать
символ точки (т.е. букву «h») в первом столбце нашей таблицы и, найдя, выдавать фамилию из второго:

226

Николай Павлов

Редактирование

Г

юстав Флобер как-то сказал: «Дьявол прячется в мелочах». Эта глава как раз и посвящена
тем самым мелочам, на которых порой в сумме за день теряется огромное количество
времени, сил и внимания. Ежедневные микрозадачи, выполняемые вручную, хотя можно
было бы поручить их Excel.
В этой главе мы научимся:

Быстро выделять диапазоны без мыши, не устраивая «кёрлинг» по листу туда-сюда.

Объединять два столбца с данными в один.

Редактировать сразу несколько рабочих листов в книге Excel.

Копировать только видимые ячейки и вставлять только в отфильтрованные строки.

Эффективно использовать копирование и специальную вставку.

Превращать строки в столбцы и обратно.

227

Microsoft Excel: Готовые решения – бери и пользуйся!

Быстрое выделение диапазонов и навигация
Подумайте не спеша и прикиньте – какое действие, работая в Microsoft Excel, вы делаете чаще всего? Ввод
формул? Автосумма? Построение диаграмм?
Выделение ячеек!!!
Почти любая операция в Excel начинается с выделения диапазона. Проблема в том, что большинство
пользователей знают всего 1-2 способа это сделать, кроме классического «нажать и протянуть». Давайте
расширим ваш набор.

Быстрое перемещение по листу
Как известно, стрелки на клавиатуре перемещают вас на соседние ячейки. Если же одновременно с ними
удерживать Ctrl, то перемещаться вы будете в соответствующем направлении «до упора» – до первой пустой
ячейки.
Для перемещения в начало листа (ячейка А1) можно нажать Ctrl+Home, а для быстрого перепрыгивания к
последней занятой ячейке на листе (т.е. в правый нижний угол) сочетание Ctrl+End.

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

Выделение «до упора»
Если одновременно со стрелками нажимать Ctrl и Shift, то Excel будет выделять область до первой пустой
ячейки влево, вправо, вверх или вниз. Так можно быстро выделить, например, строку или столбец в таблице.

Текущая область
Если нажать сочетание Ctrl+A, то будет выделена текущая область – диапазон от текущей ячейки до первых
пустых столбцов или строк, эдакий островок данных.

От начала до конца
Большие диапазоны лучше выделять так:
1. Ставим активную ячейку в начало будущего выделения.
2. Перематываем к концу диапазона, который хотим выделить.
3. Щелкаем по последней ячейке нужной нам области, удерживая Shift.

228

Николай Павлов

Автоподбор ширины столбцов
Ширину столбцов можно менять вручную, перетаскивая разделительную линию между буквами столбцов:

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

Тогда можно пойти немного другим путем. Выделить ячейки, для которых надо выполнить автоподбор ширины
(в нашем примере это A4:I16), и выбрать на вкладке Главная команду Формат – Автоподбор ширины столбца
(Home – Format – Autofit Column Width):

229

Microsoft Excel: Готовые решения – бери и пользуйся!

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

…или клавиши Shift (подряд):

230

Николай Павлов

Быстрое копирование формул и смарт-теги
Если вы ввели формулу в первую ячейку вычисляемого столбца и хотите скопировать ее теперь на весь столбец,
то у вас есть несколько вариантов:

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

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

Выделить ячейку с формулой, скопировать ее (Ctrl+C), затем выделить ячейки, куда нужно вставить
формулу, и произвести обычную (Ctrl+V) или специальную вставку (Ctrl+Alt+V).
Минус в необходимости выделять. Плюсы в том, что можно использовать дополнительные возможности
специальной вставки, и в том, что можно вставлять в диапазон любого размера, а не только в строку или
столбец.

После вставки любым способом в правом нижнем углу вставленного диапазона на некоторое время появляется
небольшой прямоугольный значок – смарт-тег Параметры автозаполнения (Autofill Options):

Его легко не заметить или проигнорировать, но зачастую он скрывает много полезных дополнительных
«фишек». В частности, очень часто при копировании нарушается дизайн таблиц, т.к. Excel по умолчанию
копирует не только контент, но и формат ячейки. Чтобы этого избежать, можно выбрать опцию Заполнить
только значения (Fill Without Formatting):

231

Microsoft Excel: Готовые решения – бери и пользуйся!

232

Николай Павлов

Слияние данных из двух столбцов в один

Имеем два столбца с взаимно не пересекающимися данными в ячейках. Необходимо объединить данные из
двух столбцов в один (например, для дальнейших вычислений и т.п.). Можно начать думать про формулы или
даже макросы, но есть способ проще и элегантнее.
Выделяем ячейки во втором столбце (Расход на рисунке) и, щелкнув по ним правой кнопкой мыши, выбираем
команду Копировать (Copy) (или нажать сочетание клавиш Ctrl+C).
Выделяем ячейки в первом столбце и, щелкнув по ним правой кнопкой мыши, выбираем команду Специальная
вставка (Paste Special). Можно также воспользоваться сочетанием клавиш Ctrl+Alt+V. В открывшемся окне
параметров специальной вставки включаем флажок Пропускать пустые ячейки (Skip Blanks) и жмем ОК:

Скопированные из второго столбца данные вставятся в первый. При этом пустые ячейки из второй колонки
будут пропущены при вставке и не затрут значения из первого столбца. Останется удалить ненужный более
второй столбец и все.
233

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Способ 1. Специальная вставка
Выделяем и копируем исходную таблицу (правой кнопкой мыши – Копировать). Затем щелкаем правой
кнопкой мыши по пустой ячейке, куда хотим поместить повернутую таблицу, и выбираем из контекстного меню
команду Специальная вставка (Paste Special). В открывшемся диалоговом окне ставим галочку
Транспонировать (Transpose) и жмем ОК.

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

Способ 2. Функция ТРАНСП
Выделяем нужное количество пустых ячеек (т.е. если, например, исходная таблица была из 3 строк и 5
столбцов, то выделить обязательно нужно диапазон из 5 строк и 3 столбцов) и вводим в первую ячейку
функцию ТРАНСП (TRANSPOSE) из категории Ссылки и массивы (Lookup and Reference):

234

Николай Павлов

После ввода функции необходимо нажать не Enter, а Ctrl+Shift+Enter, чтобы ввести ее сразу во все выделенные
ячейки как формулу массива.
Плюсы: между таблицами сохраняется связь, т.е. изменения в первой таблице тут же отражаются во второй.
Минусы: не сохраняется форматирование, пустые ячейки из первой таблицы отображаются в виде нулей во
второй, нельзя редактировать отдельные ячейки во второй таблице, поскольку формулу массива можно менять
только целиком.

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


Функция АДРЕС(номер_строки; номер_столбца) – выдает адрес ячейки по номеру строки и столбца на
листе, т.е. АДРЕС(2;3) выдаст, например, ссылку на ячейку C2.
Функция ДВССЫЛ(ссылка_в_виде_текста) – преобразует текстовую строку, например, «F3» в настоящую
ссылку на ячейку F3.
Функции СТРОКА(ячейка) и СТОЛБЕЦ(ячейка) – выдают номер строки и столбца для заданной ячейки,
например =СТРОКА(A3) выдаст 1, а =СТОЛБЕЦ(А3) выдаст 3.

Теперь соединяем эти функции, чтобы получить нужную нам ссылку, т.е. вводим в любую свободную ячейку вот
такую формулу:
=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))
В английской версии Excel это будет =INDIRECT(ADDRESS(COLUMN(A1);ROW(A1)))
А затем копируем (протягиваем) формулу на соседние ячейки, как обычно, черным крестом. В итоге должно
получиться примерно следующее:

235

Microsoft Excel: Готовые решения – бери и пользуйся!

Т.е. при копировании формулы вниз по столбцу она выдает ссылку, которая уходит вправо по строке, и
наоборот. Что и требовалось.
Плюсы: сохраняются связи между таблицами, можно легко вносить изменения во вторую таблицу.
Минусы: форматирование не сохраняется, но его можно легко воспроизвести Специальной вставкой (вставить
только Формат с флажком Транспонировать).

236

Николай Павлов

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

приведет после вставки вот к таким громадным последствиям:

А все потому, что в исходном диапазоне были скрытые группировкой строки, которые Excel тоже услужливо
скопировал и потом вставил.
Как же обойти эту трудность?
Выделите исходный диапазон и выберите на вкладке Главная – Найти и выделить – Выделение группы ячеек
(Home – Find & Select – Go to Special). В появившемся диалоговом окне поставьте переключатель в положение
Только видимые ячейки (Visible cells only) и нажмите ОК.

237

Microsoft Excel: Готовые решения – бери и пользуйся!

После этих действий в выделенном до этого диапазоне останутся выделены только видимые ячейки, т.е.
скрытые ячейки больше не попадают в «общий котел». Теперь останется только скопировать диапазон обычным
образом (правой кнопкой мыши – Копировать или Ctrl +C) и вставить в любое нужное вам место.

238

Николай Павлов

Вставка в отфильтрованные строки
Весьма распространенная ситуация, вопрос про которую мне задают почти на каждом тренинге. Есть таблица, в
которой фильтром (вкладка Данные – Фильтр) отобраны несколько строк. Задача – вставить какие-либо
нужные нам значения именно в видимые отфильтрованные строки, пропуская при этом скрытые. Обычное
копирование-вставка при этом не сработает, т.к. данные вставятся не только в видимые, но и в скрытые ячейки.
Давайте посмотрим, как можно обойти эту проблему.

Способ 1. Вставка одинаковых значений или формул
Если вам нужно вставить одни и те же значения во все отфильтрованные строки списка, то все просто.
Предположим, что у нас есть вот такой список сделок:

…и в нем нужно поставить фиксированную скидку в 1000 рублей каждому «Ашану».
Фильтруем наш список Автофильтром, оставляя на экране только «Ашаны». Вводим нужное значение в первую
ячейку и делаем автозаполнение (копируем за правый нижний угол ячейки) вниз:

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

239

Microsoft Excel: Готовые решения – бери и пользуйся!

Такой способ подойдет и для ввода значений, и для ввода формул. Например, если скидка для «Ашанов» не
фиксированная, а составляет 10% от суммы сделки, то в первую отфильтрованную строку можно ввести не
константу (1000), а формулу (=C2*10%) и также скопировать вниз.

Способ 2. Макрос вставки любых значений
Другое дело, если вам необходимо вставить в отфильтрованные ячейки не одинаковые значения или формулы,
а разные, да еще и брать их из другого диапазона. Тогда придется использовать несложный макрос. Нажмите
сочетание клавиш Alt+F11, в открывшемся окне Visual Basic вставьте новый пустой модуль через меню Insert –
Module и введите туда этот код:
Sub PasteToVisible()
Dim copyrng As Range, pasterng As Range
Dim cell As Range, i As Long
‘запрашиваем у пользователя по очереди диапазоны копирования и вставки
Set copyrng = Application.InputBox(«Диапазон копирования», «Запрос», Type:=8)
Set pasterng = Application.InputBox(«Диапазон вставки», «Запрос», Type:=8)
‘проверяем, чтобы они были одинакового размера
If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count copyrng.Cells.Count Then
MsgBox «Диапазоны копирования и вставки разного размера!»,vbCritical
Exit Sub
End If
‘переносим данные из одного диапазона в другой только в видимые ячейки
i = 1
For Each cell In pasterng
If cell.EntireRow.Hidden = False Then
cell.Value = copyrng.Cells(i).Value
i = i + 1
End If
Next cell
End Sub

Как легко сообразить, макрос запрашивает у пользователя по очереди два диапазона – копирования и вставки.
Затем проверяет, чтобы их размеры совпадали, т.к. разница в размерностях вызовет впоследствии ошибку при
вставке. Затем макрос перебирает все ячейки в диапазоне вставки и переносит туда данные из диапазона
копирования, если строка видима (т.е. не отфильтрована).
240

Николай Павлов

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

Какие бывают ссылки в формулах Excel.

Как правильно копировать формулы и заменять их на константы при необходимости.

Как быстро находить и исправлять ошибки в сложных формулах (особенно если не вы их
автор!).

Что такое именованные диапазоны и как они могут помочь при вводе формул.

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

241

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Относительные ссылки
Это обычные ссылки в виде «буква столбца – номер строки» (А1, С5, т.е. «морской бой»), встречающиеся в
большинстве файлов Excel. Их особенность в том, что они смещаются при копировании формул. Т.е. C5,
например, превращается в С6, С7 и т.д. при копировании вниз или в D5, E5 и т.д. при копировании вправо и т.д.
В большинстве случаев это нормально и как раз на руку пользователю:

Смешанные ссылки
Иногда тот факт, что ссылка в формуле при копировании «сползает» относительно исходной ячейки, бывает
нежелательным. Тогда для закрепления ссылки используется знак доллара ($), позволяющий зафиксировать то,
перед чем он стоит. Таким образом, например, ссылка $C5 не будет изменяться по столбцам (т.е. С никогда не
превратится в D, E или F), но может смещаться по строкам (т.е. может сдвинуться на $C6, $C7 и т.д.). Аналогично
C$5 не будет смещаться по строкам, но может «гулять» по столбцам. Такие ссылки называют смешанными:

Абсолютные ссылки
Ну, а если к ссылке дописать оба доллара сразу ($C$5) – она превратится в абсолютную и не будет меняться
никак при любом копировании, т.е. долларами фиксируются намертво и строка, и столбец:

242

Николай Павлов

Самый простой и быстрый способ превратить относительную ссылку в абсолютную или смешанную – это
выделить ее в формуле и несколько раз нажать на клавишу F4. Эта клавиша гоняет по кругу все четыре
возможных варианта закрепления ссылки на ячейку: C5 → $C$5 → $C5 → C$5 и все сначала.

Действительно абсолютные ссылки
С абсолютными ссылками, думаю, все просто и понятно. Но, как всегда, есть одно «но».
Предположим, мы хотим сделать абсолютную ссылку на ячейку С5. Такую, чтобы она ВСЕГДА ссылалась на С5
вне зависимости от любых дальнейших действий пользователя. Выясняется забавная вещь – даже если сделать
ссылку абсолютной (т.е. $C$5), то она все равно меняется в некоторых ситуациях. Например, если удалить
третью и четвертую строки, то она изменится на $C$3. Если вставить столбец левее С, то она изменится на D.
Если вырезать ячейку С5 и вставить в F7, то она изменится на F7 и так далее. А если мне нужна действительно
жесткая ссылка, которая всегда будет ссылаться на С5 и ни на что другое при любых обстоятельствах или
действиях пользователя?
Решение заключается в использовании функции ДВССЫЛ (INDIRECT), которая формирует ссылку на ячейку из
текстовой строки. Нужно ввести в ячейку формулу:
=ДВССЫЛ(«C5»)
или в англоязычном варианте =INDIRECT(«C5»)

Такая формула всегда будет указывать на ячейку с адресом C5 – вне зависимости от любых дальнейших
действий пользователя, вставки или удаления строк и т.д. Единственная небольшая сложность состоит в том,
что если целевая ячейка пустая, то ДВССЫЛ выводит 0, что не всегда удобно. Однако это можно легко обойти,
используя чуть более сложную конструкцию с проверкой через функцию ЕПУСТО (ISEMPTY):
=ЕСЛИ(ЕПУСТО(ДВССЫЛ(«C5″));»»;ДВССЫЛ(«C5»))
или в англоязычном варианте:
=IF(ISBLANK(INDIRECT(«C5″));»»;INDIRECT(«C5»))
243

Microsoft Excel: Готовые решения – бери и пользуйся!

Зачем нужен стиль ссылок R1C1 в формулах
«У меня в Excel, в заголовках столбцов листа появились цифры (1,2,3…) вместо обычных букв
(A,B,C…)! Все формулы превратились в непонятную кашу с буквами R и С! Что делать???
Помогите!»
Этот вопрос я слышу почти на каждом тренинге, да и на нашем форуме (www.planetaexcel.ru/forum/) он
всплывает с завидной периодичностью. Давайте, наконец, разберемся – что же это за хитрый режим ссылок,
как с ним бороться и для чего он, собственно говоря, вообще предназначен.

Что это
Классическая и всем известная система адресации к ячейкам листа в Excel представляет собой сочетание буквы
столбца и номера строки. «Морской бой» или шахматы используют ту же идею для обозначения клеток доски.
Третья сверху во втором столбце ячейка, например, будет иметь адрес B3. Иногда такой стиль ссылок еще
называют «стилем А1». В формулах адреса могут использоваться с разным типом ссылок: относительными
(просто B3), абсолютными ($B$3) и смешанного закрепления ($B3 или B$3). Если с долларами в формулах не
очень понятно, то очень советую прочитать предыдущий пункт про разные типы ссылок, прежде чем
продолжать.
Однако же существует еще и альтернативная малоизвестная система адресации, называемая «стилем R1C1». В
этой системе и строки, и столбцы обозначаются цифрами. Адрес ячейки B3 в такой системе будет выглядеть как
R3C2 (R=row=строка, C=column=столбец). Относительные, абсолютные и смешанные ссылки в такой системе
можно реализовать при помощи конструкций типа:







RC – относительная ссылка на текущую ячейку
R2C2 – то же самое, что $B$2 (абсолютная ссылка)
RC5 – ссылка на ячейку из пятого столбца в текущей строке
RC[-1] – ссылка на ячейку из предыдущего столбца в текущей строке
RC[2] – ссылка на ячейку, отстоящую на два столбца правее в той же строке
R[2]C[-3] – ссылка на ячейку, отстоящую на две строки ниже и на три столбца левее от текущей ячейки
R5C[-2] – ссылка на ячейку из пятой строки, отстоящую на два столбца левее текущей ячейки
и т.д.

Ничего суперсложного, просто слегка необычно.

Как это включить/отключить
Мало кто использует этот режим осознанно. Обычно он случайно включается сам, например, при открытии
кривых выгрузок из 1С в Excel и в некоторых других ситуациях. Отключить его совсем несложно. Самый простой
путь – с помощью вкладки Файл – Параметры Excel – Формулы – Стиль ссылок R1C1 (File – Excel Options –
Formulas – R1C1-style)

244

Николай Павлов

Если вам приходится делать это часто, то имеет смысл создать простой макрос, переключающий эти два
режима туда-обратно. Откройте редактор Visual Basic, нажав сочетание Alt+F11 или нажав на вкладке
Разработчик кнопку Visual Basic (Developer – Visual Basic). Вставьте новый модуль (меню Insert – Module) и
введите туда текст нашего макроса:
Sub ChangeRefStyle()
If Application.ReferenceStyle = xlA1 Then
Application.ReferenceStyle = xlR1C1
Else
Application.ReferenceStyle = xlA1
End If
End Sub

Если потом вернуться в Excel, то можно нажать кнопку Макросы на вкладке Разработчик и воспользоваться
кнопкой Параметры, чтобы назначить созданный макрос на сочетание клавиш для быстрого запуска (Developer
– Macros – Options).

Где режим R1C1 может быть полезен
А вот это правильный вопрос. «Если звезды зажигают, то это кому-нибудь нужно!» Есть несколько ситуаций,
когда режим ссылок R1C1 удобнее, чем классический режим А1:

При проверке формул и поиске ошибок в таблицах иногда гораздо удобнее использовать режим
ссылок R1C1, потому что в нем однотипные формулы выглядят не просто похоже, а абсолютно
одинаково. Сравните, например, одну и ту же таблицу в режиме отладки формул (CTRL+~) в двух
вариантах адресации:

245

Microsoft Excel: Готовые решения – бери и пользуйся!

Найти ошибку в режиме R1C1 намного проще, правда?


Если большая таблица с данными на вашем листе начинает занимать уже по нескольку сотен строк по
ширине и высоте, то толку от адреса ячейки типа BT235 в формуле немного. Видеть номер столбца в
такой ситуации может быть гораздо полезнее, чем его же буквы.
Некоторые функции Excel, например ДВССЫЛ (INDIRECT), могут работать в двух режимах – A1 или R1C1.
И иногда оказывается удобнее использовать второй.
В коде макросов на VBA часто гораздо проще использовать стиль R1C1 для ввода формул в ячейки, чем
классический A1. Так, например, если нам надо сложить два столбца чисел по десять ячеек в каждом
(A1:A10 и B1:B10), то мы могли бы использовать в макросе простой код:

Range(«C1:C10″).FormulaR1C1=»=RC[-2]*RC[-1]»

т.к. в режиме R1C1 все формулы будут одинаковые.
В классическом же представлении в ячейках столбца С все формулы разные, и нам пришлось бы писать код
циклического прохода по каждой ячейке, чтобы определить для нее формулу персонально, т.е. что-то типа:
For Each cell In Range(«C1:C10»)
cell.Formula = «=» & cell.Offset(0, -2).Address & «*» & cell.Offset(0, -1).Address
Next cell

Весьма существенная разница, не так ли?

246

Николай Павлов

Удобный просмотр формул и результатов одновременно
Предположим, у нас имеется таблица с формулами:

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

Чтобы получить такую красоту, вам нужно сделать всего несколько простых шагов:
1. Создать копию текущего окна книги, нажав на вкладке Вид (View) кнопку Новое окно (New Window).
247

Microsoft Excel: Готовые решения – бери и пользуйся!

2. Разместить оба окна сверху вниз друг под другом, нажав на той же вкладке Вид (View) кнопку
Упорядочить все (Arrange all).
3. Выбрав одно из получившихся окон, перейти в режим просмотра формул, нажав на вкладке Формулы
(Formulas) кнопку Показать формулы (Show Formulas).
Если подобный режим просмотра формул будет нужен часто, то можно использовать пару простых макросов,
которые проделают все вышеперечисленные действия за вас:
‘макрос включения режима просмотра формул
Sub FormulaViewOn()
ActiveWindow.NewWindow
ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlHorizontal
ActiveWindow.DisplayFormulas = True
End Sub
‘макрос выключения режима просмотра формул
Sub FormulaViewOff()
If ActiveWindow.WindowNumber = 2 Then
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
ActiveWindow.DisplayFormulas = False
End If
End Sub

Нажмите сочетание клавиш Alt+F11, чтобы перейти в редактор Visual Basic. Затем создайте новый пустой
модуль через меню Insert – Module и введите туда текст двух вышеприведенных макросов. Первый включает, а
второй отключает наш двухоконный режим просмотра формул. Для запуска макросов можно использовать
сочетание клавиш Alt+F8, затем кнопка Выполнить (Run) или назначить макросам горячие клавиши в том же
окне с помощью кнопки Параметры (Options).

248

Николай Павлов

Отладка формул и поиск ошибок
Представьте, что вы написали большую сложную формулу с несколькими вложенными функциями. Но формула
не работает как нужно и выдает неправильный результат. Вопрос в том, как быстро локализовать проблему и
выявить ту часть формулы, которая работает некорректно.
Или другой вариант: вам прислали чью-то большую и сложную таблицу, в которой вам нужно оперативно
разобраться. Понять, как она работает и по каким принципам считает, найти в ней ошибки и исправить их за
автором.
В обоих случаях нам могут здорово помочь несколько инструментов, сосредоточенных на вкладке Формулы в
группе Зависимости формул (Formulas – Formula Auditing):

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

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

Отображение стрелок зависимостей
Если выделить одну ячейку с формулой, а затем перейти на вкладку Формулы и нажать кнопку Влияющие
ячейки (Formulas – Trace Precedents), то на листе начнут отображаться синие стрелки, наглядно показывающие,
откуда берутся исходные данные для текущей формулы:

249

Microsoft Excel: Готовые решения – бери и пользуйся!

Подобным же образом работает кнопка Зависимые ячейки (Trace Dependents), но она включает отображение
ячеек, которые зависят от текущей, т.е. тех, куда из текущей ячейки передается значение наружу.
Единственный не очень приятный момент – это случай, когда ссылка в формуле ведет на другие листы или
книги. В этом случае стрелка будет пунктирной и вести «в никуда» – к символическому изображению другого
листа:

Не очень наглядно, прямо скажем.
Однако есть и приятный момент. Если сделать двойной щелчок левой кнопкой мыши по пунктиру (не
промахнитесь!), то откроется окно переходов, где можно выбрать нашу ссылку в списке и нажать ОК, чтобы
перепрыгнуть к исходной ячейке:

250

Николай Павлов

Что интересно, если отправить лист с включенными стрелками на принтер, то они замечательно
распечатываются вместе с данными. Иногда это бывает очень удобно для наглядного объяснения принципов
расчета кому-нибудь по печатной копии документа.
Стрелки пропадут после сохранения книги или ее повторного открытия. Можно также воспользоваться кнопкой
Убрать стрелки (Remove Arrows), чтобы их отключить.

Вычисления «на лету»
Если выделить часть сложной формулы в строке формул и нажать на клавиатуре клавишу F9, то Excel тут же «на
лету» вычислит выделенный фрагмент и заменит его на получившуюся в результате константу. Например:

…после нажатия F9 превратится в:

Мегапростая и мегаудобная фишка.

Пошаговое выполнение сложных формул
Длинные и сложные формулы можно выполнять пошагово, отслеживая результаты на каждом шаге, чтобы
лучше понимать работу формулы и причину возникновения ошибки. Для этого выделите ячейку с формулой и
нажмите кнопку Вычислить формулу на вкладке Формулы (Formulas – Evaluate Formula).

251

Microsoft Excel: Готовые решения – бери и пользуйся!

В появившемся диалоговом окне с помощью многократного последовательного нажатия кнопки Вычислить
(Evaluate) можно пошагово просмотреть весь процесс вычислений сложной формулы.
Кнопки Шаг с заходом (Step In) и Шаг с выходом (Step Out) выполняют такой же пошаговый расчет, но при этом
еще и выделяют ячейки с исходными данными, участвующие в вычислениях.

Отслеживание результатов вычислений
Если вы отлаживаете формулы, которые завязаны на несколько листов или берут данные из разных файлов, то
удобно использовать специальное окно для отслеживания значений в заданных ячейках. Для этого на вкладке
Формулы нажмите кнопку Окно контрольного значения (Formulas – Watch Window):

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

252

Николай Павлов

Обработка ошибок в формулах
Не ошибается только тот, кто ничего не делает. Периодически у любого пользователя в расчетах появляются
ошибки, но далеко не всегда это «заслуга» автора файла. Иногда ошибки могут являться следствием
некорректно введенных другими пользователями данных. Иногда они появляются просто из-за их (данных)
отсутствия. Как же бороться с такими ошибками, случившимися не по нашей вине? Основных способов два:
перехват ошибок с последующей их заменой, например, на нули и скрытие ошибок.

Перехват ошибок
Начиная с 2007 версии, в Excel появилась очень полезная в таких ситуациях функция – ЕСЛИОШИБКА (IFERROR).
Она позволяет проверить любую ячейку или формулу и, в случае возникновения в ней ошибки, вывести
заданное значение (например, ноль или фразу «Проверьте данные»). Если ошибки нет, то результат работы
проверяемой формулы выводится как есть:

У этой функции два аргумента:

Проверяемое значение (в данном примере это формула для вычисления среднего значения выручки по
региону).
Значение, которое надо вывести в случае, если первый аргумент порождает ошибку (в нашем примере –
ноль).

Функция ЕСЛИОШИБКА умеет перехватывать все возможные ошибки, которые только бывают в Excel: #ЗНАЧ,
#ЧИСЛО, #ССЫЛКА, #Н/Д, #ДЕЛ/0 и т.д. Таким образом, с ее помощью можно «на лету» перехватывать любые
возникающие ошибки и заменять их на невинные нули, например.

Скрытие ошибок на экране
Другой подход к обработке ошибок – это их скрытие от глаз пользователя. Для этой цели удобнее всего
использовать условное форматирование. Выделите диапазон с формулами, где могут возникать ошибки, и
выберите на вкладке Главная – Условное форматирование – Создать правило (Home – Conditional Formatting –
Create Rule). В открывшемся окне выберите нижний тип правила Использовать формулу для определения
форматируемых ячеек (Use formula to determine which cell to format) и введите туда следующую формулу:

253

Microsoft Excel: Готовые решения – бери и пользуйся!

Затем нажмите кнопку Формат (Format) и задайте цвет шрифта, совпадающий с цветом фона ячейки (белый на
белом и т.д.), и закройте все открытые окна нажатиями на ОК.
Функция ЕОШИБКА (ISERROR) проверяет указанную в качестве аргумента ячейку (в нашем примере это D2) и
выдает на выходе логическое значение ИСТИНА или ЛОЖЬ. Если функция выдаст ИСТИНУ, т.е. в ячейке есть
ошибки, то к ячейке будет применено форматирование одинаковым цветом шрифта и фона – ошибок будет не
видно.

Скрытие ошибок при печати
Если нужно спрятать ошибки на листе только при выводе на печать, то все будет гораздо проще. Перейдите на
вкладку Разметка страницы (Page Layout) и нажмите небольшую стрелку в правом нижнем углу группы
Параметры страницы (Page Setup):

В появившемся окне перейдите на вкладку Лист (Sheet) и используйте выпадающий список Ошибки ячеек как
(Cell errors as), чтобы задать отображение ячеек с ошибками при печати:

254

Николай Павлов

255

Microsoft Excel: Готовые решения – бери и пользуйся!

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



Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта
(а то поймет, что вы заложили 300% маржи на всякий случай).
Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже
самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать,
что это можно решить временным отключением автоматических вычислений на вкладке Формулы –
Параметры вычислений).
Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании «сползут» все
ссылки в формулах.
И т.д.

В любой подобной ситуации можно легко удалить формулы, оставив в ячейках только их значения.
Классический способ заключается в использовании специальной вставки:
1. Выделите диапазон с формулами, которые нужно заменить на значения.
2. Скопируйте его (Ctrl+C или правой кнопкой мыши – Копировать).
3. Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (если у вас
Excel 2010 или новее), либо команду Специальная вставка – Значения – ОК.

Если вам в работе приходится делать такую замену часто, то имеет смысл использовать для этого простой
макрос.
Откройте редактор Visual Basic с помощью вкладки Разработчик – Visual Basic (Developer – Visual Basic) или
сочетания клавиш Alt+F11, добавьте новый пустой модуль через меню Insert – Module и введите туда код
нашего макроса:
Sub Replace_Formulas()
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
End Sub

Для пущего удобства его можно повесить на горячие клавиши, нажав Разработчик – Макросы – Параметры
(Developer – Macros – Options) и введя удобное сочетание в диалоговом окне:

256

Николай Павлов

Только помните, что в данном случае играет роль язык и регистр, т.е. Ctrl+q, Ctrl+й и Ctrl+Й – это
не одно и то же.

257

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то
Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав
считать:

Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми,
сохранив результаты расчета.

Способ 1. Абсолютные ссылки
Как можно заметить по предыдущей картинке, Excel сдвигает только относительные ссылки. Абсолютная (со
знаками $) ссылка на желтую ячейку $J$2 не сместилась. Поэтому для точного копирования формул можно
временно перевести все ссылки во всех формулах в абсолютные. Нужно будет выделить каждую формулу в
строке формул и нажать клавишу F4:

258

Николай Павлов

При большом количестве ячеек этот вариант, понятное дело, отпадает – слишком трудоемко.

Способ 2. Временная деактивация формул
Чтобы формулы при копировании не менялись, надо (временно) сделать так, чтобы Excel перестал их
рассматривать как формулы. Это можно сделать, заменив на время копирования знак «равно» (=) на любой
другой символ, не встречающийся обычно в формулах, например на «решетку» (#) или на пару амперсандов
(&&). Для этого:
1. Выделяем диапазон с формулами (в нашем примере D2:D8).
2. Жмем Ctrl+H на клавиатуре или на вкладке Главная – Найти и выделить – Заменить (Home – Find &
Select – Replace):

3. В появившемся диалоговом окне вводим что ищем и на что заменяем и в Параметрах (Options) не
забываем уточнить Область поиска – Формулы. Жмем Заменить все (Replace All).
4. Копируем получившийся диапазон с деактивированными формулами в нужное место:

5. Заменяем # на = обратно с помощью того же окна, возвращая функциональность формулам.

Способ 3. Копирование через Блокнот
Этот способ существенно быстрее и проще. Нажмите сочетание клавиш Ctrl+Ё или кнопку Показать формулы на
вкладке Формулы (Formulas – Show Formulas), чтобы включить режим проверки формул – в ячейках вместо
результатов начнут отображаться формулы, по которым они посчитаны:

259

Microsoft Excel: Готовые решения – бери и пользуйся!

Скопируйте наш диапазон D2:D8 и вставьте его в стандартный Блокнот:

Теперь выделите все вставленное (Ctrl+A), скопируйте в буфер еще раз (Ctrl+C) и вставьте на лист в нужное вам
место:

260

Николай Павлов

Осталось только отжать кнопку Показать формулы (Show Formulas), чтобы вернуть Excel в обычный режим.
Примечание: этот способ иногда дает сбой на сложных таблицах с объединенными ячейками, но в
подавляющем большинстве случаев – работает отлично.

Способ 4. Макрос
Если подобное копирование формул без сдвига ссылок вам приходится делать часто, то имеет смысл
использовать для этого макрос. Нажмите сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке
Разработчик (Developer), вставьте новый модуль через меню Insert – Module и скопируйте туда текст вот такого
макроса:
Sub Copy_Formulas()
Dim copyRange As Range, pasteRange As Range
On Error Resume Next
Set copyRange = Application.InputBox(«Выделите ячейки с формулами», _
«Точное копирование формул», _
Default:=Selection.Address, Type:=8)
If copyRange Is Nothing Then Exit Sub
Set pasteRange = Application.InputBox(«Теперь выделите диапазон вставки.» & _
vbCrLf & vbCrLf & «Диапазон должен быть равен по размеру исходному » & vbCrLf & _
«диапазону копируемых ячеек.», _
«Точное копирование формул», _
Default:=Selection.Address, Type:=8)
If pasteRange.Cells.Count copyRange.Cells.Count Then
MsgBox «Диапазоны копирования и вставки разного размера!», _
vbExclamation, «Ошибка копирования»
Exit Sub
End If
If pasteRange Is Nothing Then
Exit Sub
Else
pasteRange.Formula = copyRange.Formula
End If
End Sub

Для запуска макроса можно воспользоваться кнопкой Макросы на вкладке Разработчик (Developer – Macros)
или сочетанием клавиш Alt+F8. После запуска макрос попросит вас выделить диапазон с исходными
формулами и диапазон вставки и произведет точное копирование формул автоматически:

261

Microsoft Excel: Готовые решения – бери и пользуйся!

262

Николай Павлов

Именованные диапазоны в формулах
Есть простой и красивый способ сделать длинные и сложные формулы нагляднее и проще для понимания.
Любой ячейке или диапазону на листе Excel можно дать собственное имя, которое затем использовать в
формулах вместо обычных ссылок. Так, например, формула для расчета выданной на руки зарплаты из чегонибудь вида:
=Z2*8*K15*(1-F22)
…может превратиться с использованием именованных диапазонов в нечто гораздо более понятное:
=Раб_дней*8*Часовая_Ставка*(1-Налог)
Лучше, правда?

Создание именованного диапазона
Выделите ячейку или диапазон, которым хотите дать имя. Затем щелкните в поле в левой части строки формул,
где обычно отображается адрес текущей ячейки, введите туда имя диапазона и нажмите Enter:

Можно также воспользоваться Диспетчером имен на вкладке Формулы (Formulas – Name Manager). Это
диалоговое окно умеет создавать, редактировать и удалять ненужные именованные диапазоны и выводит по
ним полную информацию:

Единственный скользкий момент – это имя диапазона. Оно должно удовлетворять следующим правилам:

Не должно содержать пробелов – заменяйте их нижним подчеркиванием или пишите слова слитно.
263

Microsoft Excel: Готовые решения – бери и пользуйся!




Не должно быть похоже на адрес ячейки (например, «A1» или «WW23») или имя другого объекта
(например, «Диаграмма1» или «СводнаяТаблица3»).
Должно начинаться с буквы, а не с цифры.
Не должно совпадать с уже имеющимися в книге именами.
Строчные и прописные буквы не различаются.

Использование имен диапазонов в формулах
Для вставки имени диапазона в формулу можно просто вписать его вручную – Excel выдаст выпадающую
подсказку по первым буквам со всеми подходящими именами, откуда имя можно выбрать с помощью
двойного щелчка мыши или клавиши Tab:

Также можно во время ввода формулы нажать клавишу F3 и выбрать имя из диалогового окна:

Локальные и глобальные имена
Именованные диапазоны бывают локальными, т.е. заданными только в пределах листа, и глобальными –
заданными в пределах всей книги. Чтобы задать тип именованного диапазона, нужно при его создании с
помощью Диспетчера имен и кнопки Создать уточнить этот момент с помощью выпадающего списка Область
(Scope):

264

Николай Павлов

Глобальные имена без дополнительных уточнений можно использовать в формулах на любом листе файла, а
локальные – только на соответствующем листе, к которому они привязаны. На «неродных» листах для
использования локальных имен потребуется дополнительно уточнить перед ними имя листа, т.е. ввести что-то
вида:
=Лист2!Зарплата

Именованные константы
Можно создать именованный диапазон, который будет ссылаться не на конкретные ячейки, а просто хранить в
себе нужные данные – именованную константу. Для этого в окне создания именованного диапазона нужно не
указывать ссылку в поле Диапазон (Range), а вписать туда нужное значение:

Впоследствии можно пользоваться такой константой как переменной в любых формулах и расчетах:
=Цена*(1 – НДС)
Подобным образом удобно задавать константы, которые редко меняются, но часто встречаются в проекте
(ставки налогов и сборов, банковские проценты и т.д.).

265

Microsoft Excel: Готовые решения – бери и пользуйся!

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

Специальная вставка
Предположим, у нас имеется диапазон ячеек с большими денежными суммами:

Необходимо превратить их в «тыс. руб.», т.е. разделить каждое число на 1000. Можно, конечно, пойти
классическим путем и сделать рядом еще одну таблицу такого же размера, где прописать соответствующие
формулы (=B2/1000 и т.д.).
А можно проще:
1. Ввести 1000 в любую свободную ячейку.
2. Скопировать эту ячейку в буфер (Ctrl+C или правой кнопкой мыши – Копировать).
3. Выделить все ячейки с денежными суммами, щелкнуть по ним правой кнопкой мыши и выбрать
Специальная вставка (Paste Special) или нажать Ctrl+Alt+V.
4. Выбрать в контекстном меню Значения (Values) и Разделить (Divide):

Excel не вставит 1000 во все выделенные ячейки вместо сумм (как это было бы при обычной вставке), а
разделит все суммы на находящееся в буфере значение (1000), что и требуется:

266

Николай Павлов

Легко сообразить, что подобным образом очень удобно:



считать любые налоги с фиксированными ставками (НДС, НДФЛ…), т.е. добавлять к имеющимся суммам
налог или вычитать его;
превращать ячейки с большими денежными суммами в «тыс.», «млн» и даже «млрд»;
пересчитывать диапазоны с денежными суммами в другие валюты по курсу;
сдвигать все даты в диапазоне в прошлое или будущее на заданное количество календарных (не
рабочих!) дней.

Строка состояния
При выделении диапазона ячеек в строке состояния отображается информация по ним:

Причем если щелкнуть по этим итогам правой кнопкой мыши, то можно выбрать – какие именно функции надо
отображать:

Просто и удобно.

267

Microsoft Excel: Готовые решения – бери и пользуйся!

Калькулятор
На моей клавиатуре есть отдельная специальная кнопка для быстрого вызова стандартного калькулятора
Windows – крайне полезная штука в рабочей обстановке. Если на вашей клавиатуре такой нет, то можно создать
ее альтернативу в Excel. Для этого:
1. Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу и выберите
Настройка панели быстрого доступа (Customize Quick Access Toolbar):

2. В открывшемся окне выберите Все команды (All Commands) в верхнем выпадающем списке вместо
Часто используемые команды (Popular Commands):

3. Найдите кнопку Калькулятор (Calculator) и добавьте ее на панель с помощью кнопки Добавить (Add).

268

Николай Павлов

Операции с диапазонами данных

В

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

В этой главе мы подробно изучим:

Как быстро удалить все пустые ячейки или строки в диапазоне или заполнить их нужными
данными.

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

Как превратить обычную таблицу в «умную», с которой на порядок легче работать.

Как собирать данные из нескольких таблиц в одну автоматически разными способами.

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

269

Microsoft Excel: Готовые решения – бери и пользуйся!

Удаление пустых ячеек в диапазоне
Предположим, у нас имеется диапазон ячеек с данными, в котором есть пустые ячейки. Например, такой:

Задача – удалить пустые ячейки, оставив только ячейки с информацией.

Способ 1. Грубо и быстро
1. Выделяем исходный диапазон.
2. Жмем клавишу F5, далее кнопка Выделить (Go To Special). В открывшемся окне выбираем Пустые
ячейки (Blanks) и жмем ОК.

3. Выделяются все пустые ячейки в диапазоне.
4. Даем команду на удаление выделенных ячеек: правой кнопкой мыши – Удалить ячейки (Delete Cells) со
сдвигом вверх.

Способ 2. Формула массива
Для упрощения дадим нашим рабочим диапазонам имена, используя Диспетчер имен (Name Manager) на
вкладке Формулы (Formulas):

270

Николай Павлов

Диапазону B3:B10 даем имя ЕстьПустые, диапазону D3:D10 – НетПустых. Диапазоны должны быть строго
одного размера, а расположены могут быть где угодно относительно друг друга.
Теперь выделим первую ячейку второго диапазона (D3) и введем в нее такую страшноватую формулу:
=ЕСЛИ(СТРОКА()-СТРОКА(НетПустых)+1>ЧСТРОК(ЕстьПустые)СЧИТАТЬПУСТОТЫ(ЕстьПустые);»»;ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ(ЕстьПустые»»;СТРОКА(ЕстьПустые);СТ
РОКА()+ЧСТРОК(ЕстьПустые)));СТРОКА()-СТРОКА(НетПустых)+1);СТОЛБЕЦ(ЕстьПустые);4)))
В английской версии это будет:
=IF(ROW()-ROW(НетПустых)+1>ROWS(ЕстьПустые)COUNTBLANK(ЕстьПустые),»»,INDIRECT(ADDRESS(SMALL((IF(ЕстьПустые»»,ROW(ЕстьПустые),ROW()+ROWS(ЕстьП
устые))),ROW()-ROW(НетПустых)+1),COLUMN(ЕстьПустые),4)))
Причем ввести ее надо как формулу массива, т.е. после вставки нажать не Enter (как обычно), а Ctrl+Shift+Enter.
Теперь формулу можно скопировать вниз, используя автозаполнение (потянуть за черный крестик в правом
нижнем углу ячейки), – и мы получим исходный диапазон, но без пустых ячеек:

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

271

Microsoft Excel: Готовые решения – бери и пользуйся!

Для этого откройте редактор Visual Basic (Alt+F11), вставьте новый пустой модуль (меню Insert – Module) и
введите туда текст этой функции:
Function NoBlanks(DataRange As Range) As Variant()
Dim
Dim
Dim
Dim
Dim
Dim
Dim

N As Long
N2 As Long
Rng As Range
MaxCells As Long
Result() As Variant
R As Long
C As Long

MaxCells = Application.WorksheetFunction.Max( _
Application.Caller.Cells.Count, DataRange.Cells.Count)
ReDim Result(1 To MaxCells, 1 To 1)
For Each Rng In DataRange.Cells
If Rng.Value vbNullString Then
N = N + 1
Result(N, 1) = Rng.Value
End If
Next Rng
For N2 = N + 1 To MaxCells
Result(N2, 1) = vbNullString
Next N2

‘проходим по ячейкам диапазона
‘если ячейка не пустая
‘заносим ее в массив Result

If Application.Caller.Rows.Count = 1 Then ‘выводим массив Result
NoBlanks = Application.Transpose(Result)
Else
NoBlanks = Result
End If
End Function

Не забудьте сохранить файл в формате с поддержкой макросов (XLSM) и вернитесь из редактора Visual Basic в
Excel. Чтобы использовать эту функцию в нашем примере:
1. Выделите достаточный диапазон пустых ячеек, например F3:F10.
2. Нажмите на кнопку Вставить функцию (Insert Function) на вкладке Формулы (Formulas). В категории
Определенные пользователем (User Defined) выберите нашу функцию NoBlanks.
3. В качестве аргумента функции укажите исходный диапазон с пустотами (B3:B10) и нажмите
Ctrl+Shift+Enter, чтобы ввести функцию как формулу массива.

272

Николай Павлов

Удаление пустых строк
Пустые строки могут быть головной болью в таблицах во многих случаях. Стандартные функции сортировки,
фильтрации, подведения итогов, создания сводных таблиц и т.д. воспринимают пустые строки как разрыв
таблицы, не подхватывая данные, расположенные ниже пустой строки. Если таких разрывов много, то удалить
их лучше не вручную, а сразу все «оптом» – с помощью несложного макроса.
Нажмите сочетание клавиш Alt+F11 или выберите на вкладке Разработчик – Редактор Visual Basic (Developer –
Visual Basic Editor).
В открывшемся окне редактора Visual Basic нужно вставить пустой модуль с помощью команды в меню Insert –
Module и в появившееся окно ввести следующий код:
Sub DeleteEmptyRows()
Dim r As Long, rng As Range
For r = 1 To ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count
If Application.CountA(Rows(r)) = 0 Then
If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
End If
Next r
If Not rng Is Nothing Then rng.Delete
End Sub

Закройте редактор и вернитесь в Excel.
Теперь нажмите сочетание Alt+F8 или выберите на вкладке Разработчик – Макросы (Developer – Macros). В
открывшемся окне будут перечислены все доступные вам в данный момент для запуска макросы, в том числе
только что созданный макрос DeleteEmptyRows. Выберите его и нажмите кнопку Выполнить (Run) – все пустые
строки на листе будут удалены.
Если же вам необходимо удалять пустые строки не на всем листе, а только в выделенном предварительно
диапазоне, то макрос можно немного модифицировать:
Sub DeleteEmptyRowsInRange()
Dim r As Long, rng As Range
For r = 1 To Selection.Rows.Count
If Application.CountA(Selection.Rows(r)) = 0 Then
If rng Is Nothing Then
Set rng = Selection.Rows(r)
Else
Set rng = Union(rng, Selection.Rows(r))
End If
End If
Next r
If Not rng Is Nothing Then rng.Delete
End Sub

273

Microsoft Excel: Готовые решения – бери и пользуйся!

Заполнение пустых ячеек
Как известно, для полноценной работы с данными (фильтрации, сортировки, подведения итогов и т.д.) нужен
непрерывный список, т.е. таблица без разрывов (пустых строк и ячеек – по возможности). На практике же часто
мы имеем как раз таблицы с пропущенными пустыми ячейками – например, после копирования результатов
сводных таблиц или выгрузок в Excel из внешних программ. Таким образом, возникает необходимость
заполнить пустые ячейки таблицы значениями из верхних ячеек, то есть…

из

сделать

Это можно реализовать не копируя данные вручную на нижестоящие ячейки, а быстро – буквально в несколько
движений.
1. Выделяем диапазон ячеек в первом столбце, который надо заполнить (в нашем примере это A1:A12).
2. На вкладке Главная (Home) нажимаем кнопку Найти и выделить (Find & Select) и затем команду
Выделение группы ячеек (Go To Special) и в появившемся окне выбираем Пустые ячейки (Blanks):

274

Николай Павлов

3. Не снимая выделения, вводим в первую ячейку знак «равно» и щелкаем по предыдущей ячейке (т.е.
создаем ссылку на предыдущую ячейку, другими словами):

4. И, наконец, чтобы ввести эту формулу во все выделенные (пустые) ячейки, нажимаем Ctrl+Enter вместо
обычного Enter. И все! Просто и красиво.
В качестве завершающего мазка я советовал бы заменить все созданные формулы на значения, ибо при
сортировке или добавлении/удалении строк корректность формул может быть нарушена. Выделите все ячейки
в первом столбце, скопируйте и тут же вставьте обратно с помощью Специальной вставки (Paste Special) в
контекстном меню, выбрав параметр Значения (Values). Так будет совсем хорошо.
Если планируете делать такое действие часто, то имеет смысл один раз создать макрос, который все
вышеперечисленное будет делать за вас. Для этого откройте редактор Visual Basic с помощью вкладки
Разработчик – Visual Basic (Developer – Visual Basic) или сочетания клавиш Alt+F11, добавьте новый пустой
модуль через меню Insert – Module и введите туда простой код:
Sub Fill_Gaps()
Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1=»=R[-1]C»
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
End Sub

275

Microsoft Excel: Готовые решения – бери и пользуйся!

Сортировка диапазона
Простая сортировка
Если вам нужно отсортировать диапазон по одному столбцу, то установите активную ячейку в этот столбец и
выберите команды Сортировка от А до Я или Сортировка от Я до А на вкладке Главная – Сортировка и фильтр
(Home – Sort & Filter):

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

Многоуровневая сортировка
Если необходимо сортировать диапазон не по одному, а сразу по нескольким столбцам, то придется идти
другим путем. Установите активную ячейку в диапазон или выделите его целиком и нажмите кнопку
Сортировка на вкладке Данные (Data – Sort). Откроется диалоговое окно, куда с помощью кнопки Добавить
уровень (Add Level) можно добавить несколько уровней (столбцов) для сортировки:

Максимальное количество уровней в последних версиях Excel – 64, что заведомо превышает любые возможные
потребности.
Учтите, что последовательность, в которой указаны столбцы для сортировки, играет роль. Для изменения
порядка можно использовать серые стрелки в верхней части окна.

276

Николай Павлов

Сортировка по цвету
При необходимости Excel легко может отсортировать ваш массив данных по цвету заливки или цвету шрифта
текста. Самый простой способ это сделать заключается в следующем:
1. Выделите диапазон данных и включите для него автофильтр на вкладке Данные – Фильтр (Data – Filter).
2. Разверните выпадающий список автофильтра в нужном столбце и выберите команду Сортировка по
цвету (Sort by Color), а затем – нужный цвет. Строки, где в текущем столбце было оформление
выбранным цветом, переместятся в верхнюю часть таблицы:

Если последовательно повторить эту процедуру несколько раз, выбирая разные цвета, то мы получим таблицу,
где все строки будут сгруппированы по цветовому признаку:

Сортировка по смыслу, а не по алфавиту
Представим весьма распространенную ситуацию: есть таблица, в которой присутствует столбец с названием
месяца (январь, февраль, март…) или дня недели (пт, вт, ср…). При простой сортировке по данному столбцу
Excel располагает элементы по алфавиту (т.е. от А до Я):

277

Microsoft Excel: Готовые решения – бери и пользуйся!

А хотелось бы, конечно, получить на выходе привычную последовательность с января по декабрь или с
понедельника по воскресенье. Такое можно легко реализовать с помощью особой сортировки по
пользовательскому списку (custom list sorting).
Выделите таблицу и нажмите большую кнопку Сортировка на вкладке Данные (Data – Sort). Откроется
диалоговое окно, в котором нужно задать поле (столбец) сортировки и в последнем раскрывающемся списке
выбрать тип сортировки Настраиваемый список (Custom List):

После этого откроется следующее окно, в котором можно выбрать нужную нам последовательность месяцев
или дней недели:

278

Николай Павлов

Если нужного списка (например, месяцев, но на английском) нет, то его можно ввести в правое поле, выбрав
опцию Новый список (New List):

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




должности (директор, замдиректора, руководитель департамента, начальник отдела…)
воинские звания (генерал, полковник, подполковник, майор…)
сертификации (TOEFL, ITIL, MCP, MVP…)
клиентов или товары по важности лично для вас (виски, текила, коньяк, вино, пиво, лимонад…)
и т.д.

279

Microsoft Excel: Готовые решения – бери и пользуйся!

Сортировка текста и чисел одновременно
Предположим, что в нашей таблице есть столбец с кодами различных запчастей и агрегатов для автомобилей
(part number). Причем крупные детали в сборе (например, коробка передач, двигатель, рулевое управление)
обозначаются чисто цифровым кодом, а мелкие детали, которые в них входят, – кодом с добавлением
уточняющего номера через, допустим, точку. Попытка отсортировать такой список обычным образом приведет
к нежелательному результату, т.к. Excel сортирует отдельно числа (номера крупных агрегатов в сборе) и
отдельно текст (номера мелких деталей с точками):

Видите, что получилось? Все номера перемешались в кучу. А хотелось бы, конечно, получить список, где после
каждого крупного агрегата будут идти его детали:

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

280

Николай Павлов

Если затем произвести сортировку по этому столбцу, то Excel спросит о том, как ему сортировать числа и текст:

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

281

Microsoft Excel: Готовые решения – бери и пользуйся!

Сортировка диапазона формулой
Если вам нужно отсортировать список, то к вашим услугам куча способов, самый простой из которых – кнопки
сортировки на вкладке Данные (Data – Sort). Бывают, однако, ситуации, когда сортировку списка нужно делать
автоматически, т.е. формулами. Такое может потребоваться, например, при формировании данных для
выпадающего списка, при вычислении данных для диаграмм и т.д. Как же «на лету» сортировать список
формулой?

Способ 1. Числовые данные
Если список содержит только числовую информацию, то его сортировку можно легко сделать с помощью
функций НАИМЕНЬШИЙ (SMALL) и СТРОКА (ROW):

Функция НАИМЕНЬШИЙ (SMALL) выдергивает из массива (столбец А) n-й по счету наименьший элемент. Т.е.
НАИМЕНЬШИЙ(A:A;1) – это самое маленькое число из столбца, НАИМЕНЬШИЙ(А:А;2) – второе по счету
наименьшее и т.д.
Функция СТРОКА (ROW) выдает порядковый номер строки для указанной ячейки, т.е. СТРОКА(А1)=1,
СТРОКА(A2)=2 и т.д. В данном случае она используется просто как генератор последовательности чисел
n=1,2,3… для нашего отсортированного списка. С тем же успехом можно было сделать дополнительный
столбец, заполнить его вручную числовой последовательностью 1,2,3… и ссылаться на него вместо функции
СТРОКА.

Способ 2. Текстовый список и обычные формулы
Если в списке не числа, а текст, то функция НАИМЕНЬШИЙ (SMALL) уже не сработает, поэтому придется пойти
другим, чуть более длинным, путем.
Сначала добавим служебный столбец с формулой, где будет вычисляться порядковый номер каждого имени в
будущем отсортированном списке с помощью функции СЧЁТЕСЛИ (COUNTIF):

282

Николай Павлов

В английской версии это будет:
=COUNTIF(A:A;»

Понравилась статья? Поделить с друзьями:
  • Сбилась нумерация столбцов в excel
  • Сбой активации продукта excel 2019
  • Сбой при печати в word
  • Сборник готовых макросов excel
  • Сбилась нумерация сносок в word