Диапазон в формуле в excel
Именованный диапазон в MS EXCEL
Обычно ссылки на диапазоны ячеек вводятся непосредственно в формулы, например =СУММ(А1:А10) . Другим подходом является использование в качестве ссылки имени диапазона. В статье рассмотрим какие преимущества дает использование имени.
Назовем Именованным диапазоном в MS EXCEL, диапазон ячеек, которому присвоено Имя (советуем перед прочтением этой статьи ознакомиться с правилами создания Имен).
Преимуществом именованного диапазона является его информативность. Сравним две записи одной формулы для суммирования, например, объемов продаж: =СУММ($B$2:$B$10) и =СУММ(Продажи) . Хотя формулы вернут один и тот же результат (если, конечно, диапазону B2:B10 присвоено имя Продажи), но иногда проще работать не напрямую с диапазонами, а с их именами.
Совет: Узнать на какой диапазон ячеек ссылается Имя можно через Диспетчер имен расположенный в меню Формулы/ Определенные имена/ Диспетчер имен .
Ниже рассмотрим как присваивать имя диапазонам. Оказывается, что диапазону ячеек можно присвоить имя по разному: используя абсолютную или смешанную адресацию.
Задача1 (Именованный диапазон с абсолютной адресацией)
Пусть необходимо найти объем продаж товаров (см. файл примера лист 1сезон):
Присвоим Имя Продажи диапазону B2:B10. При создании имени будем использовать абсолютную адресацию.
- выделите, диапазон B2:B10на листе1сезон;
- на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
- в поле Имя введите: Продажи;
- в поле Область выберите лист 1сезон(имя будет работать только на этом листе) или оставьте значение Книга, чтобы имя было доступно на любом листе книги;
- убедитесь, что в поле Диапазон введена формула =’1сезон’!$B$2:$B$10
- нажмите ОК.
Теперь в любой ячейке листа 1сезон можно написать формулу в простом и наглядном виде: =СУММ(Продажи) . Будет выведена сумма значений из диапазона B2:B10.
Также можно, например, подсчитать среднее значение продаж, записав =СРЗНАЧ(Продажи) .
Обратите внимание, что EXCEL при создании имени использовал абсолютную адресацию $B$1:$B$10 . Абсолютная ссылка жестко фиксирует диапазон суммирования: в какой ячейке на листе Вы бы не написали формулу =СУММ(Продажи) – суммирование будет производиться по одному и тому же диапазону B1:B10.
Иногда выгодно использовать не абсолютную, а относительную ссылку, об этом ниже.
Задача2 (Именованный диапазон с относительной адресацией)
Теперь найдем сумму продаж товаров в четырех сезонах. Данные о продажах находятся на листе 4сезона (см. файл примера ) в диапазонах: B2:B10, C2:C10, D2:D10, E2:E10. Формулы поместим соответственно в ячейках B11, C11, D11, E11.
По аналогии с абсолютной адресацией из предыдущей задачи, можно, конечно, создать 4 именованных диапазона с абсолютной адресацией, но есть решение лучше. С использованием относительной адресации можно ограничиться созданием только одного Именованного диапазона Сезонные_продажи.
- выделите ячейку B11, в которой будет находится формула суммирования (при использовании относительной адресации важно четко фиксировать нахождение активной ячейки в момент создания имени);
- на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
- в поле Имя введите: Сезонные_Продажи;
- в поле Область выберите лист 4сезона(имя будет работать только на этом листе);
- убедитесь, что в поле Диапазон введена формула =’4сезона’!B$2:B$10
- нажмите ОК.
Мы использовали смешанную адресацию B$2:B$10 (без знака $ перед названием столбца). Такая адресация позволяет суммировать значения находящиеся в строках 2, 3,…10, в том столбце, в котором размещена формула суммирования. Формулу суммирования можно разместить в любой строке ниже десятой (иначе возникнет циклическая ссылка).
Теперь введем формулу =СУММ(Сезонные_Продажи) в ячейку B11. Затем, с помощью Маркера заполнения, скопируем ее в ячейки С11, D11, E11, и получим суммы продаж в каждом из 4-х сезонов. Формула в ячейках B11, С11, D11 и E11 одна и та же!
СОВЕТ:
Если выделить ячейку, содержащую формулу с именем диапазона, и нажать клавишу F2, то соответствующие ячейки будут обведены синей рамкой (визуальное отображение Именованного диапазона).
Использование именованных диапазонов в сложных формулах
Предположим, что имеется сложная (длинная) формула, в которой несколько раз используется ссылка на один и тот же диапазон:
Если нам потребуется изменить ссылку на диапазон данных, то это придется сделать 3 раза. Например, ссылку E2:E8 поменять на J14:J20.
Но, если перед составлением сложной формулы мы присвоим диапазону E2:E8 какое-нибудь имя (например, Цены), то ссылку на диапазон придется менять только 1 раз и даже не в формуле, а в Диспетчере имен!
Более того, при создании формул EXCEL будет сам подсказывать имя диапазона! Для этого достаточно ввести первую букву его имени.
Excel добавит к именам формул, начинающихся на эту букву, еще и имя диапазона!
Динамический диапазон с автоподстройкой размеров
Есть ли у вас таблицы с данными в 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. Указать диапазон в формуле используя переменную
Макрос копирует данные со страницы и создает по ним сводную таблицу и диаграмму. Но создает ее по выбранному диапазону R1C1:R10C3. Как мне правильно вставить переменную i в формулу?
Буду очень признателен =)
Dim i As Long
i = 1
While Cells(i, 1) <> «»
i = i + 1
Wend
Range(Cells(1, 1), Cells(i — 1, 3)).Select
Sheets.Add.Name = «Table1»
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
«Данные!R1C1:R10C3», Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=»Table1!R1C1″, TableName:=»СводнаяТаблица», _
DefaultVersion:=xlPivotTableVersion15
Указать диапазон в формуле используя переменные
Добрый день! у меня такой вопрос: есть формула Excel, в которой используется для расчетов.
Сохранить выбранный диапазон в Excel в переменную
Нужно как-то сохранить выбранный диапазон в глобальную переменную чтобы потом его использовать.
Сохранить диапазон в переменную
Доброго времени суток! Подскажите как правильно реализовать: Что то типа настроек,что и откуда.
Как указать диапазон дат при использовании расширенного фильтра?
Как указать диапазон дат при использовании расширенного фильтра? Если писать например в одной.
Изменить диапазон на переменную, как?
Привет Всем! :K55, :E55, :F55, :I55, :H55 эти диапазоны всегда изменяются. Можно как то заменить.
Спасибо за помощь!
а что скажете насчет такого варианта?
Dim i As Long
i = 1
While Cells(i, 1) <> «»
i = i + 1
Wend
Range(Cells(1, 1), Cells(i — 1, 3)).Select
Sheets.Add.Name = «Table1»
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
«Данные!R1C1:R» & i & «C3», Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=»Table1!R1C1″, TableName:=»СводнаяТаблица», _
DefaultVersion:=xlPivotTableVersion15
В конкретном случае пройдет и такой вариант, только здесь (i-1): «Данные!R1C1:R» & (i-1) & «C3»,
но если имя активного листа будет другое — уже не пройдет.
Добавлено через 8 минут
Поправка по стилю формул:
А не подскажете, если не сложно, еще кое-что?
макрос создает сводную диаграмму из выбранного диапазона значений. с построением первой диаграммы по первому диапазону проблем нет, так как первый диапазон находится в начале массива и его первая строка дата, версия, дельта. Вторая и последующие диаграммы строятся из разных участков массива, которые, естественно, не оглавляются, так как оглавлялись раньше. Каким образом построить сводную таблицудиаграмму?.
Вот кусок кода для первой диаграммы. Вместо «версия» «дата» и «дельта» надо что-то вставить, чтобы диаграмма строилась.
Диапазон в формуле в excel
= Больше или равно
Результатом логического выражения является логическое значение ИСТИНА (1) или логическое значение ЛОЖЬ (0).
Функция ЕСЛИ (IF) имеет следующий синтаксис:
Следующая формула возвращает значение 10, если значение в ячейке А1 больше 3, а в противном случае — 20:
В качестве аргументов функции ЕСЛИ можно использовать другие функции. В функции ЕСЛИ можно использовать текстовые аргументы. Например:
=ЕСЛИ(А1>=4;»Зачет сдал»;»Зачет не сдал»)
Можно использовать текстовые аргументы в функции ЕСЛИ, чтобы при невыполнении условия она возвращала пустую строку вместо 0.
Аргумент логическое_выражение функции ЕСЛИ может содержать текстовое значение. Например:
Эта формула возвращает значение 10, если ячейка А1 содержит строку «Динамо», и 290, если в ней находится любое другое значение. Совпадение между сравниваемыми текстовыми значениями должно быть точным, но без учета регистра.Функции И, ИЛИ, НЕ
Функции И (AND), ИЛИ (OR), НЕ (NOT) — позволяют создавать сложные логические выражения. Эти функции работают в сочетании с простыми операторами сравнения. Функции И и ИЛИ могут иметь до 30 логических аргументов и имеют синтаксис:
Функция НЕ имеет только один аргумент и следующий синтаксис:
Аргументы функций И, ИЛИ, НЕ могут быть логическими выражениями, массивами или ссылками на ячейки, содержащие логические значения.
Приведем пример. Пусть Excelвозвращает текст «Прошел», если ученик имеет средний балл более 4 (ячейка А2), и пропуск занятий меньше 3 (ячейка А3). Формула примет вид:
Если значение в ячейке А1 является целым числом, формула читается следующим образом: «Если значение в ячейке А1 равно 100, возвратить строку «Всегда». В противном случае, если значение в ячейке А1 находится между 80 и 100, возвратить «Обычно». В противном случае, если значение в ячейке А1 находится между 60 и 80, возвратить строку «Иногда». И, если ни одно из этих условий не выполняется, возвратить строку «Никогда». Всего допускается до 7 уровней вложения функций ЕСЛИ.
Функции ИСТИНА и ЛОЖЬ
Функции ИСТИНА (TRUE) и ЛОЖЬ (FALSE) предоставляют альтернативный способ записи логических значений ИСТИНА и ЛОЖЬ. Эти функции не имеют аргументов и выглядят следующим образом:
Например, ячейка А1 содержит логическое выражение. Тогда следующая функция возвратить значение «Проходите», если выражение в ячейке А1 имеет значение ИСТИНА:
В противном случае формула возвратит «Стоп».
Если нужно определить, является ли ячейка пустой, можно использовать функцию ЕПУСТО (ISBLANK), которая имеет следующий синтаксис:
Аргумент значение может быть ссылкой на ячейку или диапазон. Если значение ссылается на пустую ячейку или диапазон, функция возвращает логическое значение ИСТИНА, в противном случае ЛОЖЬ.
«Строковые функции || Эксель || Excel 2007»
Простой способ зафиксировать значение в формуле Excel
Сегодня я бы хотел поделиться с вами такой небольшой хитростью, как можно правильно зафиксировать значение в формуле Excel. К сожалению, очень мало пользователей используют таким удобным функционалом табличного процессора, а это жаль. Часто многие сталкивались с такой ситуацией что возникает необходимость сдвинуть или скопировать формулы, но вот незадача, адреса ячеек также уходили «налево» и результата невозможно было получить. А для получения нужного результата, нам окажет помощь доллар, а точнее знак «$», вот именно он является самым главным условием что бы закрепить значение в ячейках.
Итак, рассмотрим более детально все варианты как закрепляется ячейка. Есть три варианта фиксации:
Полная фиксация ячейки
Полная фиксация ячейки — это когда закрепляется значение по вертикали и горизонтали (пример, $A$1), здесь значение никуда не может сдвинутся, так называемая абсолютная формула. Очень удобно такой вариант использовать, когда необходимо ссылаться на значение в ячейке, такие как курс валют, константа, уровень минимальной зарплаты, расход топлива, процент доплат, кофициент и т.п.
В примере у нас есть товар и его стоимость в рублях, а нам нужно узнать он стоит в вечнозеленых долларах. Поскольку, обменный курс у нас постоянная ячейка D1, в которой сам курс может меняться исходя из экономической ситуации страны. Сам диапазон вычисление находится от E4 до E7. Когда мы в ячейку Е4 пропишем формулу =D4/D1, то в результате копирования, ячейки поменяют адреса и сдвинутся ниже, пропуская, так необходимый нам обменный курс. А вот если внести изменения и зафиксировать значение в формуле простым символом доллара («$»), то мы получим следующий результат =D4/$D$1 и в этом случае, сдвигая и копируя, формулу мы получаем нужный нам результат во всех ячейках диапазона;
Фиксация формулы в Excel по вертикали
Частичная фиксация по вертикали (пример $A1), это закрепления только столбцов, возможность сдвига формулы частично сохраняется, но только по горизонтали (в строке). Как видно со скриншота или скачанного вами файла с примером.
Фиксация формул по горизонтали
Следующее закрепление будет по горизонтали (пример, A$1). И все правила остаются действительными как и предыдущем пункте, но немножко наоборот. Рассмотрим данный пример подробнее. У нас есть товар, продаваемый, в разных городах и имеющие разную процентную градацию наценок, а нам необходимо высчитать какую наценку и где мы будем ее получать. В диапазоне K1:M1 мы проставили процент наценки и эти ячейки у нас должны быть закреплены для автоматических вычислений. Диапазон для написания формул у нас является К4:М7, здесь мы должны в один клик получить результаты просто правильно прописав формулу. Растягивая формулу по диагонали, мы должны зафиксировать диапазон процентной ставки (горизонталь) и диапазон стоимости товара (вертикаль). Итак, мы фиксируем горизонтальную строку $1 и вертикальный столбец $J и в ячейке К4 прописываем формулу =$J4*K$1 и после ее копирование во все ячейки вычисляемого диапазона и получаем нужный результат без каких-либо сдвигов в формуле.
Производя подобные вычисления очень легко и быстро делать перерасчёт на разнообразнейшие варианты, изменив всего 1 цифру. В файле примера вы сможете проверить это изменив всего курс валюты или региональные проценты. И такие вычисление, будут в несколько раз быстрее нежели, другие варианты написание формул в Excel и количество ошибок будет значительно меньше. Но необходимость этого надо увидеть исходя с вашей текущей задачи и проводить фиксацию значения в ячейках стоит в ключевых местах.
Что бы постоянно не переключать раскладку клавиатуры при прописании знака «$» для закрепления значение в формуле, можно использовать «горячую» клавишу F4. Если курсор стоит на адресе ячейки, то при нажатии, будет автоматически добавлен знак «$» для столбцов и строчек. При повторном нажатии, добавится только для столбцов, еще раз нажать, будет только для строк и 4-е нажатие снимет все закрепления, формула вернется к первоначальному виду.
Скачать пример можно здесь.
А на этом у меня всё! Я очень надеюсь, что вы поняли все варианты как возможно зафиксировать ячейку в формуле. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!
Не забудьте поблагодарить автора!
Деньги — нерв войны.
Марк Туллий Цицерон