Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Создание сводной таблицы
 
Добрый день
поиск не помог, точнее, благодаря видеоурокам узнал кое-что новое про эксель, что потом пригодится, но ответа на вопрос не нашел
может, его, конечно, и нет...

задача у меня такая
есть 90 листов в файле
все листы однотипные, там введены одинаковые строки и разные числовые данные в столбцах
есть столбец с суммой данных

есть задача в 91-м листе создать сводную таблицу, куда в каждый столбец выводились бы данные из столбца суммы каждого из 90 предыдущих
банально это можно сделать, копируя данные, но для 90 столбцов из 90 листов это довольно утомительно
а их потом появится еще несколько листов

есть какой-то автоматизированный способ это сделать?

Илья
 
ilya ku, есть. Написать макрос. Если не можете самостоятельно это сделать, то покажите пример, допустим, с тремя листами с данными в реальной структуре + лист свод.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Могу ли, не знаю
не пробовал ни разу
)))

вот то, что я сделал руками
но для 90+ листов это долго получится
 
вариант
=ДВССЫЛ("'"&B$1&"'!"&"F"&СТРОКА())
в первой строке названия листов, итоговые столбцы имеют букву F
структура листов должна быть идентичной
F1 творит чудеса
 
Илья Кудряшов, листы не совсем однотипные - разные столбцы. В листе "All" Вы не показали что должно в итоге получиться.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Максим Зеленский пишет:
в первой строке названия листов
названия листов как туда попали? руками?
можно сделать, чтобы значение ячейки B1 листа "91"совпадало со значением ячейки F1 исходного листа, ну или с названием листа (что в моем случае одно и то же)?

при расширении диапазона (увеличении количества листов) перестает работать
Изменено: Илья Кудряшов - 14 Ноя 2014 15:27:39
 
Цитата
JayBhagavan пишет:
В листе "All" Вы не показали
В листе "All" просто указаны названия кампаний - оттуда они скопированы на все остальные листы, чтобы можно было по всему файлу быстро менять их названия при необходимости. Суммарные данные должны собираться в листе "Vol.bat"
 
Илья Кудряшов, указывайте все нюансы сразу, я не классический телепат. Могу только нервы телепать. ;)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan пишет:
листы не совсем однотипные - разные столбцы
Я хотел бы, чтобы в листе "Vol.bat" собирались в столбцах данные из столбцов "С" листов "Ain", "Aisne", "Allier", "Alpes (Basses)", "Alpes (Hautes)", "Aples maritimes" и следующих, которые я потом создам в этой книге
Причем, не только цифры ячеек с  С2 по С70, но и текстовое поле в ячейке C1
Изменено: Илья Кудряшов - 14 Ноя 2014 15:50:45 (исправление фрагмента сообщения с табличного вида на тектовый для удобного чтения)
 
Илья Кудряшов, ну так вы мой пример не посмотрели?
F1 творит чудеса
 
Максим Зеленский, посмотрел, но не понял, как он работает
при добавлении нового листа он перестал работать  
 
Илья Кудряшов, макрос на кнопке. Копирует значения столбца цэ со всех листов после сборного.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо
Однако "Приложению Excel не удалось открыть файл 1791-1815.xlsb, поскольку невозможно прочитать часть его содержимого"
предлагает "открыть и восстановить" - нажимаю
в результате "не удается найти макрос"
 
Илья Кудряшов, файл открыл, проблем нет. Макрос в модуль сборного листа. Кнопку самостоятельно сделать легко Вам будет.
Код
Sub jjj()
Application.ScreenUpdating = False
If UsedRange.Columns.Count > 2 Then
    With UsedRange.EntireColumn.Resize(, UsedRange.Columns.Count - 2).Offset(, 2)
        .Delete Shift:=xlToLeft
    End With
End If
i = 0
For Each sh In Worksheets
    If sh.Index > ActiveSheet.Index Then
        ActiveSheet.Range(Intersect(sh.[c:c], sh.UsedRange).Address).Offset(, i).Value = Intersect(sh.[c:c], sh.UsedRange).Value
        i = i + 1
    End If
Next sh
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
может, что-то теряется при передаче через сервер?
 8-0  

"Win7SP1, MSO2010" - у Вас windows? может, в этом дело?
 
Илья Кудряшов, да, простите, не заметил что тема для мака.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
может, попробую сделать сам, хотя пока не очень понимаю, как  
 
Илья Кудряшов, макрос Вам показал. Адаптируйте.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Говорит Visual Basic не установлен у вас
переустановил весь офис "по умолчанию" - не было даже меню с выбором установить Visual Basic или нет
может, это где-то в другом месте в маке настраивается?
 
Цитата
Илья Кудряшов пишет:
но не понял, как он работает
Работает так: все листы данных имеют одинаковую структуру, то есть строки расположены одинаково, одинаково пронумерованы. У всех листов данных итоговый столбец у вас находится в одном и том же месте.
На итоговом листе вы располагаете строки так же. Заголовки столбцов - названия листов, с которых вы хотите вытащить итоговый столбец. Точные названия ярлыков листа.
в моей формуле меняете B$1на адрес первой ячейки с заголовком (первого листа), букву F меняете на ту, которая на листах данных является обозначением столбца итога.
Растягиваете. Если нужно добавить лист и его итоги на сводный лист, просто добавляете еще один столбец, протягиваете формулу в него и Всё.

Форла делает практически то же, что и вы руками, только она сама берет имя листа из строки заголовков
F1 творит чудеса
 
Илья Кудряшов, перенесла макрос от JayBhagavanв стандартный модуль, немного подкорректировала, чтобы обращался к листу Vol.bat
На моём МАКе работает  
 
Pelena, спасибо, могу ли я это перенести в другой файл?
в тот, где у меня уже созданы все 90+ листов?
 
Максим Зеленский, сейчас попробую этот способ
 
Цитата
Илья Кудряшов пишет:
могу ли я это перенести в другой файл?
А попробовать?)
Создайте стандартный модуль и скопируйте текст макроса
 
Йуху!!!!! в своем файле запустил макрос из вашего файла
новый записать не получилось - мне excel настойчиво говорит, что у меня не установлен Visual Basic
пользователи win смогут видеть данные таблицы?  
Изменено: Илья Кудряшов - 14 Ноя 2014 23:13:35
 
По крайней мере, приложенный файл-пример работает под Windows
 
макрос один раз перенес все данные один раз, при редактировании исходных страниц данные на сводной странице не обновляются
надо каждый раз заново запускать макрос, видимо
 
Можно, наверное, поставить выполнение макроса не на кнопку, а на событие активации листа Vol.bat
 
Цитата
Максим Зеленский пишет:
в моей формуле меняете B$1на адрес первой ячейки с заголовком (первого листа)
Вот это пока не могу понять
первая ячейка на всех листах - это R1C1
подставляю вместо В$1 значение разных ячеек - пока без результата

в вашем примере это R1C
я вставил то же значение в формулу, но ничего не работает
Изменено: Илья Кудряшов - 15 Ноя 2014 00:13:59
 
Pelena, Максим Зеленский, cпасибо вам большое!!!
в результате макросом я создал все заголовки, а потом методом Максима ставил формулы в числовые ячейки, которые работают без стороннего макроса
День прошел не зря
)))))
Страницы: 1 2 След.
Читают тему (гостей: 1)
Наверх