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

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

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

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

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

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

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

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

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

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

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

И еще, может быть есть такая возможность оперировать диапазонами листов - типа Лист1:Лист500?
...
Рейтинг: 0 / 0
09.12.2008, 14:00
    #35702624
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по листам
Вот ещё один вариант: формулу можно распространять вправо и вниз, упрощена работа с листами.
...
Рейтинг: 0 / 0
09.12.2008, 14:19
    #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
09.12.2008, 16:51
    #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
10.12.2008, 07:36
    #35704345
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по листам
otlichnikОднако сейчас нужен вариант именно с формулами...всё-таки не понятно, почему? тем более вы то же видите что сводными удобнее пользоваться (просто интересно)
а то что листов много, так их можно кодом перебрать (как уже впрочем советовали выше)
С уважением Игорь.
...
Рейтинг: 0 / 0
10.12.2008, 09:20
    #35704423
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по листам
Даже не сомневался, что уважаемые A-Nik и KL (XL) решат проблему

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

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

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

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


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