Страницы: 1
RSS
Объединение таблиц
 
Привет, Всем.
в книге есть много листов с таблицами разных размеров.
Как можно сделать так, чтобы на один лист все таблицы обеъдинялись, а в первом столбце было бы название листа?

ВОзможно такое в Excel?
 
где пример?  ;)
 
Цитата
chudoshopRU пишет: ... ВОзможно такое в Excel?
Конечно... Как пробовали сделать? Что не получается? Где искали, что нашли? Как требуется сделать? Макросы разрешены? Или формулами?
Как вариант, из раздела "Ссылки" -
"На сайте Ron de Bruin, специалиста из Нидерландов, можно найти несколько полезных надстроек для отправки книг и листов Excel по эл.почте и удобную надстройку для фильтрации с богатыми возможностями. Шикарная подборка готовых макросов сборки данных из разных источников в Excel."
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Просто вариант решения формулами, делал когда то. На больших данных будет тормозить из-за ДВССЫЛ(), но пример рабочий смотри здесь файл post_11853.xls
 
Как собрать данные с нескольких листов или книг?
Сбор данных с нескольких листов/книг
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
В файле сделал 2 листа.
Что получилось
и Что должно получиться

Как сделать, чтобы первый столбец был с названием листа?
Неоьходимо, чтобы удобно было фильтром пользоваться и строить сводные таблицы
 
Получается должно быть копирование названия
Как пожно оптимизировать этот макрос, чтобы не привязываться к названию листа в макросе?

Код
Sub Макрос1()
 Sheets("Лист2" ;) .Select
 Sheets("Лист2" ;) .Name = "Лист2"
 Sheets("Лист1" ;) .Select
 Range("A1" ;) .Select
 ActiveSheet.Paste
 Range("A1" ;) .Select
 Selection.Copy
 Range("A2:A17" ;) .Select
 ActiveSheet.Paste
 Sheets("Лист3" ;) .Select
 Application.CutCopyMode = False
 Sheets("Лист3" ;) .Name = "Лист3"
 Sheets("Лист1" ;) .Select
 Range("A18" ;) .Select
 ActiveSheet.Paste
 Range("A18" ;) .Select
 Selection.Copy
 Range("A19" ;) .Select
 Application.CutCopyMode = False
 Range("A18" ;) .Select
 Selection.Copy
 Range("A19:A34" ;) .Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
End Sub
 
пример.
Изменено: kalbasiatka - 15.06.2013 21:59:10
 
Супер. То, что нужно, спасибо kalbasiatka.
Сейчас немного доработаю.

Спасибо!!!
 
Продолжаю оптимизировать работу.
Подскажит пжл, а как можно сделать так, чтобы сама таблица оставалась, а данные по магазинам формировались бы в столбцах.
Пример привожу.

Я пробовал через "консолидацию" и сводную таблицу, но ничего не получилось
Подскажите, пжл, как можно упростить расчет?
Изменено: Jenya1980 - 25.06.2013 18:47:29
 
Цитата
Jenya1980 пишет: Продолжаю...  Подскажит пжл... пробовал через "консолидацию" и сводную таблицу, но ничего не получилось...
Свои попытки покАжете?..
И это посмотрИте:
- http://www.planetaexcel.ru/blog/new-video-consolidation-assembly-of-data-from-multiple-tables/
- http://www.planetaexcel.ru/blog/updated-in-articles-designer-tables/ ... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Это я видел.
Проблема в том, что я не знаю сколько будет листов с магазинами.
В каждом файле разное количество
 
Цитата
Jenya1980 пишет: ... Проблема в том, что я не знаю...
Познаем?!
- http://www.planetaexcel.ru/techniques/8/133/
- http://www.planetaexcel.ru/plex/plex-features.php#collect
Изменено: Z - 25.06.2013 19:12:17
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Это конечно классно.
Но мне получается нужно сделать такой макрос независимо от количества листов.
Я вот все не могу разобраться как не ограничиваться определенными названиями листов

Код
Sheets("Магазин_1") .Select
 Range("A3 :D 38") .Select
 Selection.Copy
 Sheets("Свод") .Select
 Range("A4") .Select
 ActiveSheet.Paste
 Sheets("Магазин_1") .Select
 Application.CutCopyMode = False
 Sheets("Магазин_1") .Name = "Магазин_1"
 Sheets("Свод") .Select
 Range("C3") .Select
 ActiveSheet.Paste
 Sheets("Магазин_2") .Select
 Range("C3:C41") .Select
 Selection.Copy
 Sheets("Свод") .Select
 Range("D4") .Select
 ActiveSheet.Paste
 Sheets("Магазин_2") .Select
 Application.CutCopyMode = False
 Sheets("Магазин_2") .Name = "Магазин_2"
 Sheets("Свод") .Select
 ActiveCell.FormulaR1C1 = "1000"
 Range("D3") .Select
 ActiveSheet.Paste
 Range("F5") .Select
 
Перебирать циклом все листы, исключая сводный, и копировать.
 
Правильно я начинаю делать?

For Each sh In Workbook.Sheets
If sh.Name <> "Свод" Then

(а вот что здесь написать не знаю)

End
Страницы: 1
Наверх