Excel книга лист диапазон

Создание ссылки на один и тот же диапазон ячеек на нескольких листах

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

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

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

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

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

В примерах ниже объясняется, что происходит при вставке, копирование, удаление или перемещение листов, которые содержатся в трехмерной ссылке. Каждый из этих примерах используется формула = СУММ (Лист2: Лист6! A2: a5 полученное) для добавления ячейки с A2 по A5 на листах 2 – 6:

Вставка или копирование — Если вставлять или копировать листы между листами 2 и 6 (конечные точки в данном примере), Excel, включает в себя все значения в ячейках с A2 по A5 составные листов в вычислениях.

Удаление — Если удалить листы между листами 2 и 6, Microsoft Excel вычтет из суммы.

Перемещение — При перемещении оказались диапазон листа, на который указывает ссылка листы между листами 2 и 6, Microsoft Excel вычтет из суммы.

Перемещение конечного листа — Если переместить лист 2 или 6 в другое место в той же книге, Microsoft Excel скорректирует сумму с включить новые листы между ними, если только изменить порядок конечные точки в книге. Если отразить конечную точку, трехмерной ссылки изменяется на листе конечную точку. Например имеется ссылка на Лист2: Лист6. При перемещении Лист2 находится после Sheet6 в книге, формула будет настроить, чтобы они указывали Sheet3:Sheet6. При перемещении Sheet6 перед листом 2, формула будет настроить, чтобы они указывали Sheet2:Sheet5.

Удаление конечного листа — . Если удалить лист 2 или 6, Microsoft Excel удаляет значения удалятся из вычислений.

Щелкните ячейку, в которую вводятся функцию.

Тип знак равенства (=), за которым следует имя функции (смотрите в приведенной ниже таблице), а затем открывающую круглую скобку.

Щелкните ярлычок первого листа, на который нужно создать ссылку.

Удерживая нажатой клавишу Shift, а затем щелкните ярлычок последнего листа, на который нужно создать ссылку.

Выделите диапазон ячеек, на которые нужно создать ссылку.

Завершите ввод формулы, а затем нажмите клавишу ВВОД.

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

Вычисляет среднее арифметическое чисел.

Вычисляет среднее арифметическое чисел с учетом логических значений и текстовых строк.

Подсчитывает количество ячеек, содержащих числа.

Подсчитывает количество непустых ячеек.

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

Возвращает эксцесс множества данных.

Возвращает k-ое по величине значение из множества данных. Например, пятое наибольшее число.

Находит наибольшее значение из набора значений.

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

Возвращает медиану — число, которое является серединой заданного множества чисел.

Находит наименьшее значение из набора значений.

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

Возвращает k-ю процентиль для значений диапазона, где k — число в диапазоне от 0 до 1, исключая границы. Предоставлена для совместимости с предыдущими версиями Excel.

Возвращает k-ю процентиль для значений диапазона, где k — число от 0 и 1 (не включая эти числа).

Возвращает k-ю процентиль для значений диапазона, где k — число от 0 и 1 (включая эти числа).

Возвращает ранг значения в наборе данных как процентное содержание в наборе данных (от 0 до 1). Предоставлена для совместимости с предыдущими версиями Excel.

Возвращает ранг значения в наборе данных как процентное содержание в наборе данных (от 0 до 1, не включая эти числа).

Возвращает ранг значения в наборе данных как процентное содержание в наборе данных (от 0 до 1, включая эти числа).

Возвращает квартиль набора данных на основе значений процентили от 0 до 1 (включительно). Предоставлена для совместимости с предыдущими версиями Excel.

Возвращает квартиль набора данных на основе значений процентили от 0 до 1 (исключая эти числа).

Возвращает квартиль набора данных на основе значений процентили от 0 до 1 (включительно).

Вычисляет произведение чисел.

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

Возвращает ранг числа в списке чисел, то есть его величину относительно других значений в списке.

Возвращает ранг числа в списке чисел, то есть его величину относительно других значений в списке.

Возвращает асимметрию распределения.

Возвращает k-ое наименьшее значение в множестве данных.

Вычисляет стандартное отклонение по выборке.

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

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

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

Возвращает среднее внутренности множества данных.

Вычисляет сумму чисел.

Оценивает дисперсию по выборке.

Вычисляет дисперсию для генеральной совокупности.

Оценивает дисперсию по выборке с учетом логических значений и текстовых строк.

Вычисляет дисперсию для генеральной совокупности; логических значений и текстовых строк

На вкладке формулы щелкните Присвоить имя (в группе Определенные имена ).

Во всплывающем окне Новое имя введите имя в качестве ссылки. Имена могут быть длиной до 255 знаков.

В списке диапазон выберите знак равенства (=) и ссылки, а затем нажмите клавишу BACKSPACE.

Щелкните ярлычок первого листа, на который нужно создать ссылку.

Удерживая нажатой клавишу Shift и перейдите на вкладку ссылки на лист.

Выделите диапазон ячеек, на которые нужно создать ссылку.

Дополнительные сведения

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Формула. Как получить диапазон листов с условием в Excel?

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

P.S Т.е пользователь вводит значение в заранее определенную ячейку метку для поиска листов и автоматически формула применяется только к определенным листам. Для фото выше это будет например слово «Компонент», т.е это будут все листы содержащие подстроку — Компонент

Покажите пример такой формулы пожалуйста.

  • Вопрос задан более года назад
  • 123 просмотра

Вообще мне известно четыре способа получения имени листов таблицы.
Три тут:
https://www.datanumen.com/blogs/3-quick-ways-to-ge.
— вручную
— через name manager и формулы
— через VBA

Выбираете любой, создаете диапазон с именами листов, сравниваете с целевым значением.

через name manager и формулы тоже нужно использовать макрос «GET.WORKBOOK»

Да, но она штатная. С ее помощью вполне легко именно автоматически получить список листов.
Кодинга не требуется. Макросы разрешать не нужно, емнип. Содержащая такое решение книга сохраняется в xlsx, нее в xlsb. Так что сложностей с ним не вижу.

А вообще вопрос задан очень обще, не совсем понятно, что автору нужно на выходе — названия листов или сами листы в отдельном файле )

Вообще по всем признакам похоже на домашнее задание 🙂

Xambey, честно, не очень представляю
^)

Если это практическая задача, неплохо бы понять, зачем именно так, и для чего — тогда можно предложить подходящее решение.

John Smith, нет, это не домашнее задание:) Пытаюсь автоматизировать отчет по тестированию и есть необходимость не писать некоторые формулы по 50 раз. И если получиться использовать список листов для СЧЁТЕСЛИ(range, object), то это сильно упростит работу моему отделу.

Если вас не затруднит, можете тогда добавить ответ с примером использования GET.WORKBOOK для такой задачи?

Раз такое дело, даже скину конкретный файл. На листе Summary в таблице Тесты функционала для второго столбца не хочется добавлять по отдельной формуле для каждого листа. Хотелось бы просто на листе Initial добавить 1 ячейку, куда записывается метка для поиска листов по имени — типо как «Компонент». И тогда все листы имеющие в имени слово Компонент обрабатываются в таблице тестов. Как то так:) Файл: https://yadi.sk/d/RS_MmckmDDOfNA

Метод через name manager не очень подходит, т.к., как выяснилось при натурных испытаниях, результат при изменении названийудалении или добавлении листов обновляется, только если зайти в эти ячейки и нажать enter. Это может быть неудобно. Пробовал другими способами, но рабочего способа не нашел.

Я бы делал через макрос VBA, тем более, что у вас уже xlsm — это гораздо удобнее и эффективнее (не говоря о том, что если формулами что-то такое и можно сделать, в чем я начинаю сомневаться, то это будет монструозно).

Решение легко написать, предварительно погуглив
«excel vba enumerate sheets»
«excel vba index sheet»
Затем в код добавить проверку на наличие подстроки «Компонент», и обработку таких листов.

Макрос же либо повесить на кнопку и запускать по необходимости, либо повесить на открытие книги.
Если будут вопросы по конкретной реализации, пишите сюда.

Допустим, у нас есть два листа:
Лист1
Лист2
На листе Лист1 в А1 пишем «Лист2» без кавычек.
На листе Лист2 в А1 пише «ФФФ» без кавычек
На листе Лист1 в А2 пишем формулу
=ДВССЫЛ(A1&»!A1″)
Получаем в ячейке значение ФФФ.

Динамический диапазон с автоподстройкой размеров

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

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

Все это в сумме не даст вам скучать 😉

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

Способ 1. Умная таблица

Выделите ваш диапазон ячеек и выберите на вкладке Главная – Форматировать как Таблицу (Home – Format as Table):

Если вам не нужен полосатый дизайн, который добавляется к таблице побочным эффектом, то его можно отключить на появившейся вкладке Конструктор (Design). Каждая созданная таким образом таблица получает имя, которое можно заменить на более удобное там же на вкладке Конструктор (Design) в поле Имя таблицы (Table Name) .

Теперь можно использовать динамические ссылки на нашу «умную таблицу»:

  • Таблица1 – ссылка на всю таблицу кроме строки заголовка (A2:D5)
  • Таблица1[#Все] – ссылка на всю таблицу целиком (A1:D5)
  • Таблица1[Питер] – ссылка на диапазон-столбец без первой ячейки-заголовка (C2:C5)
  • Таблица1[#Заголовки] – ссылка на «шапку» с названиями столбцов (A1:D1)

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

=СУММ(Таблица1[Москва]) – вычисление суммы по столбцу «Москва»

=ВПР(F5;Таблица1;3;0) – поиск в таблице месяца из ячейки F5 и выдача питерской суммы по нему (что такое ВПР?)

Такие ссылки можно успешно использовать при создании сводных таблиц, выбрав на вкладке Вставка – Сводная таблица (Insert – Pivot Table) и введя имя умной таблицы в качестве источника данных:

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

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

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

Способ 2. Динамический именованный диапазон

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

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

Нам потребуются две встроенных функции Excel, имеющиеся в любой версии – ПОИКСПОЗ (MATCH) для определения последней ячейки диапазона и ИНДЕКС (INDEX) для создания динамической ссылки.

Ищем последнюю ячейку с помощью ПОИСКПОЗ

ПОИСКПОЗ(искомое_значение;диапазон;тип_сопоставления) – функция, которая ищет заданное значение в диапазоне (строке или столбце) и выдает порядковый номер ячейки, где оно было найдено. Например, формула ПОИСКПОЗ(“март”;A1:A5;0) выдаст в качестве результата число 4, т.к. слово «март» расположено в четвертой по счету ячейке в столбце A1:A5. Последний аргумент функции Тип_сопоставления = 0 означает, что мы ведем поиск точного соответствия. Если этот аргумент не указать, то функция переключится в режим поиска ближайшего наименьшего значения – это как раз и можно успешно использовать для нахождения последней занятой ячейки в нашем массиве.

Суть трюка проста. ПОИСКПОЗ перебирает в поиске ячейки в диапазоне сверху-вниз и, по идее, должна остановиться, когда найдет ближайшее наименьшее значение к заданному. Если указать в качестве искомого значение заведомо больше, чем любое имеющееся в таблице, то ПОИСКПОЗ дойдет до самого конца таблицы, ничего не найдет и выдаст порядковый номер последней заполненной ячейки. А нам это и нужно!

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

Для гарантии можно использовать число 9E+307 (9 умножить на 10 в 307 степени, т.е. 9 с 307 нулями) – максимальное число, с которым в принципе может работать Excel.

Если же в нашем столбце текстовые значения, то в качестве эквивалента максимально большого числа можно вставить конструкцию ПОВТОР(“я”;255) – текстовую строку, состоящую из 255 букв «я» — последней буквы алфавита. Поскольку при поиске Excel, фактически, сравнивает коды символов, то любой текст в нашей таблице будет технически «меньше» такой длинной «яяяяя….я» строки:

Формируем ссылку с помощью ИНДЕКС

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

ИНДЕКС(диапазон; номер_строки; номер_столбца)

Она выдает содержимое ячейки из диапазона по номеру строки и столбца, т.е. например функция =ИНДЕКС(A1:D5;3;4) по нашей таблице с городами и месяцами из предыдущего способа выдаст 1240 – содержимое из 3-й строки и 4-го столбца, т.е. ячейки D3. Если столбец всего один, то его номер можно не указывать, т.е. формула ИНДЕКС(A2:A6;3) выдаст «Самару» на последнем скриншоте.

Причем есть один не совсем очевидный нюанс: если ИНДЕКС не просто введена в ячейку после знака =, как обычно, а используется как финальная часть ссылки на диапазон после двоеточия, то выдает она уже не содержимое ячейки, а ее адрес! Таким образом формула вида $A$2:ИНДЕКС($A$2:$A$100;3) даст на выходе уже ссылку на диапазон A2:A4.

И вот тут в дело вступает функция ПОИСКПОЗ, которую мы вставляем внутрь ИНДЕКС, чтобы динамически определить конец списка:

=$A$2:ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(ПОВТОР(«я»;255) ;A2:A100))

Создаем именованный диапазон

Осталось упаковать все это в единое целое. Откройте вкладку Формулы (Formulas) и нажмите кнопку Диспетчер Имен (Name Manager) . В открывшемся окне нажмите кнопку Создать (New) , введите имя нашего диапазона и формулу в поле Диапазон (Reference) :

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

Создание и ведение таблиц Excel

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

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

Создание таблицы

  1. Выделить любую ячейку, содержащую данные, которые должны будут войти в таблицу.
  2. В ленте меню выбрать вкладку Вставка [Insert], в раскрывшейся группе команд Таблицы [Tables] необходимо выбрать команду Таблица [Table].

  1. Появится диалоговое окно, в котором Excel автоматически предложит границы диапазона данных для таблицы

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

  1. ОК.

Присвоение имени таблице

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

  1. Выделить ячейку таблицы.
  2. На вкладке Конструктор [Design], в группе Свойства [Properties] ввести новое имя таблицы в поле Имя таблицы нажать клавишу Enter.

Требования к именам таблиц аналогичны требованиям к именованным диапазонам.

Форматирование таблиц

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

  1. Выделить ячейку таблицы.
  2. На вкладке Конструктор [Design] выбрать нужное оформление в группе Стили таблиц [Table Styles].

Вычисления в таблицах

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

  1. На вкладке Конструктор [Design] в группе Параметры стилей таблиц [Table Style Options], выбрать Строка итогов [Total Row].

  1. В появившейся новой строке Итог [Total] выбрать поле, в котором нужно обработать данные, и в раскрывающемся меню выбрать нужную функцию.

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

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

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

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

  1. Выбрать вкладку Файл [File] или кнопку Офис [Office], в зависимости от версии Excel; затем вкладку Параметры [Options].
  2. В разделе Формулы [Formulas], в группе Работа с формулами [Working with formulas], отметить пункт Использовать имена таблиц в формулах [Use table name in formulas].
  3. OK.

Преобразование таблицы в обычный диапазон

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

  1. На вкладке Конструктор [Design] выбрать группу Сервис [Tools].
  2. Выбрать вкладку Преобразовать в диапазон [Convert to Range].

  1. Нажать на кнопку Да [Yes].

Примеры использования функции ОБЛАСТИ для диапазонов Excel

Функция ОБЛАСТИ в Excel используется для подсчета числа областей, содержащихся в переданной ссылке, и возвращает соответствующее значение. В Excel областью является одна ячейка либо интервал смежных ячеек.

Примеры работы функции ОБЛАСТИ в Excel для работы с диапазонами ячеек

Пример 1. Вернуть число, соответствующее количеству областей в диапазонах A1:B7, C14:E19, D9, Пример2!A4:C6.

Исходные данные на листе «Пример1»:

Для подсчета количества областей используем формулу:

Результат вычисления функции является ошибка #ЗНАЧ!, поскольку диапазон «Пример2!A4:C6» находится на другом листе.

Для решения задачи используем формулу с помощью функции СУММ:

Данная функция вычисляет сумму полученных значений в результате выполнения функций ОБЛАСТИ для подсчета количества областей в диапазонах A1:B7;C14:E19;D9 и Пример2!A4:C6 соответственно. Результат:

С помощью такой не хитрой формулы мы получили правильный результат.

Как посчитать количество ссылок на столбцы таблицы Excel

Пример 2. Определить количество столбцов в таблице и записать это значение в ячейку A16.

Используем формулу ОБЛАСТИ, поочередно выделяя каждый столбец ячейки в качестве параметра. Перед выбором последующего столбца нажимаем и удерживаем кнопку Ctrl. Если добавить символ «)» и нажать Enter, появится диалоговое окно с сообщением о том, что было введено слишком много аргументов. Добавим дополнительные открывающую и закрывающую скобки.

Определение принадлежности ячейки к диапазону таблицы

Пример 3. Определить, принадлежит ли ячейка заданному диапазону ячеек.

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

  1. В какой-либо ячейке введем часть формулы «=ОБЛАСТИ((» и выделим произвольную область ячеек для заполнения аргументов:
  2. Поставим пробел и выберем любую ячейку из данного диапазона:
  3. Закроем обе скобки и нажмем Enter. В результате получим:
  4. Если выбрать ячейку не из указанного диапазона, получим ошибку #ПУСТО!.

Данная ошибка означает, что ячейка не принадлежит выделенной области.

Если выделить несколько ячеек внутри диапазона, функция ОБЛАСТИ вернет количество выделенных ячеек:

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

Особенности использования функции ОБЛАСТИ в Excel

Функция находиться в категории формул «Ссылки и Массивы». Она имеет следующую форму синтаксической записи:

    ссылка – обязательный для заполнения аргумент, который принимает ссылку на одну или несколько ячеек из указанного диапазона.

  1. Аргументом рассматриваемой функции может являться только ссылка на диапазон ячеек. Если было передано текстовое или числовое значение, функция выполнена не будет, Excel отобразит диалоговое «В этой формуле обнаружена ошибка».
  2. В качестве аргумента ссылка могут быть переданы несколько диапазонов ячеек. Для этого необходимо использовать еще по одной открывающей и закрывающей скобки (в этом случае Excel не будет распознавать символ «;» как разделитель аргументов в функции. Например, результатом выполнения функции с указанными аргументами: ((A1:C5;E1:H12)) будет значение 2, поскольку в качестве аргумента переданы два диапазона ячеек.
  3. Если аргумент рассматриваемой функции ссылается на диапазон ячеек, находящихся на еще не созданном листе, Excel предложит создать лист с указанным именем и сохранить книгу.
  4. Если некоторые ячейки, например, A1 и B1 были объединены, при выделении полученной ячейки в строке имен будет отображено имя «A1». Несмотря на объединение ячеек функция с аргументами ((A1;B1)) все равно вернет значение 2. Эта особенность показана на рисунке ниже:
  5. Функция возвращает значения даже для заблокированных ячеек на листах со включенной функцией защиты.

Ячейки и диапазоны

Некоторые из Вас, должно быть, обратили внимание на такой инструмент Excel как Paste Special (Специальная вставка). Многим, возможно, приходилось испытывать недоумение, если не разочарование, при копировании и вставке…

Большинство из нас используют разрывы строк даже на задумываясь. Разрывы могут быть использованы для начала нового абзаца в Microsoft Word, в повседневных ситуациях, когда пишите письмо по электронной…

Как закрепить строку, столбец или область в Excel? – частый вопрос, который задают начинающие пользователи, когда приступают к работе с большими таблицами. Excel предлагает несколько инструментов, чтобы сделать…

Если в Вашей таблице Excel присутствует много пустых строк, Вы можете удалить каждую по отдельности, щелкая по ним правой кнопкой мыши и выбирая в контекстном меню команду Delete…

Иногда мы аккуратно и старательно вводим данные в столбцах Excel и только к концу понимаем, что гораздо удобнее расположить их горизонтально, т.е. не в столбцах, а в строках….

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

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

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

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

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

Именованные диапазоны

Для чего вообще нужны именованные диапазоны? Обращение к именованному диапазону гораздо удобнее, чем прописывание адреса в формулах и VBA:

  • Предположим, что в формуле мы ссылаемся на диапазон A1:C10 (возможно даже не один раз). Для примера возьмем простую функцию СУММ(суммирует значения указанных ячеек):
    =СУММ( A1:C10 ; F1:K10 )
    Затем нам стало необходимо суммировать другие данные(скажем вместо диапазона A1:C10 в диапазоне D2:F11 ). В случае с обычным указанием диапазона нам придется искать все свои формулы и менять там адрес диапазона на новый. Но если назначить своему диапазону A1:C10 имя(к примеру ДиапазонСумм ), то в формуле ничего менять не придется — достаточно будет просто изменить ссылку на ячейки в самом имени один раз. Я привел пример с одной формулой — а что, если таких формул 10? 30?
    Примерно такая же ситуация и с использованием в кодах: указав имя диапазона один раз не придется каждый раз при изменении и перемещении этого диапазона прописывать его заново в коде.
  • Именованный диапазон не просто так называется именованным. Если взять пример выше — то отображение в формуле названия ДиапазонСумм куда нагляднее, чем A1:C10 . В сложных формулах куда проще будет ориентироваться по именам, чем по адресам. Почему удобнее: если сменить стиль отображения ссылок (подробнее про стиль), то диапазон A1:C10 будет выглядеть как-то вроде этого: R1C1:R10C3 . А если назначить имя — то оно как было ДиапазонСумм , так им и останется.
  • При вводе формулы/функции в ячейку, можно не искать нужный диапазон, а начать вводить лишь первые буквы его имени и Excel предложит его ко вводу:

    Данный метод доступен лишь в версиях Excel 2007 и выше

Как обратиться к именованному диапазону
Обращение к именованному диапазону из VBA

MsgBox Range(«ДиапазонСумм»).Address MsgBox [ДиапазонСумм].Address

Обращение к именованному диапазону в формулах/функциях

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

Ограничения, накладываемые на создание имен

  • В качестве имени диапазона не могут быть использованы словосочетания, содержащие пробел. Вместо него лучше использовать нижнее подчеркивание _ или точку: Name_1, Name.1
  • Первым символом имени должна быть буква, знак подчеркивания (_) или обратная косая черта (). Остальные символы имени могут быть буквами, цифрами, точками и знаками подчеркивания
  • Нельзя в качестве имени использовать зарезервированные в Excel константы — R, C и RC(как прописные, так и строчные). Связано с тем, что данные буквы используются самим Excel для адресации ячеек при использовании стиля ссылок R1C1 (читать подробнее про стили ссылок)
  • Нельзя давать именам названия, совпадающие с адресацией ячеек: B$100, D2(для стиля ссылок А1) или R1C1, R7(для стиля R1C1). И хотя при включенном стиле ссылок R1C1 допускается дать имени название вроде A1 или D130 — это не рекомендуется делать, т.к. если впоследствии стиль отображения ссылок для книги будет изменен — то Excel не примет такие имена и предложит их изменить. И придется изменять названия всех подобных имен. Если очень хочется — можно просто добавить нижнее подчеркивание к имени: _A1
  • Длина имени не может превышать 255 символов

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

Способ второй
Выделяем ячейку или группу ячеек. Жмем правую кнопку мыши для вызова контекстного меню ячеек. Выбираем пункт:

  • Excel 2007: Имя диапазона (Range Name)
  • Excel 2010: Присвоить имя (Define Name)


либо:
Жмем Ctrl + F3
либо:

  • 2007-2016 Excel : вкладка Формулы (Formulas)Диспетчер имен (Name Manager)Создать (New) (либо на той же вкладке сразу — Присвоить имя (Define Name) )
  • 2003 Excel : ВставкаИмяПрисвоить

Появляется окно создания имени

Имя (Name) — указывается имя диапазона. Необходимо учитывать ограничения для имен, которые я описывал в начале статьи.
Область (Scope) — указывается область действия создаваемого диапазона — Книга , либо Лист1 :

  • Лист1 (Sheet1) — созданный именованный диапазон будет доступен только из указанного листа. Это позволяет указать разные диапазоны для разных листов, но указав одно и тоже имя диапазона
  • Книга (Workbook) — созданный диапазон можно будет использовать из любого листа данной книги

Примечание (Comment) — здесь можно записать пометку о созданном диапазоне, например для каких целей планируется его использовать. Позже эту информацию можно будет увидеть из диспетчера имен ( Ctrl + F3 )
Диапазон (Refers to) — при данном способе создания в этом поле автоматически проставляется адрес выделенного ранее диапазона. Его можно при необходимости тут же изменить.

Изменение диапазона
Чтобы изменить имя Именованного диапазона, либо ссылку на него необходимо всего лишь вызывать диспетчер имен( Ctrl + F3 ), выбрать нужное имя и нажать кнопку Изменить (Edit. ) .
Изменить можно имя диапазона (Name) , ссылку (RefersTo) и Примечание (Comment) . Область действия (Scope) изменить нельзя, для этого придется удалить текущее имя и создать новое, с новой областью действия.

Удаление диапазона
Чтобы удалить Именованный диапазон необходимо вызывать диспетчер имен( Ctrl + F3 ), выбрать нужное имя и нажать кнопку Удалить (Delete. ) .

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

Статья помогла? Поделись ссылкой с друзьями!

Именованный диапазон в Excel

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

Имя ячейки

Начнем с простого — присвоим имя ячейке. Для этого просто выделяем ее (1) и в поле имени (2) вместо адреса ячейки указываем произвольное название, которое легко запомнить.

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

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

Именованный диапазон

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

Далее это название можно использовать в формулах, например, при вычислении суммы:

Также создать именованный диапазон можно с помощью вкладки Формулы , выбрав инструмент Задать имя .

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

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

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

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

Именованный диапазон из таблицы

Если же диапазон значений имеет заголовки или речь идет о таблице, то стоит воспользоваться инструментом Создать из выделенного . Как понятно из его названия, предварительно необходимо выделить диапазон или таблицу (1). Затем указываем место, в котором находятся заголовки (3).

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

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

Использование именованных диапазонов

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

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

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

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

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

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

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

Умные Таблицы Excel – секреты эффективной работы

В MS Excel есть много потрясающих инструментов, о которых большинство пользователей не подозревают или сильно недооценивает. К таковым относятся Таблицы Excel. Вы скажете, что весь Excel – это электронная таблица? Нет. Рабочая область листа – это только множество ячеек. Некоторые из них заполнены, некоторые пустые, но по своей сути и функциональности все они одинаковы.

Таблица Excel – совсем другое. Это не просто диапазон данных, а цельный объект, у которого есть свое название, внутренняя структура, свойства и множество преимуществ по сравнению с обычным диапазоном ячеек. Также встречается под названием «умные таблицы».

Как создать Таблицу в Excel

В наличии имеется обычный диапазон данных о продажах.

Для преобразования диапазона в Таблицу выделите любую ячейку и затем Вставка → Таблицы → Таблица

Есть горячая клавиша Ctrl+T.

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

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

Перед тем, как перейти к свойствам Таблицы, посмотрим вначале, как ее видит сам Excel. Многое сразу прояснится.

Структура и ссылки на Таблицу Excel

Каждая Таблица имеет свое название. Это видно во вкладке Конструктор, которая появляется при выделении любой ячейки Таблицы. По умолчанию оно будет «Таблица1», «Таблица2» и т.д.

Если в вашей книге Excel планируется несколько Таблиц, то имеет смысл придать им более говорящие названия. В дальнейшем это облегчит их использование (например, при работе в Power Pivot или Power Query). Я изменю название на «Отчет». Таблица «Отчет» видна в диспетчере имен Формулы → Определенные Имена → Диспетчер имен.

А также при наборе формулы вручную.

Но самое интересное заключается в том, что Эксель видит не только целую Таблицу, но и ее отдельные части: столбцы, заголовки, итоги и др. Ссылки при этом выглядят следующим образом.

=Отчет[#Все] – на всю Таблицу
=Отчет[#Данные] – только на данные (без строки заголовка)
=Отчет[#Заголовки] – только на первую строку заголовков
=Отчет[#Итоги] – на итоги
=Отчет[@] – на всю текущую строку (где вводится формула)
=Отчет[Продажи] – на весь столбец «Продажи»
=Отчет[@Продажи] – на ячейку из текущей строки столбца «Продажи»

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

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

Если в какой-то ячейке написать формулу для суммирования по всему столбцу «Продажи»

то она автоматически переделается в

Т.е. ссылка ведет не на конкретный диапазон, а на весь указанный столбец.

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

А теперь о том, как Таблицы облегчают жизнь и работу.

Свойства Таблиц Excel

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

2. Если Таблица большая, то при прокрутке вниз названия столбцов Таблицы заменяют названия столбцов листа.

Очень удобно, не нужно специально закреплять области.

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

4. Новые значения, записанные в первой пустой строке снизу, автоматически включаются в Таблицу Excel, поэтому они сразу попадают в формулу (или диаграмму), которая ссылается на некоторый столбец Таблицы.


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

5. Новые столбцы также автоматически включатся в Таблицу.

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

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

Настройки Таблицы

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

С помощью галочек в группе Параметры стилей таблиц

можно внести следующие изменения.

— Удалить или добавить строку заголовков

— Добавить или удалить строку с итогами

— Сделать формат строк чередующимися

— Выделить жирным первый столбец

— Выделить жирным последний столбец

— Сделать чередующуюся заливку строк

— Убрать автофильтр, установленный по умолчанию

В видеоуроке ниже показано, как это работает в действии.

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

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

Однако самое интересное – это создание срезов.

Срез – это фильтр, вынесенный в отдельный графический элемент. Нажимаем на кнопку Вставить срез, выбираем столбец (столбцы), по которому будем фильтровать,

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

Для фильтрации Таблицы следует выбрать интересующую категорию.

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

Попробуйте сами, как здорово фильтровать срезами (кликается мышью).

Для настройки самого среза на ленте также появляется контекстная вкладка Параметры. В ней можно изменить стиль, размеры кнопок, количество колонок и т.д. Там все понятно.

Ограничения Таблиц Excel

Несмотря на неоспоримые преимущества и колоссальные возможности, у Таблицы Excel есть недостатки.

1. Не работают представления. Это команда, которая запоминает некоторые настройки листа (фильтр, свернутые строки/столбцы и некоторые другие).

2. Текущую книгу нельзя выложить для совместного использования.

3. Невозможно вставить промежуточные итоги.

4. Не работают формулы массивов.

5. Нельзя объединять ячейки. Правда, и в обычном диапазоне этого делать не следует.

Однако на фоне свойств и возможностей Таблиц, эти недостатки практически не заметны.

Множество других секретов Excel вы найдете в онлайн курсе.

Хитрости »

12 Июнь 2012              187282 просмотров


Каждому пользователю свой лист/диапазон

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

  • Разграничение доступа к ячейкам стандартными средствами

Разграничение прав доступа при помощи VBA

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

Разграничение доступа к ячейкам стандартными средствами

Для разграничения доступа к ячейкам на листе можно воспользоваться инструментом Разрешить изменение диапазонов(Allow Users to Edit Ranges), расположенном на вкладке Рецензирование(Review), группа Изменения(Changes):
Разрешить изменение диапазонов
Это стандартный инструмент, для использования которого нет необходимости подключать что-то дополнительно и он относительно прост в использовании.
Данный инструмент позволяет назначить каждому отдельному диапазону ячеек свои пароли, диапазоны могут располагаться на разных листах книги или на одном листе:
Пример таблицы
Например, сотрудники коммерческого отдела в общем файле бюджета(картинка выше) должны иметь возможность заполнять только ячейки строк со статьями выручки (строки 8-11, 13-14), а производственный отдел строки 18-22, в которых расположены статьи по расходам производственного отдела. При этом сотрудники коммерческого отдела не должны иметь возможность изменять данные статей другого отдела – каждый только данные своих статей.
Для начала необходимо для сотрудников каждого отдела создать отдельные диапазоны, к которым они будут иметь доступ. Для этого переходим на вкладку Рецензирование(Review) -группа Изменения(Changes)Разрешить изменение диапазонов(Allow Users to Edit Ranges). Появится диалоговое окно создания/изменения диапазонов:
Создание диапазонов
Нажимаем Создать(New). Появится другое окно, в котором необходимо указать имя диапазона

(Title)

(

коммерческий

), доступные для изменения ячейки

(Refers to cells)

(

C8:N11;C13:N14

) и вписать пароль

(Range password)

(

1111

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

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

Точно так же создаем второй диапазон – «производственный», но для него указываем другой пароль(например –

2222

). После этого у нас в главном окне управления диапазонами будет два диапазона:
Просмотр диапазонов
Здесь можно еще раз проверить все ли правильно указано, при необходимости изменить (так же изменить диапазоны можно в любое время, вызвав данное окно с вкладки Рецензирование(Review)Разрешить изменение диапазонов). После этого нажимаем Применить(Apply).
Теперь, чтобы такая защита сработала необходимо непосредственно защитить лист. Это можно сделать либо сразу из этого же окна, нажав кнопку Защитить лист, либо закрыв окно перейти на вкладку Рецензирование(Review) и в группе Изменения(Changes) выбрать Защитить лист(Protect sheet):
Параметры защиты листа
В появившемся окне проставляем галочки для тех действий, которые мы хотим разрешить делать пользователю на защищенном листе без ввода пароля(например, на картинке выше помимо стандартного выделения ячеек разрешена вставка столбцов. Подробнее про защиту листов и ячеек можно прочитать в статье — Защита листов и ячеек в MS Excel). Указываем пароль (например

3333

), подтверждаем пароль в появившемся окне и нажимаем Ок. Лист защищен.

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

Теперь остается сообщить сотрудникам отделов их пароли: производственный — 2222, коммерческий – 1111.
При первой попытке изменить данные в ячейках C8:N11;C13:N14- будет запрошен пароль на изменение ячеек созданного диапазона «коммерческий» (1111):
Доступ к диапазону
Если пользователю известен пароль для диапазона – его необходимо будет ввести лишь один раз. В дальнейшем для ввода данных в ячейки этого диапазона вводить пароль не придется до тех пор, пока файл не будет закрыт. После повторного открытия файла пароль необходимо будет указать заново.
Однако, если сотрудник другого отдела попытается изменить ячейки производственного отдела и пароль ему неизвестен – изменить данные этих ячеек не получится.
Также ни сотрудники коммерческого отдела, ни сотрудники производственного отдела не смогут изменить данные столбцов А и В(№ и наименование статьи), заголовки таблицы(строки с 1-ой по 7-ю) и строки с итоговыми формулами (12, 15 и т.д. – закрашенные зеленым). Они смогут изменять только те ячейки, которые перечислены в назначенных каждому отделу диапазонах. Внести данные в другие ячейки(не перечисленные в разрешенных диапазонах) можно будет исключительно сняв общий доступ с книги, а после этого защиту с листа –Рецензирование(Review) -группа Изменения(Changes)Снять защиту листа(Unprotect sheet). Но снять общую защиту сможет только тот, кто её создавал и кому известен «главный» пароль. Как правило это администратор или некий «смотрящий» файла и другие пользователи этот пароль не знают.
Плюс подобного метода в том, что такая защита может быть установлена для книги в общем доступе(подробнее про книги с общим доступом можно прочитать в статье — Ведение журнала сделанных в книге изменений).
Что необходимо учитывать для книг с общим доступом: создавать диапазоны для пользователей и устанавливать защиту на лист необходимо ДО назначения книге общего доступа, т.к. после того, как книге будет назначен общий доступ изменять параметры защиты листов и книги запрещено. При этом запрещены как установка защиты так и её снятие.
Минус данного метода в том, что нет дружественного интерфейса снятия защиты. Например, при попытке изменить какие-то ячейки одного из назначенных диапазонов нет никакой информации о том, что это за диапазон(коммерческий или производственный). Что в свою очередь может запутать пользователя. Так же данным методом невозможно скрыть листы, либо отдельные строки и столбцы. Можно лишь запретить изменение ячеек.


Разграничение прав доступа при помощи VBA
Самый большой минус всех методов ниже:

они

не будут работать при отключенных макросах

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

Плюс подобного подхода

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

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

  • Доступ пользователям только к определенным листам
    Исходная задача: дать возможность пользователю видеть и работать только на определенных листах — тех, которые мы ему выделили. При этом он даже не подозревает, что есть другие листы. Как работает. Открываем файл — автоматом отображается лишь один лист «Main», доступный всем пользователям, жмем на кнопку, появляется форма:

    В форме необходимо выбрать пользователя и указать пароль, соответствующий этому пользователю. Важно: Пароли и список доступных листов можно редактировать на очень скрытом листе «Users». Для каждого пользователя можно указать несколько листов. Указывать имена листов необходимо в точности такие же, какие они на самом деле. Это значит, что и регистр букв и каждый пробел должен быть учтен. Для разделения записей с несколькими листами используется точка-с-запятой(Лист1;Лист2;Лист3).
    На листе «Main» перечислены имена пользователей, пароли для них и доступные для просмотра листы. Данная информация указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».

    Важно: файл может работать нестабильно в книгах с общим доступом.

    Скачать пример

      Tips_Macro_Sheets_for_Users.xls (84,5 KiB, 10 565 скачиваний)

  • Доступ пользователю к определенным листам и возможность изменять только отдельные ячейки
    Помимо того, что можно ограничить пользователю свободу выбора листов, ему можно еще и ограничить диапазоны ячеек, которые ему разрешено изменять. Иначе говоря, человек сможет работать только на Лист1 и Лист2 и вносить изменения только в указанные для каждого из листов ячейки. Файл с примером работает так же, как и пример выше: открываем книгу — видим только один лист «Main», жмем кнопку. Появляется форма, выбираем пользователя. Появятся только разрешенные листы и на этих листах можно изменять только те ячейки, который мы разрешим в настройках. При этом диапазоны для изменения можно указать для каждого листа разные. Важно: Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе «Users». Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым.
    Чтобы разрешить изменять диапазоны на Лист1 — А1:А10 и А15:А20, а на Лист2 — В1:В10 и В15:В20, необходимо на листе «Users» указать листы: Лист1;Лист2 и диапазоны: A1:A10,A15:A20;B1:B10,B15:B20
    На листе «Main» пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».
    Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = «1234»:
    Сменить пароль на листы

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

    Скачать пример

      Tips_Macro_Sheets_Rng_for_Users.xls (86,0 KiB, 4 882 скачиваний)

  • Доступ к определенным листам и скрытие указанных строк/столбцов
    И еще чуть-чуть испортим жизнь пользователю: каждому пользователю видны только свои листы и виден только свой диапазон на этом листе. Точнее — строка или столбец. Все так же, как и в файлах выше(Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе «Users». Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым).
    На листе «Users» доступны следующие настройки: в самом правом столбце необходимо указать скрывать столбцы(C) или строки(R) указанного диапазона.
    Например, указаны диапазоны на Лист1 — А1:А10 и А15:А20, а на Лист2 — В1:В10 и В15:В20, а в правом столбце — R;C. Значит на Лист1 будут скрыты строки 1:10, 15:20, а на Лист2 столбец В. Почему так заумно? Потому что нельзя скрыть только отдельные ячейки — можно скрыть лишь столбцы или строки полностью.
    На листе «Main» пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».
    Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = «1234»:
    Сменить пароль на листы

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

    Скачать пример

      Tips_Macro_Sheets_Hide_Rng_for_Users.xls (100,0 KiB, 4 537 скачиваний)

  • Практический пример с использованием администратора
    Все примеры выше имеют один маленький недостаток: при открытии файла виден один лист и надо жать на кнопку, чтобы выбрать пользователя. Это не всегда удобно. Плюс есть недостаток куда хуже: для изменения настроек всегда надо вручную отображать лист настроек, а может и другие листы. Поэтому ниже я приложил файл, форма в котором открывается сразу после открытия файла:
    Форма авторизации
    Если выбрать «Пользователь» — admin, указать «Пароль» — 1, то все листы файла будут отображены. Другим пользователям будут доступны только назначенные листы. Таким образом, пользователь, назначенный администратором сможет легко и удобно менять настройки и права доступа пользователей: добавлять и изменять пользователей, их пароли, листы для работы(они доступны на листе Users, как и в файлах выше). После внесения изменений надо просто закрыть файл — он сохраняется автоматически, скрывая все лишние листы.
    При этом если пользователя нет в списке или пароли ему неизвестны, то при нажатии кнопки Отмена или закрытии формы крестиком файл так же закроется. Таким образом к файлу будет доступ только тем пользователям, которые перечислены в листе Users, что исключает доступ к файлу посторонних лиц.
    Если макросы будут отключены, то пользователь увидит лишь один лист — с инструкцией о том, как включить макросы. Остальные листы будут недоступны.
    В реальных условиях не лишним будет закрыть доступ к проекту VBA паролем: Как защитить проект VBA паролем

    Важно: файл может работать нестабильно в книгах с общим доступом.

    Скачать пример

      Tips_Macro_UsersRulesOnStart.xls (72,0 KiB, 6 294 скачиваний)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Сборка данных со всех листов книги в одну таблицу

Постановка задачи

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

Исходный файл

Давайте будем исходить из следующих соображений:

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

Наша задача — собрать все данные со всех листов в одну таблицу, чтобы потом с ней работать (фильтровать, сортировать, построить сводную и т.д.) Сделать это можно разными способами, но самыми удобными будут, пожалуй, Power Query и макросы.

Способ 1. Сборка данных с листов с помощью Power Query

Если вы ещё не сталкивались в своей работе с Power Query, то очень советую копнуть в этом направлении. Использование этой бесплатной и уже встроенной по умолчанию в Excel надстройки, способно полностью перевернуть весь ваш процесс сбора и анализа данных, упростив всё в разы. С задачей сбора данных с листов Power Query справляется весьма успешно.

Шаг 1. Подключаемся к файлу

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

Если у вас Excel 2010-2013 и вы установили Power Query как отдельную надстройку, то откройте вкладку Power Query, если у вас Excel 2016 или новее, то вкладку Данные (Data). Нажмите кнопку Получить данные / Создать запрос — Из файла — Книга Excel (Get Data / New Query — From file — From Excel) и укажите наш файл с исходными листами:

Указываем файл

В появившемся окне Навигатора (Navigator) выберите слева любой лист и нажмите в правом нижнем углу кнопку Преобразовать данные (Transform Data) или Изменить (Edit):

Выбираем любой лист

Должно появиться окно редактора запросов Power Query, где отобразятся данные с выбранного листа. Поскольку нам нужен, на самом деле, не один лист, а все, то удалим в правой панели все шаги, кроме первого шага Источник (Source) используя крестик слева от названия шага:

Удаляем лишние шаги

То, что останется после удаления шагов — это список всех объектов, которые Power Query «видит» во внешних файлах, а это:

  • листы (Sheet)
  • «умные таблицы» (Table)
  • именованные диапазоны (Defined Name)
  • области печати (Print Area), которые, по сути, являются одним из видов именованного диапазона

Шаг 2. Отбираем нужные листы

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

Во-первых, легко можно отфильтровать нужные объекты по типу по столбцу Kind. Например, если вам нужны только листы:

Фильтруем листы

Во-вторых, если нам нужны только видимые листы, то дополнительно можно отфильтровать ещё по столбцу Hidden.

В-третьих, если вы точно знаете размер таблиц, которые вам нужны, то можно легко добавить к нашему списку вычисляемый столбец с формулой, выводящей количество столбцов или строк и использовать потом эти числа для отбора. Для этого выберем на вкладке Добавление столбца — Настраиваемый столбец (Add Column — Custom Column) и введём в открывшееся окно следующую формулу (с учётом регистра):

Подсчет числа столбцов

Для подсчёта количества строк можно использовать аналогичную функцию Table.RowCount. Получившийся столбец затем можно использовать для фильтрации «мусорных» таблиц.

В-четвёртых, можно извлечь с каждого листа содержимое любой ячейки (например, А1) и использовать его для отбора. Например, если там нет слова «Товар«, то это не наш лист. Для извлечения нужно будет также добавить вычисляемый столбец с такой конструкцией:

=[Data][Column1]{0}

Здесь:

  • [Data] — имя столбца, где в каждой ячейке лежат таблицы с содержимым каждого листа (убийственная формулировка для рядового пользователя Excel, да, я знаю)
  • [Column1] — имя столбца на листе, из которого мы хотим извлечь данные
  • {0} — номер строки (считая с нуля), откуда мы хотим взять данные

Извлекаем содержимое А1 с каждого листа

После фильтрации «мусора» все добавленные вспомогательные столбцы можно, конечно же, спокойно удалить, оставив только колонки Name и Data.

Шаг 3. Разворачиваем таблицы

Теперь развернём содержимое таблиц в одно целое, используя кнопку с двойными стрелками в заголовке столбца Data, отключив флажок Использовать исходное имя столбца как префикс (Use original column name as prefix):

Разворачиваем вложенные таблицы

После нажатия на ОК Power Query соберёт для нас все данные в одну мегатаблицу со всех отобранных листов нашего файла:

Собранные данные

Останется лишь «навести блеск», а именно:

  1. Поднять первую строку в шапку таблицы кнопкой Использовать первую строку в качестве заголовков (Use first row as headers) на вкладке Главная (Home).
  2. Переименовать первый столбец в Город двойным щелчком на заголовку.
  3. Удалить повторяющиеся шапки таблиц, попавшие в одну кучу вместе с данными, используя фильтр по столбцу Товар.

Всё. Осталось только дать нашему запросу подходящее имя (например, Сборка) в панели справа и выгрузить затем собранные данные обратно в Excel кнопкой Закрыть и загрузить на вкладке Главная (Home — Close & Load):

Собранные данные

В будущем, при любых изменениях в исходном файле достаточно будет лишь обновить наш запрос, щелкнув по собранной таблице правой кнопкой мыши и выбрав команду Обновить (Refresh) или такой же кнопкой на вкладке Данные (Data) или сочетанием клавиш Ctrl+Alt+F5.

Плюсы такого подхода:

  • Не нужно уметь программировать, всё делается быстро и почти без использования клавиатуры.
  • Последовательность столбцов на разных листах может быть различной — это не играет роли, столбцы правильно встанут друг под друга в итоговой сборке.
  • Можно быстро обновлять запрос при изменении исходных данных.

Минусы этого способа:

  • Собираются только значения, т.е. формулы с исходных листов не сохраняются.
  • Названия столбцов должны на всех листах совпадать с точностью до регистра.
  • Нельзя выбрать какой именно диапазон берётся с каждого листа — это определяется автоматически (берётся всё, что есть).
  • Для обновления нужен Excel 2016 или новее или установленная надстройка Power Query.

Способ 2. Сборка данных с листов макросом на VBA

Похожего результата можно добиться и с помощью более «классического» подохода — макросом на VBA. Для этого на вкладке Разработчик (Developer) нажмите кнпоку Visual Basic или воспользуйтесь сочетанием клавиш Alt+F11. В открывшемся окне добавьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:

Sub CollectDataFromAllSheets()
    Dim ws As Worksheet
    
    Set wbCurrent = ActiveWorkbook
    Workbooks.Add
    Set wbReport = ActiveWorkbook
    
    'копируем на итоговый лист шапку таблицы из первого листа
    wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")
    
    'проходим в цикле по всем листам исходного файла
    For Each ws In wbCurrent.Worksheets
    
        'определяем номер последней строки на текущем листе и на листе сборки
        n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count
        
        'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор:
        Set rngData = ws.Range("A1:D5")            'фиксированный диапазон или
        Set rngData = ws.UsedRange                 'всё, что есть на листе или
        Set rngData = ws.Range("F5").CurrentRegion    'область, начиная от ячейки F5 или
        Set rngData = ws.Range("A2", ws.Range("A2").SpecialCells(xlCellTypeLastCell))    'от А2 и до конца листа
        
        'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки
        rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
        
    Next ws
End Sub

Запустить созданный макрос можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или с помощью сочетания клавиш Alt+F8. Макрос автоматически создаст новую книгу и скопирует туда нужные вам данные.

Плюсы такого подхода:

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

Минусы этого способа:

  • Последовательность столбцов на всех листах должна быть одинаковой, т.к. происходит, по сути, тупое копирование таблиц друг-под-друга.
  • Защита от макросов должна быть отключена.
  • Быстрого обновления, как это было с Power Query, здесь, к сожалению, не будет. При изменении исходных данных придётся запустить макрос повторно.

Способ 3. Готовый макрос из надстройки PLEX

Если лень возиться с макросами или Power Query, то можно пойти по пути наименьшего сопротивления — использовать готовый макрос (кнопка Собрать) из моей надстройки PLEX для Excel. Это, может, и не спортивно, но зато эффективно:

Сборка данных с листов через PLEX

В общем, выбирайте любой удобный вам вариант и действуйте. Выбор — это всегда хорошо.

Ссылки по теме

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

МЕНЮ САЙТА

  • 1
  • 2
  • 3
  • Главная

    • Информация о сайте

      • О сайте

      • Контакты

      • Карта сайта

      • Книга отзывов

      • Участники

      • Статистика

    • Развите сайта

      • Новости

      • Помочь сайту

    • Друзья

    • FAQ

  • Excel

    • Приемы работы

      • Рабочая область

      • Формулы

      • Сводные таблицы

      • Форматирование

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

      • Примечания

      • Гиперссылки

    • Инструменты и настройки

      • Инструменты

      • Тонкая настройка

    • Импорт данных

    • Интеграция

      • Приложения офиса

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

    • Excel

      • Формулы

      • Сводные таблицы

      • Диаграммы

      • Полезные приемы

    • VBA

      • Процедуры

      • Пользовательские функции

      • Полезные приемы

  • Форумы

    • Вопросы и решения

      • Вопросы по Excel

      • Вопросы по VBA

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

      • Excel и другие приложения

    • Работа и общение

      • Неформальное общение

      • Мозговой штурм

      • Работа/Фриланс

    • Работа форума и сайта

      • Вопросы по работе форума и сайта

      • Объявления администрации

  • Библиотека

    • Книги по Excel

      • Функции и формулы

      • Графики и диаграммы

      • Сводные таблицы

      • Excel и VBA

    • Книги по VBA

      • Применение VBA в Excel

      • Программирование на VBA

    • Разное

      • Сборники книг

      • Книги для студентов ВУЗов

      • Специализированные книги

  • Видеосалон

    • Видео к статьям

    • Видеофайлы

  • Справочники

    • Функции листа Excel

    • Функции VBA

  • Разработчик

    • Код

    • Надстройки

    • Элементы управления

    • XLM

    • Программы

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

Приёмы работы с книгами, листами, диапазонами, ячейками
[6]

Приёмы работы с формулами
[13]

Настройки Excel
[3]

Инструменты Excel
[4]

Интеграция Excel с другими приложениями
[4]

Форматирование
[1]

Выпадающие списки
[2]

Примечания
[1]

Сводные таблицы
[1]

Гиперссылки
[1]

Excel и интернет
[1]

Excel для Windows и Excel для Mac OS
[2]

ОПРОСЫ

Какой версией Excel Вы пользуетесь?

Office 365

Excel 2021

Excel 2019

Excel 2016

Excel 2013

Excel 2010

Excel 2007

Excel 2003

Excel 2002

Excel 2000

Excel 1997 или ранее

Mac Excel

[ Результаты · Все опросы ]

Всего ответов: 55669

Главная » Статьи » Эффективная работа в Excel » Приёмы работы с книгами, листами, диапазонами, ячейками

В категории материалов: 6
Показано материалов: 1-6

Сортировать по:
Дате ·
Названию ·
Рейтингу ·
Комментариям ·
Просмотрам


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

Бывает необходимо быстро изменить значения на определённую величину. Причём значений может быть тысячи и формулами пользоваться неудобно…

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 153323 |

Добавил: Serge_007 |
Дата: 14.08.2011
| Комментарии (29)

Назначить свои названия заголовкам столбцов при работе с таблицей

Как назначить свои названия заголовкам столбцов листа?

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 56532 |

Добавил: Serge_007 |
Дата: 24.03.2011
| Комментарии (2)

Число сохранено как текст или Почему не считается сумма?

Преобразование типов

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 55254 |

Добавил: Pelena |
Дата: 17.11.2014
| Комментарии (2)

Быстрое заполнение диапазона значениями или формулами

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

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 54354 |

Добавил: Serge_007 |
Дата: 10.08.2011
| Комментарии (20)

Ввод дробных чисел

При вводе дробных чисел Excel интерпретирует их как даты. Как избежать этого?

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 12605 |

Добавил: Serge_007 |
Дата: 24.04.2011
| Комментарии (6)

Листы с «одинаковыми» названиями

Excel не позволяет присвоить одно и то же название более чем одному листу. А если очень надо?

Приёмы работы с книгами, листами, диапазонами, ячейками |
Просмотров: 11225 |

Добавил: Serge_007 |
Дата: 24.04.2011
| Комментарии (10)

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel книга для пользователя скачать бесплатно
  • Excel клавиши удалить примечание
  • Excel календарь 2013 года
  • Excel календарных дней в месяце
  • Excel календарный план на год

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии