Ссылки R1C1

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: ссылки в стиле R1C1 полезны в нескольких ситуациях, в частности, при использовании VBA, функции ДВССЫЛ (см., например, последний раздел заметки Ссылка на другой лист с помощью ДВССЫЛ) и условного форматирования. Поэтому краткое знакомство с ними будет полезно.

До появления платформы IBM PC существовало несколько популярных приложений электронных таблиц. Это были и VisiCalc и Quattro Pro и Multiplan. Впервые стиль А1 именования ячеек был представлен в VisiCalc. Но этот продукт быстро проиграл конкурентную гонку. Multiplan выпускался компанией Microsoft до выхода Excel. В этом продукте для адресации ячеек использовался формат R1C1, который с тех пор доступен и в Excel. Но именно Лотус 1-2-3 вырвался на вершину славы сразу же после выхода в 1982 г. и стал доминировать на рынке приложений электронных таблиц для ПК. Не в последнюю очередь благодаря удобной системе именования ячеек А1. [1]

Во время войн электронных таблиц, Microsoft осознала, что большинство пользователей голосуют за стиль ссылок А1, и чтобы конкурировать, ей придется делать вид, что в Excel используются ссылки А1. Конечно, Excel только делает вид, что использует А1. В действительности «за кулисами» работают R1C1. Если вы не верите мне, пройдите по меню ФАЙЛ –> Параметры, перейдите на вкладку Формулы, и в области Работа с формулами поставьте галочку Стиль ссылок R1C1 (рис. 1).

Рис. 1. Вы всего в одном клике от стиля ссылок R1C1

Рис. 1. Вы всего в одном клике от стиля ссылок R1C1

Читать полностью

Сумма видимых строк. Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: функция СУММ суммирует все ячейки диапазона, являются ли они скрытыми или нет. Вы хотите суммировать только видимые строки.

Решение: вы можете использовать функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ вместо СУММ. Формула будет немного отличаться, в зависимости от того, как вы спрятали строки. Если вы выделили строки, кликнули правой кнопкой мыши, и в контекстном меню выбрали скрыть, можно использовать: =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109; диапазон) (рис. 1). Весьма необычно использовать для этих целей ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Как правило, эта функция нужна, чтобы Excel игнорировал другие подитоги внутри диапазона.

Рис. 1. Серия 100 в первом аргументе функции ПРОМЕЖУТОЧНЫЕ.ИТОГИ используется для обработки видимых строк

Рис. 1. Серия 100 в первом аргументе функции ПРОМЕЖУТОЧНЫЕ.ИТОГИ используется для обработки видимых строк

Читать полностью

Использование ДВССЫЛ для получения данных из диапазона ячеек

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. В предыдущих главах вы познакомились с функцией ДВССЫЛ, узнали, как с ее помощью сослаться на другой лист, что делать, если имя листа содержит дату. Сегодня еще о двух интересных возможностях использования функции ДВССЫЛ.

Задача: как было показано ранее, ДВССЫЛ удобно использовать для получения значения ячейки, адрес которой вычисляется в другой ячейке. Можно использовать ДВССЫЛ для получения данных из диапазона ячеек, который затем использовался бы внутри функций ВПР или СУММЕСЛИ?

Решение: вы можете построить функцию ДВССЫЛ, которая ссылается на диапазон. Извлеченный диапазон далее может быть использован в качестве таблицы подстановки в ВПР или внутри СУММЕСЛИ, СЧЁТЕСЛИ.

Формула =СУММЕСЛИ(ДВССЫЛ(D$4&"!A2:A300");$A5;ДВССЫЛ(D$4&"!C2:C300")) в ячейке D5 (рис. 1) извлекает данные из рабочего листа Store3 (он указан в строке 4). Первый аргумент функции СУММЕСЛИ извлекает диапазон дат Store3!A2:A300. Второй аргумент – $A5 – осуществляет поиск записей, которые соответствуют определенной дате из столбца А. Третий аргумент – Store3!С2:С300 – находит количество в столбце С, соответствующее дате, и возвращает его.

Рис. 1. Каждая функция ДВССЫЛ ссылается на прямоугольный диапазон на другом листе

Рис. 1. Каждая функция ДВССЫЛ ссылается на прямоугольный диапазон на другом листе

Читать полностью

ДВССЫЛ. Ссылка на лист, имя которого содержит дату

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. Предыдущая глава рассказывает о том, как сослаться на другой лист с помощью функции ДВССЫЛ. В ней говорится, что нужно применить некоторые ухищрения, когда ссылаешься на лист, в имени которого есть пробел. Здесь рассматривается второй сложный случай, когда имя листа содержит дату.

Задача: у вас 30 ежедневных рабочих листов в книге по одному за каждый день месяца (рис. 1). Ячейки (столбец А) на листе Сводная содержат даты, ссылки на которые вы хотите использовать внутри функции ДВССЫЛ, чтобы получить данные из соответствующего этому дню листа, но формула возвращает ошибку #ССЫЛКА!

Рис. 1. ДВССЫЛ не может напрямую использовать ссылки на листы, в имени которых содержится дата

Рис. 1. ДВССЫЛ не может напрямую использовать ссылки на листы, в имени которых содержится дата

Читать полностью

Ссылка на другой лист с помощью ДВССЫЛ

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. Предыдущая глава книги знакомит с функцией ДВССЫЛ: Ссылка на ячейку, чей адрес основан на вычислениях.

Задача: вам нужно получить значение ячейки B4 с одного из многих листов. При этом, определить, с какого именно листа вы можете на основании расчета. Может ли ДВССЫЛ ссылаться на другой лист?

Решение: ДВССЫЛ может ссылаться на другой лист. Но функция требует особого обращения, если имя листа содержит пробелы или дату. Если лист содержит пробел в имени, вы должны составить ссылку на лист, используя апострофы вокруг имени листа, затем восклицательный знак и адрес ячейки (см. также Сумма одной и той же ячейки на нескольких листах). Например, ='Прибыли и убытки'!В2. Если имя листа не содержит пробелы, вы можете обойтись без апострофов: =Доходы!В2. Если у вас смесь имен листов, некоторые из которых содержат пробелы, в формуле вы должны спланировать апострофы (рис. 1).

Рис. 1. ДВССЫЛ ссылается на переменный лист

Рис. 1. ДВССЫЛ ссылается на переменный лист

Читать полностью

ДВССЫЛ. Ссылка на ячейку, чей адрес основан на вычислениях

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. Ранее я уже довольно подробно писал о функции ДВССЫЛ (см. Примеры использования функции ДВССЫЛ). Однако, учитывая то, что функция ДВССЫЛ весьма непроста для понимания, а также, что Джелен пишет очень интересно и попутно затрагивает различные побочные аспекты, я решил, что и эта заметка будет полезной.

Задача: вам нужно обратиться к ячейке, но ее адрес варьируется, основываясь на расчете.

Решение: функция ДВССЫЛ использует аргумент, который выглядит как ссылка на ячейку, и возвращает значение по этой ссылке (рис. 1). Например, формула в D2 запрашивает значение в D1, получает ответ С9, тут же обращается к ячейке С9 и возвращает текущее ее значение – 17. В Lotus 1-2-3, эта функция имела название @@ («на-на»-функция).

Рис. 1. Вы можете использовать ДВССЫЛ для указания адреса ячейки, и Excel вернет значение по этому адресу

Рис. 1. Вы можете использовать ДВССЫЛ для указания адреса ячейки, и Excel вернет значение по этому адресу

Читать полностью

Сумма одной и той же ячейки на нескольких листах

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: у вас есть 12 листов с одинаковой структурой данных, по одному на каждый месяц. Вы бы хотели просуммировать одну и ту же ячейку на каждом листе. Есть ли способ лучше, чем использование =Янв!B4+Фев!B4+Мар!B4+…+Дек!B4?

Решение: вы можете использовать «3D-формулу», например, =СУММ(Янв:Дек!B4), как показано на рис. 1.

Рис. 1. 3D-формулу для суммирования одной и той же ячейки на нескольких листах

Рис. 1. 3D-формулу для суммирования одной и той же ячейки на нескольких листах

Читать полностью

Excel. Оператор пересечения множеств

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Всем известно, что формула =СУММ(А2:А10) суммирует диапазон из девяти ячеек с A2 по A10, а =СУММ(А1;А3;А5;А7;А9) – суммирует значение в пяти, указанных ячейках. Тем не менее, очень немногие понимают, что пробел внутри функции СУММ – это, на самом деле, оператор пересечения. Рассмотрим типичную коммерческую таблицу (рис. 1). Для начала присвоим имена строкам и столбцам:

  1. Выделите диапазон ячеек A1:F
  2. Пройдите по меню ФОРМУЛЫ –> Создать из выделенного.
  3. В окне Создание имени из выделенного диапазона выберите в строке выше и в столбце слева. Нажмите Оk.

Рис. 1. Создание имен диапазонов на основе таблицы с заголовками строк и столбцов

Рис. 1. Создание имен диапазонов на основе таблицы с заголовками строк и столбцов

Читать полностью

Функция Получить.Ячейку

Рубрика: 7. Полезняшки Excel

Заметка написана с использованием книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

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

Примечание Багузина. Именно эту задачу можно решить довольно просто, если вы пользуетесь версией Excel 2013 или более поздней. Примените функцию ЕФОРМУЛА(ссылка). Функция проверяет содержимое ячейки, и возвращает значение ИСТИНА или ЛОЖЬ. Однако подход Билла Джелена любопытен сам по себе, поскольку открывает окно в мир макрофункций (скорее всего, неизвестный большинству пользователей).

Решение: до введения VBA, макросы писали на языке xlm (Excel Macro). Язык использовал макрофункции, т.е., функции листа макросов Excel 4.0. Этот язык до сих пор поддерживается Microsoft для совместимости с предыдущими версиями Excel (подробнее см. Что такое макрофункции?). Система макросов xlm является «пережитком», доставшимся нам от предыдущих версий Excel (4.0 и более ранних).  Более поздние версии Excel все еще выполняют макросы xlm, но, начиная с Excel 97, пользователи не имеют возможности записывать макросы на языке xlm.

Язык xlm среди прочих содержит функцию Получить.Ячейку (GET.CELL), которая предоставляет гораздо больше информации, чем современная функция ЯЧЕЙКА(). На самом деле, Получить.Ячейку может рассказать о 66 различных атрибутах ячейки, в то время, как функция ЯЧЕЙКА возвращает лишь 12 параметров. Функция Получить.Ячейку весьма полезна, за исключением одного «но»… Вы не можете ввести ее непосредственно в ячейку (рис. 1).

Рис. 1. Функция Получить.Ячейку недоступна для ввода на листе Excel

Рис. 1. Функция Получить.Ячейку недоступна для ввода на листе Excel

Читать полностью

Рассчитать количество рабочих дней

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: подсчитать, сколько рабочих дней попадает между двумя датами. Функция Excel ЧИСТРАБДНИ прекрасно справляется с задачей, если у вас 5-дневная рабочая неделя с субботой и воскресеньем в качестве выходных. Эта заметка покажет вам, как выполнить расчет рабочей недели любой продолжительности и любым набором выходных.

Прим. Багузина. Следует отметить, что, начиная с версии 2010 в Excel появилась более гибкая функция ЧИСТРАБДНИ.МЕЖД, которая дает возможность расчета для любой продолжительности рабочей недели и любого (но постоянного) набора выходных дней. Эта функция будет описана во второй части заметки. Тем не менее, подход Билла Джелена остается интересным и сам по себе.

ЧИСТРАБДНИ вычисляет количество рабочих дней между двумя датами, включая начальную и конечную даты. Следует указать более раннюю дату в качестве первого аргумента, более позднюю дату в качестве второго аргумента, и дополнительно определить массив праздничных дней в качестве третьего аргумента (рис. 1). Формула в ячейки C3: =ЧИСТРАБДНИ(A3;B3;$E$2:$E$11). 17.02.09 вычесть 10.02.09 дает 8 календарных дней, минус два выходных и один праздничный день. Итого, 5 рабочих дней. Однако, если вам «посчастливилось» работать с понедельника по субботу, стандартная формула не справится с задачей.

Рис. 1. ЧИСТРАБДНИ предполагает, что рабочая неделя длится с понедельника по пятницу

Рис. 1. ЧИСТРАБДНИ предполагает, что рабочая неделя длится с понедельника по пятницу

Читать полностью