Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
суммирование данных с разных листов по условию
 
Добрый вечер господа. Помогите пожалуйста победить проблему. В файл время от времени добавляются новые листы(акты), нужен реестр который будет брать данные из этих актов и суммировать их по условию(названию фирм). Попробовал через СУММЕСЛИ, но что то не получается, возможно не правильно прописываю диапазон листов. Может что то подскажите по ошибке в функции или поможете каким нибудь несложным макросом? И еще хотелось бы после победы с этой проблемой реализовать что бы в столбце G через запятую прописывались номера актов в которых участвовали фирмы.(в файле забил от руки, как должно бы выглядеть)
 
Из справки
Цитата
Стиль трехмерных ссылок
Трехмерные ссылки используются при необходимости анализа данных из одной и той же ячейки или диапазона ячеек на нескольких листах одной книги. Трехмерная ссылка включает в себя ссылку на ячейку или диапазон, перед которой ставятся имена листов.Microsoft Excel использует все листы, хранящиеся между начальным и
конечным именами, указанными в ссылке. Например, формула =СУММ(Лист2:Лист13!B5) суммирует все значения, содержащиеся в ячейке B5 на всех листах в диапазоне от Лист2 до Лист13 включительно.

Трехмерные ссылки могут быть использованы для создания ссылок на ячейки на других листах, определения имен и создания формул с использованием следующих
функций: СУММ, СРЗНАЧ, СРЗНАЧА, СЧЁТ, СЧЁТЗ, МАКС, МАКСА, МИН, МИНА, ПРОИЗВЕД, СТАНДОТКЛОН, СТАНДОТКЛОНА, СТАНДОТКЛОНП, СТАНДОТКЛОНПА, ДИСП, ДИСПА, ДИСПР и ДИСПРА.
СУММЕСЛИ с такой конструкцией не работает.
Согласие есть продукт при полном непротивлении сторон.
 
...только макрос?
 
Можно UDF
Работать надо не 12 часов, а головой.
 
так можно
Код
=СУММПРОИЗВ(СУММЕСЛИ(ДВССЫЛ({"1";"2";"3"}&"!B7:B100");$B6;ДВССЫЛ({"1";"2";"3"}&"!H7:H100")))
Лень двигатель прогресса, доказано!!!
 
Сергей, листы будут добавляться, каждый раз формулу переписывать?
 
Цитата
Leanna написал: Можно UDF
При добавлении еще одного листа с данными не считает...
 
загляните сюда там примеры как её можно использовать ссылаясь на диапазон с названиями листов а такой диапазон можно создать автоматически с помощью макрофункции поиск в помощь
Лень двигатель прогресса, доказано!!!
 
hohol1973, кнопка, которую Вам нравится нажимать, служит для создания цитат, но не для ответа! Сообщения подправил.
 
hohol1973,  считает если вы проставите акт.
Номер акта должен соответствовать номеру листа, как в примере.
Изменено: Leanna - 10 Мар 2015 11:03:51
Работать надо не 12 часов, а головой.
 
Дело в том что я с UDF малознаком. Буду разбираться.
 
Leanna,Сел, разобрался с UDF, прикрутил все к своему файлу, работает...но. Функция считает в момент ее ввода в ячейку, после нажатия ENTER.потом меняются данные на листах, а цифра в ячейке такая же как и была, не меняется. Решил кнопкой с макросом который протягивает формулу обновляя данные, но мне кажется это не правильно.
 
Сергей,Спасибо, ссылка оказалась полезной.
 
hohol1973, надо тогда прописать Application.Volatile в самое начало функции тогда функция будет пересчитываться при всех изменениях, а не только в целевых ячейках.
Работать надо не 12 часов, а головой.
 
Цитата
Leanna написал: надо тогда прописать Application.Volatile
на деле можно сделать и иначе. Т.к. это формула/функция суммирования - то можно просто добавить в конце функции:
+(ТДАТА()*0)

Т.к. ТДАТА является летучей функцией - она заставит пересчитываться и функцию пользователя. Но на сам результат не повлияет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:можно просто добавить в конце функции:+(ТДАТА()*0)
Здорово)

А Volatile получается делает UDF "летучей"? Это одно и тоже что Volatile присоединить, что приплюсовать +(ТДАТА()*0) ?
Работать надо не 12 часов, а головой.
 
Volitile по идее делает летучей, но известны случаи, когда не срабатывало как хотелось.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, Спасибо за разъяснения)
Работать надо не 12 часов, а головой.
 
Leanna, Сори, все работает. Спасибо ! Уже не первый раз обращаюсь  к УМНЫМ людям на этом форуме и всегда получал весомую помощь.
Страницы: 1
Читают тему (гостей: 1)