powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование по листам
25 сообщений из 27, страница 1 из 2
Суммирование по листам
    #35699460
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времечка всем!
Подскажите пожалуйста в таком вопросе: есть Excel книга содержащая большое количество листов. Структура листов одинакова - в первом столбце название, во втором значение.
Требуется в итоговом листе посчитать сумму по определенным названиям по всем листам книги.
Ранее реализовал с помощью функции:
=СУММЕСЛИ(диапазон названий листа1;нужное название;диапазон значений листа1)+СУММЕСЛИ(диапазон названий листа2;нужное название;диапазон значений листа2)+... и т.д. до последнего листа.
Поскольку листов в книге много, то даже при максимально коротком имени листа формула становится громоздкой и вот теперь уже не умещается в одной ячейке.
Пробовал задавать диапазоны листов. Фунция =СУММ(Лист1:Лист3!B:B) отрабатывает правильно, а вот СУММЕСЛИ не выходит.
Пример прилагаю.

Может кто-нибудь подскажет как реализовать это с помошью формул?
Заранее признателен за совет
...
Рейтинг: 0 / 0
Суммирование по листам
    #35699757
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так не пойдёт? Можно скрыть дежурные столбцы...
Если не годится, то надо кодом. Это не сложно, а работать будет :)
...
Рейтинг: 0 / 0
Суммирование по листам
    #35699883
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

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

По сути, это предложение только ускорение ввода формулы СУММЕСЛИ и для моей задачки не подходит.
Макросы же использовать не хочется. Может будут какие-то другие варианты?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35699932
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выглядит тогда пример? Категория, а потом в ряд много значений?
Или категория, а рядом значение много раз в разных местах на листе?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35699949
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грустно, конечно, но исходя из справки (см. ниже) без дополнительных столбцов или макроса сделать будет не возможно.

Стиль трехмерных ссылок

Трехмерные ссылки используются при необходимости анализа данных из одной и той же ячейки или диапазона ячеек на нескольких листах одной книги. Трехмерная ссылка включает в себя ссылку на ячейку или диапазон, перед которой ставятся имена листов. Microsoft Excel использует все листы, хранящиеся между начальным и конечным именами, указанными в ссылке. Например, формула =СУММ(Лист2:Лист13!B5) суммирует все значения, содержащиеся в ячейке B5 на всех листах в диапазоне от Лист2 до Лист13 включительно.

Трехмерные ссылки могут быть использованы для создания ссылок на ячейки на других листах, определения имен и создания формул с использованием следующих функций: СУММ, СРЗНАЧ, СРЗНАЧА, СЧЁТ, СЧЁТЗ, МАКС, МАКСА, МИН, МИНА, ПРОИЗВЕД, СТАНДОТКЛОН, СТАНДОТКЛОНА, СТАНДОТКЛОНП, СТАНДОТКЛОНПА, ДИСП, ДИСПА, ДИСПР и ДИСПРА.
Трехмерные ссылки нельзя использовать в формулах массива (Формула массива. Формула, выполняющая несколько вычислений над одним или несколькими наборами значений, а затем возвращающая один или несколько результатов. Формулы массива заключены в фигурные скобки { } и вводятся нажатием клавиш CTRL+SHIFT+ВВОД.).
Трехмерные ссылки нельзя использовать вместе с оператором (Оператор. Знак или символ, задающий тип вычисления в выражении. Существуют математические, логические операторы, операторы сравнения и ссылок.) пересечения (пробел), а также в формулах, использующих неявное пересечение (Неявное пересечение. Ссылка на диапазон ячеек вместо одной ячейки, из которого в расчете выбирается одна соответствующая ячейка. Например, если в ячейке C10 содержится формула =B5:B15*5, на 5 будет умножено значение из ячейки B10, потому что ячейки B10 и C10 находятся в одной строке.).
...
Рейтинг: 0 / 0
Суммирование по листам
    #35699973
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Выкладываю откорретированный пример
...
Рейтинг: 0 / 0
Суммирование по листам
    #35700050
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otlichnik, попробуй так!
Может понравится с использованием сводных таблиц.

Корректировать количество листов с данными можно в эм эс куери (как правильно говориться не знаю, но мне ближе *уери) так:
правой кнопкой по сводной таблице
выбрать мастер таблиц
получить данные
войти в куери
нажать SQL
в появившемся окне записать следующую процедуру звездочка означает выбор всех полей, но куери может их все перечислить
SELECT *
FROM `D:\Временная\СуммаЕсли`.`Лист1$` `Лист1$`
union all
SELECT *
FROM `D:\Временная\СуммаЕсли`.`Лист2$` `Лист2$`
union all
SELECT *
FROM `D:\Временная\СуммаЕсли`.`Лист3$` `Лист3$`

Получилось?
Помогло?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35700057
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот и файл
...
Рейтинг: 0 / 0
Суммирование по листам
    #35700101
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот такой есть вариант... Тоже не подходит? Дежурные поля есть, но там всё регулируется без напряга.
!Работает при условии, что искомое значение на листе встречается только 1 раз!
...
Рейтинг: 0 / 0
Суммирование по листам
    #35700139
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей06,
спасибо за вариант. Делаешь сводную с данными в нескольких диапазонах и наслаждаешься результатом. Сводными таблицами складывающими по нескольким листам где возможно пользуюсь.
Однако сейчас нужен вариант именно с формулами...
...
Рейтинг: 0 / 0
Суммирование по листам
    #35700208
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Повнимательнее посмотрите, что должно получиться в листе "итог" (второй файл, который выкладывал). Требуется несколько иное, чем у Вас получилось...
...
Рейтинг: 0 / 0
Суммирование по листам
    #35701166
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otlichnik, консолидируйте данные с сохранением связей..
...
Рейтинг: 0 / 0
Суммирование по листам
    #35701956
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что уважаемые знатоки Excel, выходит вердикт такой, что в одной ячейке вычислить сумму значений удовлетворяющих определенным условиям по всем листам книги (при условиии, что листов очень много) невозможно? Нет пока в 2003 Excel таких возможностей?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35702274
A-Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
otlichnikТак что уважаемые знатоки Excel, выходит вердикт такой, что в одной ячейке вычислить сумму значений удовлетворяющих определенным условиям по всем листам книги (при условиии, что листов очень много) невозможно? Нет пока в 2003 Excel таких возможностей?
Нет, такой вердикт не выходит :-) Такие возможности есть :-) Смотри
...
Рейтинг: 0 / 0
Суммирование по листам
    #35702497
otlichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A-Nik,

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

Если есть время, можете пояснить что означают фигурные скобки? Ну и вообще как работает конструкции СУММ(СУММЕСЛИ(...)) и ДВССЫЛ({"Лист1";"Лист2";"Лист3"}&"!$A1:$A10"???

И еще, может быть есть такая возможность оперировать диапазонами листов - типа Лист1:Лист500?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35702624
A-Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё один вариант: формулу можно распространять вправо и вниз, упрощена работа с листами.
...
Рейтинг: 0 / 0
Суммирование по листам
    #35702693
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otlichnik,

можешь попробовать вот такое извращение в ячейке B2 (ввод через Ctrl+Shift+Enter ):

=СУММ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!B2:B10")))

или такое (ввод через Enter ):

=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!B2:B10")))

Смысл в том, что бы все суммируемые листы имели стандартное название и последовательную нумерацию (без пропусков).
...
Рейтинг: 0 / 0
Суммирование по листам
    #35703361
A-Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
otlichnik... Если есть время, можете пояснить что означают фигурные скобки? Ну и вообще как работает конструкции СУММ(СУММЕСЛИ(...)) и ДВССЫЛ({"Лист1";"Лист2";"Лист3"}&"!$A1:$A10"???
1. В {...} задаётся массив данных.
2. Вкладывать СУММЕСЛИ() в СУММ() надо потому, что в данном случае СУММЕСЛИ() возвращает массив, количество элементов которого равно количеству просматриваемых листов (в данном случае 3).
3. ДВССЫЛ({"Лист1";"Лист2";"Лист3"}&"!A1:A10") работает оч. просто. Выделите часть формулы {"Лист1";"Лист2";"Лист3"}&"!A1:A10" и нажмите F9. Вы получите результат выполнения выделенной части формулы и сразу всё станет ясно.otlichnikИ еще, может быть есть такая возможность оперировать диапазонами листов - типа Лист1:Лист500?
Боюсь, что используя эту формулу на 500 листах вы просто не сможете работать из за длительного пересчёта книги при изменении любой ячейки. Как вариант - можно сделать макрос, который при нажатии на кнопку распространяет формулу на всю таблицу, а затем заменяет формулы значениями.
...
Рейтинг: 0 / 0
Суммирование по листам
    #35704345
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otlichnikОднако сейчас нужен вариант именно с формулами...всё-таки не понятно, почему? тем более вы то же видите что сводными удобнее пользоваться (просто интересно)
а то что листов много, так их можно кодом перебрать (как уже впрочем советовали выше)
С уважением Игорь.
...
Рейтинг: 0 / 0
Суммирование по листам
    #35704423
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже не сомневался, что уважаемые A-Nik и KL (XL) решат проблему

Лично я вижу смысл пользоваться тут пользоваться формулами, а не кодом, только если листы защищённые и для корректной работы придётся подписывать макрос... Но, что я понимаю
...
Рейтинг: 0 / 0
Суммирование по листам
    #35704618
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)otlichnik,

можешь попробовать вот такое извращение в ячейке B2 (ввод через Ctrl+Shift+Enter ):

=СУММ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!B2:B10")))

или такое (ввод через Enter ):

=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА(ДВССЫЛ("1:"&СЧЁТЗ(Лист1:Лист3!$A$1)))&"!B2:B10")))

Смысл в том, что бы все суммируемые листы имели стандартное название и последовательную нумерацию (без пропусков).

В данном контексте не вижу смысла указывать диапазон листов, разве что для наглядности, но также не исключено и заблуждение. Предлагаю заменить на простое указание строк.
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!B2:B10")))
...
Рейтинг: 0 / 0
Суммирование по листам
    #35708090
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadВ данном контексте не вижу смысла указывать диапазон листов, разве что для наглядности, но также не исключено и заблуждение. Предлагаю заменить на простое указание строк.
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!B2:B10")))

Смысл в том, что если между листами Лист1 и Лист3 добавить еще листы с заголовком в $A$1, то формула автоматически их включит в сумму. Твой пример - это возврат к решению A-Nik, но с проблемой: что если будет случайно или сознательно введена строка между $1 и $3?
...
Рейтинг: 0 / 0
Суммирование по листам
    #35708120
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)DeggasadВ данном контексте не вижу смысла указывать диапазон листов, разве что для наглядности, но также не исключено и заблуждение. Предлагаю заменить на простое указание строк.
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!B2:B10")))

Смысл в том, что если между листами Лист1 и Лист3 добавить еще листы с заголовком в $A$1, то формула автоматически их включит в сумму. Твой пример - это возврат к решению A-Nik, но с проблемой: что если будет случайно или сознательно введена строка между $1 и $3?
понял, признаю.
От недостатка со строкой уйти довольно просто.
...
Рейтинг: 0 / 0
Суммирование по листам
    #35712538
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)DeggasadВ данном контексте не вижу смысла указывать диапазон листов, разве что для наглядности, но также не исключено и заблуждение. Предлагаю заменить на простое указание строк.
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!A2:A10");$A2;ДВССЫЛ("Лист"&СТРОКА($1:$3)&"!B2:B10")))

Смысл в том, что если между листами Лист1 и Лист3 добавить еще листы с заголовком в $A$1, то формула автоматически их включит в сумму.
забыл сказать, что в этом случае придется переименовать листы, либо Лист4 ставить между Лист1 и Лист3, так что удовольствие все же сомнительное
...
Рейтинг: 0 / 0
Суммирование по листам
    #35712621
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не забыл :)
KL (XL)Смысл в том, что бы все суммируемые листы имели стандартное название и последовательную нумерацию (без пропусков).
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование по листам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]