Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Аккумуляция данных из разных книг - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Аккумуляция данных из разных книг (Сводные таблицы/Pivot Table)
Аккумуляция данных из разных книг
Slaventiy Дата: Понедельник, 06.10.2014, 14:04 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Доброго времени суток.

Вопрос следующий: имеется некоторое количество книг excel со стандартным образцом таблиц с различными данными. Необходимо перенести все данные в одну книгу, в одну таблицу на один лист. Как сие действие совершить, ума не приложу %) Может с помощью макросов сделать? Или кто предложит более простой способ. В примере прикрепил пару книг. Т.е. просто перенос сведений из книги в книгу, но только с условием, что имеются сведения в первом столбце.

PS Может ранее поднималась подобная тема, увы, не нашел подходящего.
PSS Поскольку нельзя прикрепить больше двух файлов, то сделал пример нескольких книг на двух листах одной.


Есть вопрос? Спроси!
 
Ответить
СообщениеДоброго времени суток.

Вопрос следующий: имеется некоторое количество книг excel со стандартным образцом таблиц с различными данными. Необходимо перенести все данные в одну книгу, в одну таблицу на один лист. Как сие действие совершить, ума не приложу %) Может с помощью макросов сделать? Или кто предложит более простой способ. В примере прикрепил пару книг. Т.е. просто перенос сведений из книги в книгу, но только с условием, что имеются сведения в первом столбце.

PS Может ранее поднималась подобная тема, увы, не нашел подходящего.
PSS Поскольку нельзя прикрепить больше двух файлов, то сделал пример нескольких книг на двух листах одной.

Автор - Slaventiy
Дата добавления - 06.10.2014 в 14:04
китин Дата: Понедельник, 06.10.2014, 14:25 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
нет примера


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениенет примера

Автор - китин
Дата добавления - 06.10.2014 в 14:25
Slaventiy Дата: Понедельник, 06.10.2014, 14:41 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Сори, видимо не прикрепились файлы, а я не проверил
К сообщению приложен файл: 0290927.xlsx (9.3 Kb) · 8394872.xlsx (9.7 Kb)


Есть вопрос? Спроси!
 
Ответить
СообщениеСори, видимо не прикрепились файлы, а я не проверил

Автор - Slaventiy
Дата добавления - 06.10.2014 в 14:41
alx74 Дата: Понедельник, 06.10.2014, 15:19 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 209
Репутация: 32 ±
Замечаний: 0% ±

Может сводная из нескольких диапазонов консолидации?


Срочность обратно пропорциональна степени важности.
Яндекс-money:41001687631447
 
Ответить
СообщениеМожет сводная из нескольких диапазонов консолидации?

Автор - alx74
Дата добавления - 06.10.2014 в 15:19
Slaventiy Дата: Вторник, 07.10.2014, 08:42 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Может сводная из нескольких диапазонов консолидации?


Увы, там необходимо указать функцию, а мне надо, чтобы просто был перенос данных из нескольких книг в одну, причем не просто в одну книгу, а на один лист в одну таблицу. Смысл примерно таков: создается основная книга с таблицей "Свод". В эту таблицу добавляются данные из первой книги, которая находится в одной папке с главной. В конце основной таблицы должны добавляться сведения из второй книги и т.д. Т.е. в итоге получается длинная "портянка" данных из множества книг на одном листе.


Есть вопрос? Спроси!
 
Ответить
Сообщение
Может сводная из нескольких диапазонов консолидации?


Увы, там необходимо указать функцию, а мне надо, чтобы просто был перенос данных из нескольких книг в одну, причем не просто в одну книгу, а на один лист в одну таблицу. Смысл примерно таков: создается основная книга с таблицей "Свод". В эту таблицу добавляются данные из первой книги, которая находится в одной папке с главной. В конце основной таблицы должны добавляться сведения из второй книги и т.д. Т.е. в итоге получается длинная "портянка" данных из множества книг на одном листе.

Автор - Slaventiy
Дата добавления - 07.10.2014 в 08:42
ArkaIIIa Дата: Вторник, 07.10.2014, 08:52 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Slaventiy
Привет!
Уважаемый AndreTM в этой теме помог написать макрос для копирования таблиц из книги с заданным именем. Возможно такой подход поможет и Вам.
Макрос вставляется в модуль книги, и выглядит так:
[vba]
Код
Sub GetData()
        
      cFileName = UCase([Имя_ячейки в которой указано название файла])
      cSheetName = "Название_листа_с_которого_подгружается_инфа"
        
      cPath = "Путь_где_лежит_файл_откуда_тянется_инфа"
      If Dir(cPath & "\" & cFileName & ".xls") = "" Then
          MsgBox "Файл не найден!" & cFileName & ".xls"
          Exit Sub
      End If
        
      nRow = Cells(Rows.Count, 4).End(xlUp).Row
      While nRow > 1
          If UCase(Cells(nRow, 4)) = cFileName Then
              Rows(nRow).Delete
          End If
          nRow = nRow - 1
      Wend
      ActiveSheet.UsedRange
        
      Dim oSour As Range
      Set oDest = Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 1)
      Set oWB = Workbooks.Open(cPath & "/" & cFileName & ".xls", , True)
      With oWB.Sheets(cSheetName)
          Set oSour = Intersect(.Columns("A:R"), .UsedRange)
      End With
      Set oSour = oSour.Offset(1).Resize(oSour.Rows.Count - 1, oSour.Columns.Count)
      oSour.Copy oDest
      oDest.Offset(, 18).Resize(oSour.Rows.Count) = cFileName
      oWB.Close False
        
End Sub
[/vba]
Set oSour = Intersect(.Columns("A:R"), .UsedRange) - A:R - диапазон столбцов, которые нужно копировать.
Логика простая. Последовательно указываете названия файлов, из которых нужно собрать Вашу "портянку", и макросом по кнопке это дело собирается.


Сообщение отредактировал ArkaIIIa - Вторник, 07.10.2014, 09:17
 
Ответить
СообщениеSlaventiy
Привет!
Уважаемый AndreTM в этой теме помог написать макрос для копирования таблиц из книги с заданным именем. Возможно такой подход поможет и Вам.
Макрос вставляется в модуль книги, и выглядит так:
[vba]
Код
Sub GetData()
        
      cFileName = UCase([Имя_ячейки в которой указано название файла])
      cSheetName = "Название_листа_с_которого_подгружается_инфа"
        
      cPath = "Путь_где_лежит_файл_откуда_тянется_инфа"
      If Dir(cPath & "\" & cFileName & ".xls") = "" Then
          MsgBox "Файл не найден!" & cFileName & ".xls"
          Exit Sub
      End If
        
      nRow = Cells(Rows.Count, 4).End(xlUp).Row
      While nRow > 1
          If UCase(Cells(nRow, 4)) = cFileName Then
              Rows(nRow).Delete
          End If
          nRow = nRow - 1
      Wend
      ActiveSheet.UsedRange
        
      Dim oSour As Range
      Set oDest = Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 1)
      Set oWB = Workbooks.Open(cPath & "/" & cFileName & ".xls", , True)
      With oWB.Sheets(cSheetName)
          Set oSour = Intersect(.Columns("A:R"), .UsedRange)
      End With
      Set oSour = oSour.Offset(1).Resize(oSour.Rows.Count - 1, oSour.Columns.Count)
      oSour.Copy oDest
      oDest.Offset(, 18).Resize(oSour.Rows.Count) = cFileName
      oWB.Close False
        
End Sub
[/vba]
Set oSour = Intersect(.Columns("A:R"), .UsedRange) - A:R - диапазон столбцов, которые нужно копировать.
Логика простая. Последовательно указываете названия файлов, из которых нужно собрать Вашу "портянку", и макросом по кнопке это дело собирается.

Автор - ArkaIIIa
Дата добавления - 07.10.2014 в 08:52
Slaventiy Дата: Вторник, 07.10.2014, 08:59 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Макрос хорош, но есть один момент - таблице не статична, т.е. она постоянно дополняется. Таким образом диапазон будет постепенно расширяться, не геометрически, а по чуть-чуть. Указывать же с запасом - не есть гут... Т.е. если вначале в каждой книге второго порядка будет по десять строк (к примеру), то постепенно их количество будет увеличиваться, где-то +1 строка, где-то +10.


Есть вопрос? Спроси!
 
Ответить
СообщениеМакрос хорош, но есть один момент - таблице не статична, т.е. она постоянно дополняется. Таким образом диапазон будет постепенно расширяться, не геометрически, а по чуть-чуть. Указывать же с запасом - не есть гут... Т.е. если вначале в каждой книге второго порядка будет по десять строк (к примеру), то постепенно их количество будет увеличиваться, где-то +1 строка, где-то +10.

Автор - Slaventiy
Дата добавления - 07.10.2014 в 08:59
ArkaIIIa Дата: Вторник, 07.10.2014, 09:04 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Slaventiy
Строки копируются все, от первой до последней заполненной. А вот если таблицы будут меняться по столбцам - то нужно будет вносить изменения в макрос.
 
Ответить
СообщениеSlaventiy
Строки копируются все, от первой до последней заполненной. А вот если таблицы будут меняться по столбцам - то нужно будет вносить изменения в макрос.

Автор - ArkaIIIa
Дата добавления - 07.10.2014 в 09:04
Slaventiy Дата: Вторник, 07.10.2014, 09:07 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

Строки копируются все


Попробую, если получится - от меня БОЛЬШОЕ СПАСИБО hands


Есть вопрос? Спроси!
 
Ответить
Сообщение
Строки копируются все


Попробую, если получится - от меня БОЛЬШОЕ СПАСИБО hands

Автор - Slaventiy
Дата добавления - 07.10.2014 в 09:07
ArkaIIIa Дата: Вторник, 07.10.2014, 09:15 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Slaventiy
Кстати, обратите внимание на строчку в конце макроса:
[vba]
Код
oDest.Offset(, 18).Resize(oSour.Rows.Count) = cFileName
[/vba]
Она вставляет в 18 столбец название файла, из которого загружена та или иная инфа. Если у Вас диапазон столбцов больше, чем 18, ну или просто Вам название файла-исходника без надобности - просто удалите эту строку из кода.
 
Ответить
СообщениеSlaventiy
Кстати, обратите внимание на строчку в конце макроса:
[vba]
Код
oDest.Offset(, 18).Resize(oSour.Rows.Count) = cFileName
[/vba]
Она вставляет в 18 столбец название файла, из которого загружена та или иная инфа. Если у Вас диапазон столбцов больше, чем 18, ну или просто Вам название файла-исходника без надобности - просто удалите эту строку из кода.

Автор - ArkaIIIa
Дата добавления - 07.10.2014 в 09:15
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Аккумуляция данных из разных книг (Сводные таблицы/Pivot Table)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!