Формулы могут работать с ячейками из других листов. Вам просто нужно указать перед ссылкой на ячейку имя листа и восклицательный знак. Например, следующая формула добавляет 12 к значению в ячейке С1
, которая находится на листе Лист2: =Лист2!С1+12
.
Что делать, если вам нужно вычислить сумму всех значений в С1, начиная с листа Лист2 и заканчивая листом Лист6? Следующая формула решает эту задачу: =СУММ(Лист2:Лист6!C1)
. В данном случае двоеточие разделяет название первого и последнего листов.
Для создания такой формулы выполните приведенные ниже действия.
- Активизируйте ячейку, которая будет содержать формулу, и наберите
=СУММ(
. - Щелкните на вкладке первого листа (в нашем случае это Лист2) и выберите ячейку
С1
. - Нажмите Shift и щелкните на вкладке последнего листа (в нашем случае это Лист6).
- Нажмите Enter, и формула будет введена в ячейку.
В шаге 2 вы можете выбрать диапазон, а не одну-единствениую ячейку. Например, эта формула возвращает сумму C1:F12
для всех листов от Лист2 до Лист6: =СУММ(Лист2:Лист6!С1:Р12)
.
Теперь я покажу вам интересный прием, который узнал при прочтении новостных конференций Excel и на обучение в Минске. Если вы хотите просуммировать одну и ту же ячейку со всех листов, кроме текущего, просто введите формулу наподобие этой: =СУММ('*'!C1)
. Звездочка служит подстановочным символом, который интерпретируется как «все листы, кроме этого одного». Когда вы нажмете клавишу Enter после ввода этой формулы, Excel преобразует формулу, чтобы она использовала фактические имена листов. Это работает, даже если активный лист находится где-нибудь в середине, между другими листами. Например, если книга состоит из шести листов и вы введете приведенную выше формулу в ячейку листа Лист3, Excel создаст следующую формулу: =СУММ(Лист1:Лист2!С1;Лист4:Лист6!C1)
.
Но это еще не все. Введите следующую формулу для нахождения суммы ячеек С1 во всех листах, которые начинаются со слова Регион: =СУММ('Регион*"!C1)
. Excel может преобразовать данную формулу во что-то наподобие этого: =СУММ(Регион1:Регион4!C1)
.
Вы также можете использовать подстановочный знак ? — он указывает на любой отдельный символ. Например, при вводе следующей формулы Excel создаст формулу, которая просуммирует значения, начиная с листа Лист1 и заканчивая листом Лист9 (названия, которые содержат одну цифру): =СУММ(‘Лист?’!C1). Этот прием не ограничивается функцией СУММ. Он работает и с другими функциями, такими как СРЗНАЧ, МИН, МАКС.
Изучим возможности для суммирования данных из ячеек с разных листов книги с помощью использования трехмерных ссылок в Excel.
Приветствую всех, уважаемые читатели блога TutorExcel.Ru.
Практически каждый из нас при работе в Excel хотя бы раз наверняка применял операцию сложения с помощью оператора плюс «+» и различных функций (СУММ, СУММЕСЛИ, СУММЕСЛИМН и т.п.).
В связи с этим часто можно столкнуться с задачей, когда нужно просуммировать данные из одних и тех же ячеек с нескольких листов. К примеру, подвести общий итог для всех филиалов или отделов компании (коих может быть очень много), посчитать сумму за год по всем месяцам, где каждая часть с данными расположена на отдельном листе книги.
К решению этой задачи можно подходить по-разному, рассмотрим несколько вариантов как мы это можно сделать — от медленного и ручного до быстрого и полуавтоматического.
Вариант 1. Ручной ввод.
Начнем с одной стороны с медленного варианта, но с другой стороны с более понятного и наглядного способа.
Для примера возьмем простую задачу и сложим данные ячейки A1 с трех листов: Лист1, Лист2 и Лист3. Для этого поочередно в формулу записываем ссылки на ячейку с разных листов и знаки сложения «+»:
=Лист1!A1+Лист2!A1+Лист3!A1
Это совсем простой вариант. Еще один вариант записи можно аналогично реализовать с помощью функции СУММ:
=СУММ(Лист1!A1;Лист2!A1;Лист3!A1)
В реализуемых нами вариантах в общем и целом все хорошо, за исключением большой ручной работы при прощелкивании всех нужных для суммирования ячеек.
Как это часто бывает если нужно посчитать сумму для двух или трех листов, то вышеописанный способ отлично подойдет. Но если усложнить задачу и представить подобный пример не для 3, а, например, для 30 листов, то процесс уже несколько затянется.
Поэтому перейдем к чуть более сложному на первый взгляд варианту, но гораздо более быстрому с точки зрения трудовых и временных затрат.
Вариант 2. Полуавтоматический ввод.
Повторно воспользуемся функцией СУММ, но в этот раз запишем ссылку на листы через двоеточие:
=СУММ(Лист1:Лист3!A1)
В этом случае общее количество суммируемых листов для нас уже не так важно, главное знать только начальный и конечный.
Поэтому запись для сложения 10 или 20 листов будет примерно такой же — ИмяПервогоЛиста:ИмяПоследнегоЛиста!Диапазон.
Чуть более подробно остановимся на логике формирования формулы. Напомню, что оператор двоеточие в Excel служит для объединения диапазона, который образует ссылку на все ячейки находящиеся между первой и последней (включая сами ячейки). Например, диапазон A1:A10 обозначает двумерную ссылку, в которую попадают все ячейки между первой (A1) и последней (A10).
При добавлении еще одной размерности в виде листов мы получаем так называемую трехмерную ссылку. К примеру, диапазон Лист1:Лист3!A1:A10 содержит все ячейки от Лист1!A1:A10 до Лист3!A1:A10.
Таким образом в нашем примере суммируются все ячейки A1 от Лист1 до Лист3. Но при применении такого способа суммирования есть некоторые тонкости, которые желательно нужно помнить, чтобы случайно не допустить ошибку, давайте подробнее про них поговорим.
Особенности трехмерных ссылок
Как мы уже говорили ранее, при применении трехмерных ссылок нужен только первый и последний лист, промежуточные листы между ними в записи никак не участвуют. Отсюда и возникают следующие тонкости:
- Добавление/копирование листа. Если добавить новый лист или скопировать уже существующий и вставить его между первым и последним (используемых в формуле), то он автоматически будет участвовать в расчете.
Т.е. сама формула не поменяется, а значение вполне может измениться, если на новом листе в тех же ячейках содержатся данные; - Удаление листа. Аналогичный случай примеру выше. При удалении листа формула не изменится, а расчет поменяется в зависимости от удаленных данных (если удалить начальный или конечный листы, то формула изменится, промежуточный — формула останется неизменной);
- Перемещение листа. При перемещении листа в другое место книги формула не изменится, но поменяется набор листов между ними (либо добавятся новые, либо удалятся текущие).
Если описание покажется несколько сложным, в этом случае попробуйте поэкспериментировать с формулой и перестановкой листов на конкретном примере и поймите по какому принципу она работает.
Использование трехмерных ссылок не ограничивается только функциями для сложения данных, а можно использовать большинство математических функций. Поэтому если стоит аналогичная задача для нахождения, к примеру, среднего арифметического или наибольшего с наименьшим, то без проблем применяйте.
Спасибо за внимание!
Если у вас есть мысли или вопросы по теме статьи — пишите и спрашивайте в комментариях.
Удачи вам и до скорых встреч на страницах блога TutorExcel.Ru!
Поделиться с друзьями:
Поиск по сайту:
Как посчитать сумму с разных листов в Excel?
Изучим возможности для суммирования данных из ячеек с разных листов книги с помощью использования трехмерных ссылок в Excel.
Приветствую всех, уважаемые читатели блога TutorExcel.Ru.
Практически каждый из нас при работе в Excel хотя бы раз наверняка применял операцию сложения с помощью оператора плюс «+» и различных функций (СУММ, СУММЕСЛИ, СУММЕСЛИМН и т.п.).
В связи с этим часто можно столкнуться с задачей, когда нужно просуммировать данные из одних и тех же ячеек с нескольких листов. К примеру, подвести общий итог для всех филиалов или отделов компании (коих может быть очень много), посчитать сумму за год по всем месяцам, где каждая часть с данными расположена на отдельном листе книги.
К решению этой задачи можно подходить по-разному, рассмотрим несколько вариантов как мы это можно сделать — от медленного и ручного до быстрого и полуавтоматического.
Как сложить листы в Excel?
Вариант 1. Ручной ввод.
Начнем с одной стороны с медленного варианта, но с другой стороны с более понятного и наглядного способа.
Для примера возьмем простую задачу и сложим данные ячейки A1 с трех листов: Лист1, Лист2 и Лист3. Для этого поочередно в формулу записываем ссылки на ячейку с разных листов и знаки сложения «+»:
Это совсем простой вариант. Еще один вариант записи можно аналогично реализовать с помощью функции СУММ:
В реализуемых нами вариантах в общем и целом все хорошо, за исключением большой ручной работы при прощелкивании всех нужных для суммирования ячеек.
Как это часто бывает если нужно посчитать сумму для двух или трех листов, то вышеописанный способ отлично подойдет. Но если усложнить задачу и представить подобный пример не для 3, а, например, для 30 листов, то процесс уже несколько затянется.
Поэтому перейдем к чуть более сложному на первый взгляд варианту, но гораздо более быстрому с точки зрения трудовых и временных затрат.
Вариант 2. Полуавтоматический ввод.
Повторно воспользуемся функцией СУММ, но в этот раз запишем ссылку на листы через двоеточие:
В этом случае общее количество суммируемых листов для нас уже не так важно, главное знать только начальный и конечный.
Поэтому запись для сложения 10 или 20 листов будет примерно такой же — ИмяПервогоЛиста:ИмяПоследнегоЛиста!Диапазон.
Чуть более подробно остановимся на логике формирования формулы. Напомню, что оператор двоеточие в Excel служит для объединения диапазона, который образует ссылку на все ячейки находящиеся между первой и последней (включая сами ячейки). Например, диапазон A1:A10 обозначает двумерную ссылку, в которую попадают все ячейки между первой (A1) и последней (A10).
При добавлении еще одной размерности в виде листов мы получаем так называемую трехмерную ссылку. К примеру, диапазон Лист1:Лист3!A1:A10 содержит все ячейки от Лист1!A1:A10 до Лист3!A1:A10.
Таким образом в нашем примере суммируются все ячейки A1 от Лист1 до Лист3. Но при применении такого способа суммирования есть некоторые тонкости, которые желательно нужно помнить, чтобы случайно не допустить ошибку, давайте подробнее про них поговорим.
Особенности трехмерных ссылок
Как мы уже говорили ранее, при применении трехмерных ссылок нужен только первый и последний лист, промежуточные листы между ними в записи никак не участвуют. Отсюда и возникают следующие тонкости:
- Добавление/копирование листа. Если добавить новый лист или скопировать уже существующий и вставить его между первым и последним (используемых в формуле), то он автоматически будет участвовать в расчете.
Т.е. сама формула не поменяется, а значение вполне может измениться, если на новом листе в тех же ячейках содержатся данные; - Удаление листа. Аналогичный случай примеру выше. При удалении листа формула не изменится, а расчет поменяется в зависимости от удаленных данных (если удалить начальный или конечный листы, то формула изменится, промежуточный — формула останется неизменной);
- Перемещение листа. При перемещении листа в другое место книги формула не изменится, но поменяется набор листов между ними (либо добавятся новые, либо удалятся текущие).
Если описание покажется несколько сложным, в этом случае попробуйте поэкспериментировать с формулой и перестановкой листов на конкретном примере и поймите по какому принципу она работает.
Использование трехмерных ссылок не ограничивается только функциями для сложения данных, а можно использовать большинство математических функций. Поэтому если стоит аналогичная задача для нахождения, к примеру, среднего арифметического или наибольшего с наименьшим, то без проблем применяйте.
Спасибо за внимание!
Если у вас есть мысли или вопросы по теме статьи — пишите и спрашивайте в комментариях.
Microsoft Excel
трюки • приёмы • решения
Как суммировать данные с разных листов книг Excel
Формулы могут работать с ячейками из других листов. Вам просто нужно указать перед ссылкой на ячейку имя листа и восклицательный знак. Например, следующая формула добавляет 12 к значению в ячейке С1 , которая находится на листе Лист2: =Лист2!С1+12 .
Что делать, если вам нужно вычислить сумму всех значений в С1, начиная с листа Лист2 и заканчивая листом Лист6? Следующая формула решает эту задачу: =СУММ(Лист2:Лист6!C1) . В данном случае двоеточие разделяет название первого и последнего листов.
Для создания такой формулы выполните приведенные ниже действия.
- Активизируйте ячейку, которая будет содержать формулу, и наберите =СУММ( .
- Щелкните на вкладке первого листа (в нашем случае это Лист2) и выберите ячейку С1 .
- Нажмите Shift и щелкните на вкладке последнего листа (в нашем случае это Лист6).
- Нажмите Enter, и формула будет введена в ячейку.
В шаге 2 вы можете выбрать диапазон, а не одну-единствениую ячейку. Например, эта формула возвращает сумму C1:F12 для всех листов от Лист2 до Лист6: =СУММ(Лист2:Лист6!С1:Р12) .
Теперь я покажу вам интересный прием, который узнал при прочтении новостных конференций Excel и на обучение в Минске. Если вы хотите просуммировать одну и ту же ячейку со всех листов, кроме текущего, просто введите формулу наподобие этой: =СУММ(‘*’!C1) . Звездочка служит подстановочным символом, который интерпретируется как «все листы, кроме этого одного». Когда вы нажмете клавишу Enter после ввода этой формулы, Excel преобразует формулу, чтобы она использовала фактические имена листов. Это работает, даже если активный лист находится где-нибудь в середине, между другими листами. Например, если книга состоит из шести листов и вы введете приведенную выше формулу в ячейку листа Лист3, Excel создаст следующую формулу: =СУММ(Лист1:Лист2!С1;Лист4:Лист6!C1) .
Но это еще не все. Введите следующую формулу для нахождения суммы ячеек С1 во всех листах, которые начинаются со слова Регион: =СУММ(‘Регион*»!C1) . Excel может преобразовать данную формулу во что-то наподобие этого: =СУММ(Регион1:Регион4!C1) .
Вы также можете использовать подстановочный знак ? — он указывает на любой отдельный символ. Например, при вводе следующей формулы Excel создаст формулу, которая просуммирует значения, начиная с листа Лист1 и заканчивая листом Лист9 (названия, которые содержат одну цифру): =СУММ(‘Лист?’!C1). Этот прием не ограничивается функцией СУММ. Он работает и с другими функциями, такими как СРЗНАЧ, МИН, МАКС.
Сумма одной и той же ячейки на нескольких листах
Задача: у вас есть 12 листов с одинаковой структурой данных, по одному на каждый месяц. Вы бы хотели просуммировать одну и ту же ячейку на каждом листе. Есть ли способ лучше, чем использование =Янв!B4+Фев!B4+Мар!B4+…+Дек!B4?
Решение: вы можете использовать «3D-формулу», например, =СУММ(Янв:Дек!B4), как показано на рис. 1.
Рис. 1. 3D-формулу для суммирования одной и той же ячейки на нескольких листах
Скачать заметку в формате Word или pdf, примеры в формате Excel
Если в имени первого и/или последнего листа содержится пробел, используйте апострофы вокруг пары имен листов: =СУММ( ‘ Янв 2009:Дек ‘ !B5), как показано на рис. 2. Любопытно, что, если пробел есть в имени любого промежуточного листа, апострофы не требуются. Более того, если вы введете апострофы, когда они не требуются, Excel автоматически их уберет.
Рис. 2. Используйте апострофы, если в имени листа есть пробел
Вы можете легко скопировать эту формулу в другие ячейки на листе Итоги.
Подводный камень: не размещайте сводный лист между листами Янв и Дек. Это приведет к циклической ссылке (подробнее о борьбе с последней см. Как найти циклическую ссылку).
Дополнительные сведения: можно создать именованный диапазон, который ссылается на 3D-область. Для этого перейдите к ячейке B4 на лист Янв. Пройдите по меню ФОРМУЛА –> Присвоить имя. В открывшемся окне Создание имени (рис. 3) перейдите в поле Диапазон путем многократного нажатия клавиши Табуляция. При этом всё содержимое поле Диапазон становится выделенным. Удерживая нажатой клавишу Shift кликните на лист Дек. Обратите внимание, что на рис. 3 все листы от Янв по Дек выделены. Нажмите Ok.
Рис. 3. Присвоение имени 3D-диапазону
После этого формулы приобретают «человеческий» вид. Например, =СУММ(Объем_продаж).
Как просуммировать данные с нескольких листов, в том числе по условию
В данной статье я хочу рассказать, как можно просуммировать данные на одном листе из других листов. К примеру: на листах Январь, Февраль и Март расположены данные по продажам, а под ними итог. Допустим, это будет ячейка D7. Если структура всех таблиц одинакова (одинаковое кол-во строк, товар может различаться) и Итог расположен во всех таблицах в одной ячейке, то можно воспользоваться простой формулой:
=СУММ(Январь:Март!D7)
Подобная ссылка на диапазоны называется трехмерной ссылкой. Если между листом Январь и Март добавить еще какой-нибудь лист — то данные с него будут также автоматически просуммированы. Поэтому необходимо следить, чтобы указывались только нужные листы. Минус в том, что таким образом можно просуммировать данные только ячеек листа, расположенных в одном и том же диапазоне(т.е. со всех листов будет взята сумма всех ячеек конкретного диапазона). Так же, трехмерные ссылки не могут быть созданы при помощи ДВССЫЛ(INDIRECT) для динамического указания имен первого и последнего листа.
Но, если необходимо будет просуммировать данные по отдельным товарам со всех листов, а товар расположен в хаотичном порядке, разном для каждого листа и количество строк различается, то здесь такая формула не подойдет. Можно воспользоваться формулой массива, которая несколько неудобна именно в таком виде:
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ(<«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»>&»!B3:B100″); B2 ;ДВССЫЛ(<«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»>&»!C3:C100″)))
«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь» — имена листов, с которых происходит суммирование. Не буду останавливаться подробно на всех вложенных функциях. Про СУММЕСЛИ можно прочитать в этой статье. ДВССЫЛ используется для создания ссылки на диапазон, состоящей из имени листа и адреса ячеек: Январь!B3:B100, Февраль!B3:B100, Март!B3:B100, Апрель!B3:B100, Май!B3:B100, Июнь!B3:B100 . Т.е. мы в формуле переибраем все указанные листы и диапазоны в них.
Важно: если в имени листа встречается пробел, либо иной знак препинания, то имя листа необходимо заключать в апострофы: «‘Январь 2014′»:»‘Февраль 2014′»:»Март»:»Апрель»:»Май»:»Июнь»
либо ставить апострофы заранее для всех листов:
ДВССЫЛ(» ‘ «&<«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»>&» ‘ !C3:C100″)
B3:B100 — диапазон с критериями(при необходимости указать больше строк).
C3:C100 — диапазон суммирования(при необходимости указать больше строк).
В чем главное неудобство — необходимо так или иначе указывать листы, с которых суммировать. Это очень неудобно, если листов много. Во вложении ниже эта формула представлена в двух вариантах: как выше и с использованием дополнительного столбца для перечисления листов (формула в данном случае получается более универсальной и короткой).
Скачать пример суммирования с листов формулой
Tips_All_SumIf_AllSheets_Formula.xls (67,5 KiB, 7 735 скачиваний)
Но в приложенном примере тоже стоит учитывать один момент: при ссылке на диапазон с именами листов, в этом диапазоне не должно быть:
1. Пустых ячеек
2. Имен листов, которые заведомо отсутствуют в книге
При несоблюдении этих правил формула вернет ошибку #ССЫЛКА (#REF!)
Возможно, есть и иные способы суммирования формулой. Может даже есть способ суммировать, не указывая имена листов, но у меня не получилось так сделать без использования VBA. Поэтому я написал свою пользовательскую функцию:
Function All_SumIf(rRange As Range, rCriteria As Range, rSumRange As Range, Optional bAllSh As Boolean = True) Dim wsSh As Worksheet, sRange As String, sSumRange As String sRange = Right(rRange.Address, Len(rRange.Address) — InStr(rRange.Address, «!»)) sSumRange = Right(rSumRange.Address, Len(rSumRange.Address) — InStr(rSumRange.Address, «!»)) For Each wsSh In Sheets If bAllSh Then If wsSh.Name <> Application.Caller.Parent.Name Then All_SumIf = All_SumIf + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Else If wsSh.Index Alt + F11 ) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Shift + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .
Аргументы функции аналогичны стандартной СУММЕСЛИ, только в конце добавлен еще один, необязательный.
rRange — Ссылка на диапазон ячеек. Указывается диапазон значений, среди которых необходимо искать критерий.
rCriteria — Ссылка на одну ячейку. Указывается ячейка, в которой содержится значение, данные по которому надо просуммировать.
rSumRange — Ссылка на диапазон ячеек. Указывается диапазон сумм или чисел, которые необходимо просуммировать на основании критерия.
bAllSh — Необязательный аргумент. Если не указан, или указано значение 1 или ИСТИНА, то будут суммироваться значения со всех листов, кроме листа, на котором записана функция. Если указано значение 0 или ЛОЖЬ, то будут суммироваться значения с листов, расположенных до листа, на котором записана функция.
Применение обеих функций вы найдете в примере к статье.
Скачать пример
Tips_All_SumIf_Few_Sheets.xls (57,5 KiB, 3 745 скачиваний)
Дополнил статью функцией, которая суммирует данные только с указанных листов, либо со всех, кроме листа с функцией:
Function All_SumIf(rRange As Range, rCriteria As Range, rSumRange As Range, Optional sSheets = «») Dim wsSh As Worksheet, sRange As String, sSumRange As String, asSheets, li As Long sRange = Right(rRange.Address, Len(rRange.Address) — InStr(rRange.Address, «!»)) sSumRange = Right(rSumRange.Address, Len(rSumRange.Address) — InStr(rSumRange.Address, «!»)) If sSheets = «» Then For Each wsSh In Worksheets If wsSh.Name <> Application.Caller.Parent.Name Then sSheets = sSheets & «?» & wsSh.Name Next wsSh sSheets = Mid$(sSheets, 2) End If asSheets = Split(sSheets, «?») For li = LBound(asSheets) To UBound(asSheets) Set wsSh = Sheets(asSheets(li)) If Not wsSh Is Nothing Then All_SumIf = All_SumIf + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Next li End Function
rRange — Ссылка на диапазон ячеек. Указывается диапазон значений, среди которых необходимо искать критерий.
rCriteria — Ссылка на одну ячейку. Указывается ячейка, в которой содержится значение, данные по которому надо просуммировать.
rSumRange — Ссылка на диапазон ячеек. Указывается диапазон сумм или чисел, которые необходимо просуммировать на основании критерия.
sSheets — Необязательный аргумент. Указываются имена листов книги, с которых надо суммировать данные. Имена листов должны быть записаны через вопросительный знак: Февраль?Март. Если аргумент не указан или равен пустой ячейке, то будут суммироваться значения со всех листов, кроме листа, на котором записана функция.
Скачать пример
Tips_All_SumIf_Show_Sheets.xls (59,5 KiB, 2 626 скачиваний)
Очередное дополнение статьи — функция, в которой помимо перечисления листов можно указать книгу, в которой эти листы просматривать:
Function All_SumIf(rRange As Range, rCriteria As Range, rSumRange As Range, Optional sSheets = «», Optional wsAnotherWB As String = «») Dim wsSh As Worksheet, sRange As String, sSumRange As String, asSheets, li As Long Dim wbB As Workbook If wsAnotherWB = «» Then Set wbB = Application.Caller.Parent.Parent Else Set wbB = Workbooks(wsAnotherWB) End If sRange = Right(rRange.Address, Len(rRange.Address) — InStr(rRange.Address, «!»)) sSumRange = Right(rSumRange.Address, Len(rSumRange.Address) — InStr(rSumRange.Address, «!»)) If sSheets = «» Then For Each wsSh In wbB.Worksheets If wsSh.Name <> Application.Caller.Parent.Name Then sSheets = sSheets & «?» & wsSh.Name Next wsSh sSheets = Mid$(sSheets, 2) End If asSheets = Split(sSheets, «?») For li = LBound(asSheets) To UBound(asSheets) Set wsSh = wbB.Sheets(asSheets(li)) If Not wsSh Is Nothing Then All_SumIf = All_SumIf + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Next li End Function
Аргументы и их использование полностью совпадают с описанием выше. Опишу только последний аргумент:
wsAnotherWB — Необязательный аргумент. Указываются имя книги, в которой будут просматриваться листы, указанные параметром sSheets. Если аргумент wsAnotherWB не указан — листы просматриваются в книге, с листа которой вызвана функция. Если какого-либо из указанных листов не будет в указанной книге — функция вернет ошибку.
Статья помогла? Поделись ссылкой с друзьями!
Excel At Excel вып.3: Собираем данные с разных листов
Дано: 22 таблицы унифицированного формата с перечнем помещений от 22 дочерних предприятий.
Задача: сделать сводную таблицу с данными всех 22 таблиц
Итак, решение. Есть три варианта решения данной задачи. Первый — использовать встроенную (начиная с excel 2013) надстройку PowerPivot (об этом методе мы поговорим позднее). Второй — посредством сводной таблицы через несколько диапазонов консолидации. Не люблю этот метод, т.к. такая сводная таблица имеет существенно более ограниченный функционал по сравнению с простой сводной таблицей. Наконец, третий вариант — это создать общую таблицу с использованием функции INDIRECT (ДВССЫЛ). Этому методу и посвятим сегодня наш пост.
Что мы имеем? 22 одинаковых по формату таблицы на отдельных листах и с разным количеством строк в каждой. Соответственно, для построения общей таблицы нам надо решить следующие «проблемы»:
1) как заставить общую таблицу «переключаться» с одного листа данных на другой?;
2) как заставить ее делать это в нужный момент (когда закончились строки на одном листе)?
Начнем со второго вопроса, т.к. ответ на него мы уже знаем. Это циклы, о которых мы подробно говорили в выпуске 2 «Циклы в Excel без VBA». Для решения проблемы достаточно в наш файл добавить лист с перечнем всех обществ, соответствующими названиями листов и количеством подсчетом количества строк на каждом таком листе.
Обратите внимание на формулу в столбце Кол-во записей. Мы могли бы использовать просто COUNTA (СЧЁТА) со ссылкой на каждый лист. Но это потребует времени для «линковки» каждого листа. Плюс мы с вами готовим универсальные решения, которые будут работать в независимости от количества листов.
Именно для этого в функцию COUNTA (СЧЁТА) и внедряется эта чуднАя функция INDIRECT (ДВССЫЛ). Остановимся на ней подробнее.
Функция имеет, по сути, единственный параметр — ref_text (ссылка_на_текст). Что делает эта функция? Всего-навсего преобразует текст в ссылку на ячейку. То есть она преобразует текст, например, «А1» в ссылку и возвращает значение ячейки А1.
Соответственно, зная несложные правила работы с текстом в Excel, мы можем легко сделать текст внутри изменяемым, а значит можем сделать и изменяемыми ссылки, которые будет возвращать функция INDIRECT (ДВССЫЛ).
Разберем пример выше. Функция INDIRECT (ДВССЫЛ) имеет следующий вид:
Чтобы понять, что означает текст внутри нее, давайте вспомним, как выглядит в Excel ссылка на ячейку на другом листе. Вот так:
Соответственно, в нашем случае у нас неизменен столбец B:B, а вот название листа меняется. Для «автоматизации» формулы заменяем Название листа на ссылку на название листа с данными по соответствующему обществу (столбец Название листа). Получаем следующее:
где все, что подчеркнуто — текст, а выделено жирным — ссылки.
ВАЖНО! Обратите внимание на кавычки и конкатенацию («склеивание») при помощи амперсента. Не забудьте, что текст вносится в кавычках и соединяется со ссылками при помощи символа &.
Получается, что INDIRECT (ДВССЫЛ) получает название листа из ячеек в столбце А:А (Название листа), а диапазон у нас прописан фиксированно текстом (В:В). COUNTA (СЧЁТА) же просто считает количество строк в столбце В:В на соответствующем листа за вычетом заголовка.
Перейдем к формированию общей таблицы. Как вы уже наверное прикинули, у нас будет два вложенных цикла: один — количество обществ, второй — количество записей на листе данных по соответствующему обществу. Соответственно, нам потребуются два вспомогательных столбца (определим их в столбцы А и В). Ровно так же, как мы делали на примере в выпуске 2 «Циклы в Excel без VBA», пишем формулу первого цикла:
=IF(A2=»»;»»;IF(COUNTIF($A$2:A2;A2)=OFFSET(‘Список обществ’!$E$2;A2-1;0);IF(A2+1>COUNTA(‘Список обществ’!A:A)-1;»»;A2+1);A2))
Затем пишем формулу второго цикла:
Далее при помощи уже знакомой нам функции OFFSET (СМЕЩ) заполняем столбцы из таблицы на листе Список обществ.
Осталось подтянуть данные с 22 листов по обществам. Тут нам опять поможет OFFSET (СМЕЩ), но уже в паре с INDIRECT (ДВССЫЛ).
OFFSET (СМЕЩ) передает в формулу название листа, а конструкция B2+1 — номер строки в столбце Е на том листе.
ВАЖНО! Обратите внимание, что OFFSET (СМЕЩ) вкладывается внутрь INDIRECT (ДВССЫЛ), а не наоборот.
Добрый день.
Часто возникают ситуации, когда нужно просуммировать одни и те же ячейки на разных листах одного документа.
Рассмотрим ситуацию из жизненной практики.
Например, существует документ (файл excel), состоящий из нескольких вкладок.
Вкладками документа являются сформированные в виде таблиц Excel счета на оплату коммунальных услуг за несколько месяцев с апреля по июнь включительно, то есть за один квартал.
Необходимо посчитать сумму выставленных счетов за указанный период времени – второй квартал года.
Для этого создаем дополнительный лист Excel, на котором составляем формулу суммирования.
Вписываем в ячейку:
— знак равно «=»;
— далее функцию «СУММ()»;
— в скобках указываем диапазон суммирования (Лист_Апрель:Лист_июнь!H26) – где Лист_апрель:Лист_Июнь – диапазон листов из которых берутся данные, H26 – суммируемая ячейка;
Нажимаем клавишу «Enter» на клавиатуре.
Формула «=СУММ(Лист_Апрель:Лист_июнь!H26)» считает сумму одной и той же ячейки с разных листов.
Аналогичным образом можно найти среднее значение ячейки с разных листов – «СРЗНАЧ(Лист_Апрель:Лист_июнь!H26)»
Как в эксель суммировать ячейки из разных листов?
Программа эксель позволяет создавать большие массивы информации, которые могут, размещается на нескольких листах или даже книгах. Давайте разберемся, как в программе эксель суммировать ячейки из разных листов.
Первый шаг. В моем файле программы эксель есть три листа: «ВСЕ Филиалы», «Филиал Москва», «Филиал СПБ». Лист «ВСЕ Филиалы» является сводным, который должен содержать сводную информацию об обоих филиалах. На рисунке ниже представлен лист «Филиал Москва».
Второй шаг. Пропишем формулу в листе «ВСЕ Филиалы», для этого вы должны перейти в данный лист и поставить курсор в ячейку «D6». В ней поставьте знак «=», а потом перейдите на лист «Филиал Москва» и нажмите на ячейку «D6», после поставить знак «+» и перейдите на лист «Филиал СПБ», и снова нажмите на ячейку «D6». После этого на клавиатуре нажимаем клавишу «Enter», в итоге должна получиться формула: =’Филиал Москва’!D6+’Филиал СПБ’!D6 .
Третий шаг. В приведенном примере, таблицы на всех листах совершенно одинаковые, поэтому чтобы просуммировать оставшиеся ячейки, вы выделяете, сначала ячейку «D6» и нажимаете на клавиатуре сочетание клавиш «Ctrl+C». После выделяем область ячеек с «D6» по «D283» и нажимаем либо на клавишу «Enter», либо на сочетание клавиш «Ctrl+V». В итоге всего за три шага мы свели информацию по двум филиалам, просуммировав данные с двух разных листов.
Часто возникают ситуации, когда нужно просуммировать одни и те же ячейки на разных листах одного документа.
Рассмотрим ситуацию из жизненной практики.
Например, существует документ (файл excel), состоящий из нескольких вкладок.
Вкладками документа являются сформированные в виде таблиц Excel счета на оплату коммунальных услуг за несколько месяцев с апреля по июнь включительно, то есть за один квартал.
Необходимо посчитать сумму выставленных счетов за указанный период времени – второй квартал года.
Для этого создаем дополнительный лист Excel, на котором составляем формулу суммирования.
Вписываем в ячейку:
— знак равно «=»;
— далее функцию «СУММ()»;
— в скобках указываем диапазон суммирования (Лист_Апрель:Лист_июнь!H26) – где Лист_апрель:Лист_Июнь – диапазон листов из которых берутся данные, H26 – суммируемая ячейка;
Нажимаем клавишу «Enter» на клавиатуре.
Формула «=СУММ(Лист_Апрель:Лист_июнь!H26)» считает сумму одной и той же ячейки с разных листов.
5 основ Excel (обучение): как написать формулу, как посчитать сумму, сложение с условием, счет строк и пр.
Подумать только: складывать в автоматическом режиме значения из одних формул в другие, искать нужные строки в тексте, создавать собственные условия и т.д. — в общем-то, по сути мини-язык программирования для решения «узких» задач (признаться честно, я сам долгое время Excel не рассматривал за программу, и почти его не использовал) .
В этой статье хочу показать несколько примеров, как можно быстро решать повседневные офисные задачи: что-то сложить, вычесть, посчитать сумму (в том числе и с условием) , подставить значения из одной таблицы в другую и т.д.
То есть эта статья будет что-то мини гайда по обучению самому нужному для работы (точнее, чтобы начать пользоваться Excel и почувствовать всю мощь этого продукта!) .
Возможно, что прочти подобную статью лет 17-20 назад, я бы сам намного быстрее начал пользоваться Excel (и сэкономил бы кучу своего времени для решения «простых» задач. 👌
Обучение основам Excel: ячейки и числа
Примечание : все скриншоты ниже представлены из программы Excel 2016 (как одной из самой новой на сегодняшний день).
Многие начинающие пользователи, после запуска Excel — задают один странный вопрос: «ну и где тут таблица?». Между тем, все клеточки, что вы видите после запуска программы — это и есть одна большая таблица!
Теперь к главному : в любой клетке может быть текст, какое-нибудь число, или формула. Например, ниже на скриншоте показан один показательный пример:
- слева : в ячейке (A1) написано простое число «6». Обратите внимание, когда вы выбираете эту ячейку, то в строке формулы (Fx) показывается просто число «6».
- справа : в ячейке (C1) с виду тоже простое число «6», но если выбрать эту ячейку, то вы увидите формулу «=3+3» — это и есть важная фишка в Excel!
Просто число (слева) и посчитанная формула (справа)
👉 Суть в том, что Excel может считать как калькулятор, если выбрать какую нибудь ячейку, а потом написать формулу, например «=3+5+8» (без кавычек). Результат вам писать не нужно — Excel посчитает его сам и отобразит в ячейке (как в ячейке C1 в примере выше)!
Но писать в формулы и складывать можно не просто числа, но и числа, уже посчитанные в других ячейках. На скриншоте ниже в ячейке A1 и B1 числа 5 и 6 соответственно. В ячейке D1 я хочу получить их сумму — можно написать формулу двумя способами:
- первый: «=5+6» (не совсем удобно, представьте, что в ячейке A1 — у нас число тоже считается по какой-нибудь другой формуле и оно меняется. Не будете же вы подставлять вместо 5 каждый раз заново число?!);
- второй: «=A1+B1» — а вот это идеальный вариант, просто складываем значение ячеек A1 и B1 (несмотря даже какие числа в них!).
Сложение ячеек, в которых уже есть числа
Распространение формулы на другие ячейки
В примере выше мы сложили два числа в столбце A и B в первой строке. Но строк то у нас 6, и чаще всего в реальных задачах сложить числа нужно в каждой строке! Чтобы это сделать, можно:
- в строке 2 написать формулу «=A2+B2» , в строке 3 — «=A3+B3» и т.д. (это долго и утомительно, этот вариант никогда не используют) ;
- выбрать ячейку D1 (в которой уже есть формула) , затем подвести указатель мышки к правому уголку ячейки, чтобы появился черный крестик (см. скрин ниже) . Затем зажать левую кнопку и растянуть формулу на весь столбец. Удобно и быстро! ( Примечание : так же можно использовать для формул комбинации Ctrl+C и Ctrl+V (скопировать и вставить соответственно)) .
Кстати, обратите внимание на то, что Excel сам подставил формулы в каждую строку. То есть, если сейчас вы выберите ячейку, скажем, D2 — то увидите формулу «=A2+B2» (т.е. Excel автоматически подставляет формулы и сразу же выдает результат) .
Как задать константу (ячейку, которая не будет меняться при копировании формулы)
Довольно часто требуется в формулах (когда вы их копируете), чтобы какой-нибудь значение не менялось. Скажем простая задача: перевести цены в долларах в рубли. Стоимость рубля задается в одной ячейке, в моем примере ниже — это G2.
Далее в ячейке E2 пишется формула «=D2*G2» и получаем результат. Только вот если растянуть формулу, как мы это делали до этого, в других строках результата мы не увидим, т.к. Excel в строку 3 поставит формулу «D3*G3», в 4-ю строку: «D4*G4» и т.д. Надо же, чтобы G2 везде оставалась G2.
Чтобы это сделать — просто измените ячейку E2 — формула будет иметь вид «=D2*$G$2». Т.е. значок доллара $ — позволяет задавать ячейку, которая не будет меняться, когда вы будете копировать формулу (т.е. получаем константу, пример ниже) .
Константа / в формуле ячейка не изменяется
Как посчитать сумму (формулы СУММ и СУММЕСЛИМН)
Можно, конечно, составлять формулы в ручном режиме, печатая «=A1+B1+C1» и т.п. Но в Excel есть более быстрые и удобные инструменты.
Один из самых простых способов сложить все выделенные ячейки — это использовать опцию автосуммы (Excel сам напишет формулу и вставить ее в ячейку) .
Что нужно сделать, чтобы посчитать сумму определенных ячеек:
- сначала выделяем ячейки (см. скрин ниже 👇) ;
- далее открываем раздел «Формулы» ;
- следующий шаг жмем кнопку «Автосумма» . Под выделенными вами ячейками появиться результат из сложения;
- если выделить ячейку с результатом (в моем случае — это ячейка E8) — то вы увидите формулу «=СУММ(E2:E7)» .
- таким образом, написав формулу «=СУММ(xx)» , где вместо xx поставить (или выделить) любые ячейки, можно считать самые разнообразные диапазоны ячеек, столбцов, строк.
Автосумма выделенных ячеек
Как посчитать сумму с каким-нибудь условием
Довольно часто при работе требуется не просто сумма всего столбца, а сумма определенных строк (т.е. выборочно). Предположим простую задачу: нужно получить сумму прибыли от какого-нибудь рабочего (утрировано, конечно, но пример более чем реальный) .
Я в своей таблицы буду использовать всего 7 строк (для наглядности) , реальная же таблица может быть намного больше. Предположим, нам нужно посчитать всю прибыль, которую сделал «Саша». Как будет выглядеть формула:
- » =СУММЕСЛИМН( F2:F7 ; A2:A7 ;»Саша») » — ( прим .: обратите внимание на кавычки для условия — они должны быть как на скрине ниже, а не как у меня сейчас написано на блоге) . Так же обратите внимание, что Excel при вбивании начала формулы (к примеру «СУММ. «), сам подсказывает и подставляет возможные варианты — а формул в Excel’e сотни!;
- F2:F7 — это диапазон, по которому будут складываться (суммироваться) числа из ячеек;
- A2:A7 — это столбик, по которому будет проверяться наше условие;
- «Саша» — это условие, те строки, в которых в столбце A будет «Саша» будут сложены (обратите внимание на показательный скриншот ниже) .
Сумма с условием
Примечание : условий может быть несколько и проверять их можно по разным столбцам.
Как посчитать количество строк (с одним, двумя и более условием)
Довольно типичная задача: посчитать не сумму в ячейках, а количество строк, удовлетворяющих какомe-либо условию.
Ну, например, сколько раз имя «Саша» встречается в таблице ниже (см. скриншот). Очевидно, что 2 раза (но это потому, что таблица слишком маленькая и взята в качестве наглядного примера). А как это посчитать формулой?
«=СЧЁТЕСЛИ( A2:A7 ; A2 )» — где:
- A2:A7 — диапазон, в котором будут проверяться и считаться строки;
- A2 — задается условие (обратите внимание, что можно было написать условие вида «Саша», а можно просто указать ячейку).
Результат показан в правой части на скрине ниже.
Количество строк с одним условием
Теперь представьте более расширенную задачу: нужно посчитать строки, где встречается имя «Саша», и где в столбце «B» будет стоять цифра «6». Забегая вперед, скажу, что такая строка всего лишь одна (скрин с примером ниже) .
Формула будет иметь вид:
=СЧЁТЕСЛИМН( A2:A7 ; A2 ; B2:B7 ;»6″) — (прим.: обратите внимание на кавычки — они должны быть как на скрине ниже, а не как у меня) , где:
A2:A7 ; A2 — первый диапазон и условие для поиска (аналогично примеру выше);
B2:B7 ;»6″ — второй диапазон и условие для поиска (обратите внимание, что условие можно задавать по разному: либо указывать ячейку, либо просто написано в кавычках текст/число).
Счет строк с двумя и более условиями
Как посчитать процент от суммы
Тоже довольно распространенный вопрос, с которым часто сталкиваюсь. Вообще, насколько я себе представляю, возникает он чаще всего — из-за того, что люди путаются и не знают, что от чего ищут процент (да и вообще, плохо понимают тему процентов (хотя я и сам не большой математик, и все таки. ☝) ).
👉 В помощь!
Как посчитать проценты: от числа, от суммы чисел и др. [в уме, на калькуляторе и с помощью Excel] — заметка для начинающих
Самый простой способ, в котором просто невозможно запутаться — это использовать правило «квадрата», или пропорции.
Вся суть приведена на скрине ниже: если у вас есть общая сумма, допустим в моем примере это число 3060 — ячейка F8 (т.е. это 100% прибыль, и какую то ее часть сделал «Саша», нужно найти какую. ).
По пропорции формула будет выглядеть так: =F10*G8/F8 (т.е. крест на крест: сначала перемножаем два известных числа по диагонали, а затем делим на оставшееся третье число).
В принципе, используя это правило, запутаться в процентах практически невозможно 👌.
Пример решения задач с процентами
PS
Собственно, на этом я завершаю данную статью. Не побоюсь сказать, что освоив все, что написано выше (а приведено здесь всего лишь «пяток» формул) — Вы дальше сможете самостоятельно обучаться Excel, листать справку, смотреть, экспериментировать, и анализировать. 👌
Скажу даже больше, все что я описал выше, покроет многие задачи, и позволит решать всё самое распространенное, над которым часто ломаешь голову (если не знаешь возможности Excel) , и даже не догадывается как быстро это можно сделать. ✔
Содержание
- 1 Простое сложение
- 2 Сложение каждой ячейки
- 3 Суммирование столбца
- 4 Использование формулы с помощью параметра «СУММ»
- 5 Суммирование с разных листов
- 6 Как посчитать сумму столбца в Excel
- 7 Как посчитать сумму определенных ячеек в Excel
- 8 Как быстро посмотреть сумму в Excel
- 9 Функция СУММ – простое суммирование ячеек в Excel
- 10 СУММЕСЛИ — условная сумма в Excel
Доброго всем времени суток, мои дорогие друзья и гости моего блога. Как всегда и как обычно с вами я, Дмитрий Костин. И сегодня я бы хотел продолжить наше общение с Экселем, потому что это действительно нужная вещь и в хозяйстве всегда пригодится. Я, например, себе уже не представляю жизнь без этого табличного редактора.
Я на данный момент веду несколько таблиц для разных целей, это не считая тех, которые мы ведем совместно с ребятами из отдела с помощью сервиса Google Docs. У меня есть табличка, которая суммирует мои доходы по сравнению с расходами для блога, также я веду финансовый учет планирования расходов и семейного бюджета, и кучу других документов.
Да, конечно для таких целей есть специальные программы, но если честно, то они меня далеко не во всем устраивают в плане функционала, а в excel я могу настроить всё под себя, как я этого пожелаю. Просторы для этого просто громадные. Тем более сами документы можно защитить паролем, что делает работу в этом редакторе еще надежнее, проще и удобнее. В общем не буду вас томить, а как раз расскажу, как в экселе посчитать сумму ячеек
Простое сложение
Начем с легенько разминки. Если вам нужно посчитать сyмму каких-то чиcел, то самое простое — это сделать обычный пример. Для этого встаньте на любую ячейку и напишите знак равенства (=), после чего начинайте складывать нужные цифры (=15+6+94+3-10+2). Последним штрихом вам нужно будет жмахнуть клавишу Enter, тогда весь этот математический пример молниеносно преобразуется в решенный ответ.
Сложение каждой ячейки
Для начала мы с вами научимся складывать просто несколько чисел, которые могут находиться в разных местах
- Откройте документ excel, где у вас записаны какие-либо значения.
- Теперь выберите какое-нибудь свободное место и поставьте туда знак «Равно» (=). В этот момент у вас активировалась функция решения примеров, и неважно каких, сложения или вычитания.
- Теперь нажмите на ячeйку, где у вас записано первое число, которое вы хотите использовать для сложения. В том месте, где мы ставили знак «=», должна появится координата этой цифры, т.е. C6 или D2, и т.д. Отлично. Это то, что нам нужно.
- Теперь поставьте знак «+» и нажмите на следующую ячейкy с данными, которое вы хотите использовать для сложения. Видите, как меняется значение в том месте, где мы ставили «=»? Да. Теперь там стоят уже две координаты, объединенные плюсом.
- Таким же образом продолжайте искать оставшиеся цифры и когда они закончатся, вам останется нажать Enter и значения, которые вы выбрали суммируются, а сама сумма покажется в ячейке, в которой мы изначально ставили знак равенства.
Суммирование столбца
Теперь перейдем к самому простому и вкусному. Да, сейчас вы узнаете как суммировать столбец.
Выделите столбeц или его часть, после чего переходите во вкладку «Формулы» и выбирайте там пункт «Автосумма». После этой несложной манипуляции вы увидите сумму всех выделенных вами чисел. Она автоматически встанет в ближайшую свободную ячейку в вашем столбце.
На самом деле даже необязательно, чтобы это был столбец. Это может быть как и строка, так и отдельные ячейки (можно выделить с помощью зажатой клавиши CTRL). Только место появление результата будет другое.
Использование формулы с помощью параметра «СУММ»
Этот способ особенно хорош тогда, когда вам нужно занести результат в определенную ячейку. По крайней мере я пользуюсь этим именно так и доволен как слон. Давайте покажу.
- Поставьте курсор в то место, где вы хотите, чтобы отображался ваш результат и поставьте туда уже знакомый нам знак равенства.
- Теперь нам нужно выполнить функцию «СУММ». Ее вы можете выбрать в левом верхнем углу листа, нажав на него. Либо вы можете увидеть ее во вкладке «Формулы», а затем выбрать «Математические», и уже там, среди множества других функций, искать заветную СУММ. В общем жмахайте.
- Вам откроется окно с аргументами функции. Здесь вы должны будете выбрать диапазон чисел, которые будете складывать. Например я хочу сложить столбик от А1 до А7. Тогда поставьте курсор в графу «Число 1», а затем выделите нужные ячейки.
- Теперь нажмите Enter и вы увидите, что всё у вас отлично посчиталось.
Кстати этим же способом вы можете воспользоваться, чтобы посчитать сумму ячеек с разных листов. Давайте расскажу чуть подробнее.
Суммирование с разных листов
- Откройте (создайте) новую таблицу, где разные значения будут находиться на разных листах. Сделали: Молодцы. И тогда сразу же поставьте в любую ячейку на любом лиcте знакомый значок «=» и снова выберите функцию «СУММ», как я рассказывал выше.
- Теперь, когда у вас открылось окно «Аргументы функции», поставьте курсор в строку «Число 1», после чего выделите нужные значения на первом листe.
- Теперь ставьте курсор в строку «Число 2», переходите на другой лист, и выделяйте все числа там. После этого нажмите ОК.
Всё, теперь несмотря на то, что числа находятся разных местах, сумма посчитана. Эта функция делает данный табличный редактор еще удобнее.
Чем мне особенно нравится excel, так это тем, что можно менять параметры формулы на лету. Например, если нам надо одно из участвующих числе уменьшить на две единицы, то соответственно уменьшится на два и вся сумма. Такую штуку частенько использую в повседневной жизни.
Ну на этом у меня вроде бы всё. Если остались какие-либо непонятки, то спрашивайте. С удовольствием отвечу на интересующие вас вопросы. Так же рекомендую вам подписаться на обновления моего блога, чтобы всегда быть в курсе обо всем новом и интересном. Увидимся с вами в других статьях. Пока-пока!
С уважением, Дмитрий Костин.
Табличный процессор Excel – отличное решение для обработки разного рода данных. С его помощью можно быстро производить расчеты с регулярно меняющимися данными. Однако Excel достаточно сложная программа и поэтому многие пользователи даже не начинают ее изучать.
В данной статье мы расскажем о том, как посчитать сумму в Excel. Надеемся, что этот материал поможет вам познакомиться с Excel и научиться использовать его основные функции.
Если вам необходимо посчитать сумму столбца в Excel, то это делается достаточно просто. Для этого вам понадобится кнопка «Авто сумма». Она находится на вкладке «Главная» (справа, в самом конце вкладки).
Также кнопка «Авто сумма» дублируется на вкладе «Формулы».
Для того чтобы посчитать сумму столбца, выделите этот столбец с помощью мышки и нажмите на кнопку «Авто сумма».
После выделения столбца с данными и нажатия на кнопку «Авто сумма» Excel автоматически сгенерирует формулу для подсчета суммы столбца и вставит ее в ячейку сразу под столбцом с данными.
Если такое расположение суммы столбца вам не подходит, то вы можете сами указать, где хотите расположить сумму. Для этого нужно выделить подходящую для суммы ячейку, нажать на кнопку «Автосумма», а потом выделить мышкой столбец с данными и нажать на клавишу Enter на клавиатуре.
В этом случае сумма столбца будет расположена не под столбцом с данными, а в выбранной вами ячейке таблицы.
Как посчитать сумму определенных ячеек в Excel
Если вам нужно посчитать сумму определенных ячеек в Excel, то это также можно сделать при помощи функции «Авто сумма». Для этого нужно выделить мышкой ячейку таблицы, в которую вы хотите поместить сумму, нажать на кнопку «Авто сумма» и выбрать нужные ячейки удерживая зажатой клавишу CTRL на клавиатуре. После того, как нужные ячейки выбраны, нажмите на клавишу Enter на клавиатуре, и в выбранной вами ячейке таблицы будет помещена сумма.
Кроме этого, вы можете вписать формулу для подсчета суммы определенных ячеек вручную. Для этого установите курсор там, где должна находится сумма, а потом введите формулу в формате: =СУММ(D3; D5; D7). Где вместо D3, D5 и D7 – адреса нужных вам ячеек. Обратите внимание, адреса ячеек вводятся через запятую, после последней ячейки запятая не нужна. После ввода формулы нажмите клавишу Eneter и в выбранной вами ячейке появится сумма.
Если формулу нужно отредактировать, например, вам нужно изменить адреса ячеек, то для этого нужно выделить ячейку с суммой и изменить формулу в строке для формул.
Как быстро посмотреть сумму в Excel
Если вам нужно быстро посмотреть какая сумма получится если сложить определенные ячейки, и при этом вам не нужно выводить значение суммы в таблицу, то вы можете просто выделить ячейки и посмотреть вниз окна Excel. Там вы сможете найти информацию о сумме выделенных ячеек.
Также там будет указано количество выделенных ячеек и их среднее значение.
В этом уроке мы не будем рассматривать, как посчитать сумму в Excel при помощи оператора сложения, автосуммы и прочих инструментов. Сегодня мы разберем всего две функции: СУММ и СУММЕСЛИ. Спешу Вас обрадовать, их функционала достаточно, чтобы решать практически все возможные вопросы суммирования в Excel.
Функция СУММ – простое суммирование ячеек в Excel
Функция СУММ вычисляет сумму всех своих аргументов. Она является наиболее часто используемой функцией в Excel. К примеру, нам необходимо сложить значения в трех ячейках. Мы, конечно же, можем воспользоваться обычным оператором суммирования:
Но мы также можем воспользоваться функцией СУММ и записать формулу следующим образом:
Поскольку функция СУММ поддерживает работу не только с отдельными ячейками, но и целыми диапазонами, то вышеприведенную формулу можно модифицировать:
Истинная мощь функции СУММ раскрывается, когда необходимо сложить большое количество ячеек в Excel. В примере ниже требуется просуммировать 12 значений. Функция СУММ позволяет сделать это несколькими щелчками мышью, если же использовать оператор сложения, то провозиться придется долго.
В следующем примере функция СУММ складывает весь столбец А, а это 1048576 значений:
Следующая формула подсчитывает сумму всех ячеек, содержащихся на рабочем листе Лист1. Чтобы данная формула не вызвала циклической ошибки, ее необходимо использовать на другом рабочем листе Excel (отличном от Лист1).
Функция СУММ может принимать до 255 аргументов и суммировать сразу несколько несмежных диапазонов или ячеек:
Если среди суммируемых значений содержится текст, то функция СУММ их игнорирует, т.е. не включает в расчет:
Если же текстовые значения попытаться сложить оператором суммирования, то формула вернет ошибку:
Функция СУММ достаточно универсальна и позволяет использовать в качестве своих аргументов не только ссылки на ячейки и диапазоны, но и различные математические операторы и даже другие функции Excel:
Если интересно узнать, как посчитать накопительную сумму в Excel, обратитесь к этому уроку.
СУММЕСЛИ — условная сумма в Excel
Функция СУММЕСЛИ позволяет подсчитать условную сумму в Excel, т.е. сумму ячеек, которые удовлетворяют определенному критерию. Функция СУММЕСЛИ может содержать только один критерий.
Например, следующая формула суммируем только положительные числа диапазона A1:A10. Обратите внимание, что условие заключено в двойные кавычки.
В качестве условия можно использовать значение ячейки. В этом случае, поменяв условие, изменится и результат:
Меняем условие, меняется и результат:
Условие можно комбинировать, используя оператор конкатенации. В примере ниже формула вернет сумму значений, которые больше значения в ячейке B1.
Во всех примерах, приведенных ранее, мы производили суммирование и проверяли условие по одному и тому же диапазону. А что делать, если необходимо просуммировать один диапазон, а условие проверять по-другому?
На этот случай функция СУММЕСЛИ припасла третий необязательный аргумент, который отвечает за диапазон, который необходимо просуммировать. Т.е. по первому аргументу функция проверяет условие, а третий подлежит суммированию.
В следующем примере мы просуммируем общую стоимость всех проданных фруктов. Для этого воспользуемся следующей формулой:
Нажав Enter получим результат:
Если одного условия Вам не достаточно, то Вы всегда можете воспользоваться функцией СУММЕСЛИМН, которая позволяет осуществлять условное суммирование в Excel на основе нескольких критериев.
Суммирование – это одно из основных действий, которое пользователь выполняет в Microsoft Excel. Функции СУММ и СУММЕСЛИ созданы, чтобы облегчить эту задачу и дать пользователям максимально удобный инструмент. Надеюсь, что этот урок помог Вам освоить базовые функции суммирования в Excel, и теперь Вы сможете свободно применять эти знания на практике. Удачи Вам и успехов в изучении Excel!
Оцените качество статьи. Нам важно ваше мнение:
17 авг. 2022 г.
читать 2 мин
Вы можете использовать следующий базовый синтаксис для суммирования значений на нескольких листах в Excel:
=SUM(Sheet1!A1, Sheet2!B5, Sheet3!A12, ...)
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: суммирование на нескольких листах в Excel
Предположим, у нас есть три листа с названиями неделя1 , неделя2 и неделя3 , каждый из которых содержит данные о восьми баскетболистах и их общем количестве очков, набранных за эту неделю:
Каждый лист имеет одинаковый макет с «Игроком» в столбце A и «Очками» в столбце B.
Теперь предположим, что мы хотим взять сумму очков, набранных каждым игроком в течение каждой недели, и отобразить сумму на новом листе с именем total :
Для этого мы можем использовать следующую формулу:
=SUM(week1!B2, week2!B2, week3!B2)
На следующем снимке экрана показано, как использовать эту формулу на практике:
Столбец «Всего очков» содержит сумму очков, набранных каждым игроком за неделю 1 , неделю 2 и неделю 3 .
Например:
- Всего за три недели игрок А набрал 20 очков.
- Игрок Б набрал в общей сложности 18 очков за три недели.
- Игрок C набрал в общей сложности 21 очко за три недели.
И так далее.
Обратите внимание: если каждая ячейка, которую вы хотите суммировать, находится в одном и том же месте на каждом листе, вы можете использовать следующий ярлык, чтобы получить сумму значений в ячейке B2 для каждого листа между week1 и week3 :
=SUM(week1:week3!B2)
На следующем снимке экрана показано, как использовать эту формулу на практике:
Обратите внимание, что значения в столбце Total Points совпадают с теми, которые мы рассчитали ранее.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Excel:
Как сравнить два листа Excel на предмет различий
Как посчитать сумму по группе в Excel
Как считать по группам в Excel
Продолжаем описание инструментов по оптимизации работы с листами книги EXCEL.
Пример – отчётная таблица по продажам товаров за каждый месяц в разрезе покупателей, создаваемая вручную.
Если у вас уже есть ранее созданные таблицы на каждый месяц, расположенные на листах одной книги (файла), и вам необходимо просуммировать показатели за закрытые периоды на сегодняшний день, вы можете воспользоваться так называемыми «трехмерными формулами». Эти формулы охватывают диапазоны, в которые входят сразу несколько листов. Для этого:
- Создаем дополнительный лист, в котором будем производить расчеты (Сводный) и копируем пустую таблицу.
- В первую ячейку вводим формулу суммирования СУММ (набираем =сумм, выбираем из выпадающего списка предлагаемую формулу).
- Переключаемся на лист «Янв» и выбираем (кликаем) первую, соответствующую по расположению нашей формуле в сводном листе, ячейку.
Далее самое важное! - Нажимаем на кнопку «Shift» на клавиатуре, и кликаем на ярлык последнего листа, который необходимо добавить в расчет(«Дек», или закрытый период – «Апр», как в примере).
Будут сгруппированы все листы с «Янв» по «Апр», все данные на этих листах попадут в расчет. - Заканчиваем ввод нажатием Enter, формула на сводном листе будет иметь вид =СУММ(Янв:Апр!C6).
- Далее – с помощью автозаполнения (просто протягиваем вправо и вниз), заполняем всю сводную таблицу нашей формулой и форматируем, как нам надо.
Если материал Вам понравился или даже пригодился, Вы можете поблагодарить автора, переведя определенную сумму по кнопке ниже:
(для перевода по карте нажмите на VISA и далее «перевести»)
Хитрости »
14 Май 2012 167971 просмотров
Как просуммировать данные с нескольких листов, в том числе по условию
Достаточно распространенная ситуация: в книге ведутся данные по продажам, разбивая каждый месяц на отдельный лист с именем месяца. Т.е. в листах Январь, Февраль и Март и т.д. расположены данные по продажам, а в ячейке C33 подводится общий итог за месяц. И на отдельном листе необходимо просуммировать все продажи по всем листам. Если структура всех таблиц одинакова (одинаковое кол-во строк, товар может различаться) и Итог расположен во всех таблицах в одной ячейке, то можно воспользоваться простой формулой:
=СУММ(Январь:Март!C33)
=SUM(Январь:Март!C33)
Как это сделать без указания имен листов вручную:
- вбиваем в итоговую ячейку функцию СУММ(SUM)
- для указания аргументов переходим на первый лист, данные которого необходимо суммировать
- далее зажимаем клавишу Shift и выделяем последний лист(если необходимо выделить несмежные листы – зажимаем клавишу Ctrl)
- указываем адрес ячейки для суммирования и жмем Enter
Подобная ссылка на диапазоны называется трехмерной ссылкой. Если между листом Январь и Март добавить еще какой-нибудь лист — то данные с него будут также автоматически включены в функцию суммирования, приведенную выше. Поэтому необходимо следить, чтобы указывались только нужные листы или диапазон листов ОТ и ДО. Если листов много и суммировать необходимо данные одной ячейки со всех листов, кроме того, в котором сама функция, то можно записать так:
=СУММ(‘*’!C33)
=SUM(‘*’!C33)
После того, как введет такую функцию в ячейку, Excel сам подставит в правильном виде имена всех листов для суммирования, даже если они идут не по порядку. Т.е. лист суммирования не обязательно должен быть в самом начале книги или в конце — он может быть и в середине — функция его автоматически уберет из суммирования в момент ввода функции.
Звездочка в данном случае является подстановочным символом, который заменяет собой любое количество любых символов. Т.е. в данном случае, как бы говорящим Excel: имя листа может быть любым. Поэтому, если надо суммировать только конкретные ячейки, но не со всех листов, а только с листов, начинающихся со слова «Отчет» — можно функцию записать так:
=СУММ(‘Отчет*’!C33)
=SUM(‘Отчет*’!C33)
Зная этот прием, можно заранее подготовить книгу, чтобы имена листов имели такие названия, по которым можно будет суммировать данные только с нужных в зависимости от ситуации(например, для каждой категории листов свое обозначение: «-год-«,»-месяц-«,»-квартал-» и т.п.).
К слову, подобное использование функции доступно и для родственных СУММ: СЧЁТ(COUNT), СРЗНАЧ(AVERAGE), МИН(MIN) и МАКС(MAX)
Минус такой функции в том, что таким образом можно просуммировать данные только ячеек листа, расположенных в одном и том же диапазоне(т.е. со всех листов будет взята сумма всех ячеек конкретного диапазона — в примере будут просуммированы данные из одной ячейки C33 всех листов). А использование функции ДВССЫЛ(INDIRECT) для динамического указания имен первого и последнего листа при этом не допускается.
А значит, если необходимо будет просуммировать данные по отдельным товарам со всех листов, а товары расположены в каждом листе в хаотичном порядке, разном для каждого листа и количество строк различается — такая формула не подойдет. Но можно воспользоваться чуть более сложной формулой:
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ({«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»}&»!B3:B100″);B3;ДВССЫЛ({«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»}&»!C3:C100″)))
=SUMPRODUCT(SUMIF(INDIRECT({«Январь»;»Февраль»;»Март»;»Апрель»;»Май»;»Июнь»}&»!B3:B100″),B3,INDIRECT({«Январь»;»Февраль»;»Март»;»Апрель»;»Май»;»Июнь»}&»!C3:C100″)))
В данном случае названия товаров записаны в столбце B, а суммы — в столбце С
- «Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь» — имена листов, с которых происходит суммирование. Важно помнить, что имена листов должны быть точь-в-точь как в книге(со всеми пробелами, точками и запятыми), иначе будет ошибка. Не буду останавливаться подробно на всех вложенных функциях. Про СУММЕСЛИ(SUMIF) можно прочитать в этой статье. ДВССЫЛ(INDIRECT) используется для создания ссылки на диапазон, состоящей из имени листа и адреса ячеек: Январь!B3:B100, Февраль!B3:B100, Март!B3:B100, Апрель!B3:B100, Май!B3:B100, Июнь!B3:B100. Т.е. мы в формуле перебираем все указанные листы, создаем диапазоны в каждом из них и суммируем на основании критерия при помощи СУММЕСЛИ. А при помощи СУММПРОИЗВ(SUMPRODUCT) суммируем полученные от СУММЕСЛИ результаты в единое число.
Важно: если в имени листа встречается пробел, либо иной знак препинания, то имя листа необходимо заключать в апострофы: «‘Январь 2014′»:»‘Февраль 2014′»:»Март»:»Апрель»:»Май»:»Июнь»
либо ставить апострофы заранее для всех листов:
ДВССЫЛ(«‘»&{«Январь»:»Февраль»:»Март»:»Апрель»:»Май»:»Июнь»}&»‘!C3:C100″) - B3:B100- диапазон в каждом листе, в котором искать критерий (при необходимости указать больше строк)
- B3- ссылка на ячейку в итоговом листе, содержащую критерий
- C3:C100 — диапазон в каждом листе, ячейки из которого надо суммировать (при необходимости указать больше строк)
В чем главное неудобство — необходимо так или иначе указывать листы, с которых суммировать. Если листов много, то перечислить их все в формуле будет не так-то просто. В таком случае можно записать имена листов в отдельный диапазон и ссылаться на него в формуле(формула в данном случае получается более универсальной и короткой):
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ(«‘»&$H$3:$H$8&»‘!B3:B100»);B3;ДВССЫЛ(«‘»&$H$3:$H$8&»‘!C3:C100»)))
=SUMPRODUCT(SUMIF(INDIRECT(«‘»&$H$3:$H$8&»‘!B3:B100»),B3,INDIRECT(«‘»&$H$3:$H$8&»‘!C3:C100»)))
Но и она имеет свои недостатки:
- нельзя указать диапазон имен листов «с запасом». Т.е. если у нас имена листов записаны в диапазоне H3:H8, то нельзя в формуле указать H3:H10
- в диапазоне с перечислением листов не должно быть пустых ячеек
- в диапазоне с перечислением листов не должно быть имен листов, которые заведомо отсутствуют в книге. Например, если имя листа записано с опечаткой
Если хоть одно из этих условий не выполняется — формула вернет ошибку #ССЫЛКА!(#REF!)
Плюс иногда именно перечисление листов напрямую в формуле удобнее. Например, если нет возможности выделить для этого отдельный диапазон.
Поэтому во вложении ниже эта формула представлена в двух вариантах: со статичным перечислением имен листов и с использованием дополнительного столбца для перечисления листов. А какую именно использовать — придется решать по ситуации.
Так же в примере перечислены все варианты суммирования, включая разбираемые ниже с использованием Visual Basic for Applications
Скачать пример суммирования с листов формулой
Суммировать со всех листов.xls (134,0 KiB, 12 706 скачиваний)
Возможно, есть и иные способы суммирования формулой. Может даже есть способ суммировать, не указывая имена листов, но у меня не получилось так сделать без использования VBA. Поэтому я написал свою пользовательскую функцию:
'--------------------------------------------------------------------------------------- ' Function : СУММЕСЛИ_ВСЕ_ЛИСТЫ ' Purpose : Функция суммирует на основании критерия значения со всех листов, кроме листа с функцией ' Диапазон - ссылка на диапазон ячеек для поиска критерия ' Критерий - значение, на основании которого суммировать данные ' ДиапазонСуммирования - ссылка на диапазон ячеек, значения которых суммировать ' ВсеЛисты - 1(по умолчанию) - суммирование происходит со всех листов, кроме листа с функцией ' 0 - суммирование происходит только в листах, расположенных левее листа с функцией '--------------------------------------------------------------------------------------- Function СУММЕСЛИ_ВСЕ_ЛИСТЫ(Диапазон As Range, Критерий, ДиапазонСуммирования As Range, Optional ВсеЛисты As Boolean = True) Dim wsSh As Worksheet Dim wbFunc As Workbook Dim sRange As String, sSumRange As String Dim dblSum As Double Dim rRange As Range, rCriteria As Range, rSumRange As Range, bAllSh As Boolean Set rRange = Диапазон If IsObject(Критерий) Then Set rCriteria = Критерий Else rCriteria = Критерий End If Set rSumRange = ДиапазонСуммирования bAllSh = ВсеЛисты 'определяем книгу, в которой записана функция Set wbFunc = Application.Caller.Parent.Parent 'определяем адреса поиска критерия и суммирования sRange = rRange.Address sSumRange = rSumRange.Address 'цикл по всем листам книги с функцией For Each wsSh In wbFunc.Worksheets If bAllSh Then 'если это не лист с функцией If wsSh.Name <> Application.Caller.Parent.Name Then dblSum = dblSum + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Else 'если лист ДО листа с функцией If wsSh.Index < Application.Caller.Parent.Index Then dblSum = dblSum + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If End If Next wsSh 'выводим результат СУММЕСЛИ_ВСЕ_ЛИСТЫ = dblSum End Function
Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions).
Синтаксис функции:
суммируем со всех листов
=СУММЕСЛИ_ВСЕ_ЛИСТЫ(B3:B100;B3;C3:C100)
суммируем со всех листов ДО листа с функцией
=СУММЕСЛИ_ВСЕ_ЛИСТЫ(B3:B100;B3;C3:C100;0)
Аргументы функции аналогичны стандартной СУММЕСЛИ, только в конце добавлен еще один, необязательный. Принцип работы и все нюансы полностью совпадают с таковыми для функции СУММЕСЛИ(можно использовать подстановочные символы и операторы сравнения), т.к. внутри функции применяется непосредственно СУММЕСЛИ, применительно к каждому листу, а результаты затем суммируются в единое значение.
Диапазон — Ссылка на диапазон ячеек. Указывается диапазон значений, среди которых необходимо искать критерий(Критерий).
Критерий — Ссылка на ячейку или произвольное значение, на основании которого надо суммировать данные.
ДиапазонСуммирования — Ссылка на диапазон ячеек. Указывается диапазон ячеек, значения в которых необходимо просуммировать на основании критерия(Критерий).
ВсеЛисты — Необязательный аргумент. Если не указан, или указано значение 1 или ИСТИНА(TRUE), то будут суммироваться значения со всех листов, кроме листа, на котором записана функция. Если указано значение 0 или ЛОЖЬ(FALSE), то будут суммироваться значения с листов, расположенных до листа, на котором записана функция.
Применение всех функций вы найдете в примере к статье:
Скачать пример
Суммировать со всех листов.xls (134,0 KiB, 12 706 скачиваний)
Дополнил статью функцией, которая суммирует данные только с указанных листов, либо со всех, кроме листа с функцией:
'--------------------------------------------------------------------------------------- ' Function : СУММЕСЛИ_ЛИСТЫ ' Purpose : Функция суммирует на основании критерия значения с указанных листов, кроме листа с функцией ' Диапазон - ссылка на диапазон ячеек для поиска критерия ' Критерий - значение, на основании которого суммировать данные ' ДиапазонСуммирования - ссылка на диапазон ячеек, значения которых суммировать ' ИмяЛистов - Имена листов, записанные через вопр.знак(?), с которых суммировать данные ' Пример: "Январь?Февраль?Май" '--------------------------------------------------------------------------------------- Function СУММЕСЛИ_ЛИСТЫ(Диапазон As Range, Критерий, ДиапазонСуммирования As Range, Optional ИмяЛистов = "") Dim asSheets, li As Long Dim wsSh As Worksheet Dim wbFunc As Workbook Dim sRange As String, sSumRange As String Dim dblSum As Double Dim rRange As Range, rCriteria As Range, rSumRange As Range, sSheets As String Set rRange = Диапазон If IsObject(Критерий) Then Set rCriteria = Критерий Else rCriteria = Критерий End If Set rSumRange = ДиапазонСуммирования sSheets = ИмяЛистов 'определяем книгу, в которой записана функция Set wbFunc = Application.Caller.Parent.Parent 'определяем адреса поиска критерия и суммирования sRange = rRange.Address sSumRange = rSumRange.Address If sSheets = "" Then For Each wsSh In wbFunc.Worksheets If wsSh.Name <> Application.Caller.Parent.Name Then sSheets = sSheets & "?" & wsSh.Name End If Next wsSh sSheets = Mid$(sSheets, 2) End If asSheets = Split(sSheets, "?") 'цикл по всем листам книги For li = LBound(asSheets) To UBound(asSheets) Set wsSh = wbFunc.Sheets(asSheets(li)) If Not wsSh Is Nothing Then dblSum = dblSum + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Next li 'выводим результат СУММЕСЛИ_ЛИСТЫ = dblSum End Function
Синтаксис функции:
=СУММЕСЛИ_ЛИСТЫ($B$3:$B$100;$A3;$C$3:$C$100;»Январь?Март»)
Диапазон — Ссылка на диапазон ячеек. Указывается диапазон значений, среди которых необходимо искать критерий(Критерий).
Критерий — Ссылка на ячейку или произвольное значение, на основании которого надо суммировать данные.
ДиапазонСуммирования — Ссылка на диапазон ячеек. Указывается диапазон ячеек, значения в которых необходимо просуммировать на основании критерия(Критерий).
ИмяЛистов — Необязательный аргумент. Указываются имена листов книги, с которых надо суммировать данные. Имена листов должны быть записаны через вопросительный знак: Январь?Март. Если аргумент не указан или указана пустая ячейка, то будут суммироваться значения со всех листов, кроме листа, на котором записана функция.
Скачать пример с кодом функции:
Скачать пример
Суммировать со всех листов.xls (134,0 KiB, 12 706 скачиваний)
Очередное дополнение статьи — функция, в которой помимо перечисления листов можно указать книгу, в которой эти листы просматривать:
'--------------------------------------------------------------------------------------- ' Function : СУММЕСЛИ_ЛИСТЫ_В_КНИГЕ ' Purpose : Функция суммирует на основании критерия значения с указанных листов, кроме листа с функцией ' Диапазон - ссылка на диапазон ячеек для поиска критерия ' Критерий - значение, на основании которого суммировать данные ' ДиапазонСуммирования - ссылка на диапазон ячеек, значения которых суммировать ' ИмяЛистов - Имена листов, записанные через вопр.знак(?), с которых суммировать данные ' Пример: "Январь?Февраль?Май" ' ИмяКниги - имя книги, данные с которой необходимо суммировать '--------------------------------------------------------------------------------------- Function СУММЕСЛИ_ЛИСТЫ_В_КНИГЕ(Диапазон As Range, Критерий, ДиапазонСуммирования As Range, Optional ИмяЛистов = "", Optional ИмяКниги As String = "") Dim wsSh As Worksheet, sRange As String, sSumRange As String, asSheets, li As Long Dim wbB As Workbook Dim dblSum As Double Dim rRange As Range, rCriteria As Range, rSumRange As Range, sSheets As String, sWbName As String Set rRange = Диапазон If IsObject(Критерий) Then Set rCriteria = Критерий Else rCriteria = Критерий End If Set rSumRange = ДиапазонСуммирования sSheets = ИмяЛистов sWbName = ИмяКниги If sWbName = "" Then Set wbB = Application.Caller.Parent.Parent Else Set wbB = Application.Workbooks(sWbName) End If 'определяем адреса поиска критерия и суммирования sRange = rRange.Address sSumRange = rSumRange.Address If sSheets = "" Then For Each wsSh In wbB.Worksheets If wsSh.Name <> Application.Caller.Parent.Name Then sSheets = sSheets & "?" & wsSh.Name End If Next wsSh sSheets = Mid$(sSheets, 2) End If asSheets = Split(sSheets, "?") 'цикл по всем листам указанной книги On Error Resume Next For li = LBound(asSheets) To UBound(asSheets) Set wsSh = wbB.Sheets(asSheets(li)) If Not wsSh Is Nothing Then dblSum = dblSum + Application.SumIf(wsSh.Range(sRange), rCriteria, wsSh.Range(sSumRange)) End If Next li 'выводим результат СУММЕСЛИ_ЛИСТЫ_В_КНИГЕ = dblSum End Function
Синтаксис функции:
=СУММЕСЛИ_ЛИСТЫ_В_КНИГЕ($B$3:$B$100;$A3;$C$3:$C$100;»Январь?Март»;»Книга1.xlsx»)
Аргументы и их использование полностью совпадают с описанными выше для функции СУММЕСЛИ_ЛИСТЫ. Поэтому опишу только последний аргумент:
ИмяКниги — Необязательный аргумент. Указываются имя книги, в которой будут просматриваться листы, указанные параметром ИмяЛистов. Если аргумент ИмяКниги не указан — листы просматриваются в книге, в которой записана сама функция. Если какого-либо из указанных листов не будет в указанной книге — ошибка будет проигнорирована. Если среди открытых книг не будет книги с указанным именем — функция вернет ошибку #ЗНАЧ!(#VALUE!). Важно: имя книги необходимо указывать вместе с расширением: «Книга1.xlsx»
Скачать пример с кодом функций:
Скачать пример
Суммировать со всех листов.xls (134,0 KiB, 12 706 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика