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

Вход

Регистрация

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

 

= Мир MS Excel/Объединение данных с разных лстов в один столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Объединение данных с разных лстов в один столбец (Формулы/Formulas)
Объединение данных с разных лстов в один столбец
Macist Дата: Среда, 06.05.2020, 06:17 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день. Создалась такая проблема. Есть порядка 30 страниц идентичных. Но на каждой странице разное количество строк и могут повторяться данные. Нужно все строки со всех листов вывести на одном листе по порядку начиная с первого листа. Файл накопительный, данные по строкам будут постоянно меняться на любом листе.
Для примера файл прикреплен как должно выглядеть.
К сообщению приложен файл: 2746704.xlsx (12.1 Kb)
 
Ответить
СообщениеДобрый день. Создалась такая проблема. Есть порядка 30 страниц идентичных. Но на каждой странице разное количество строк и могут повторяться данные. Нужно все строки со всех листов вывести на одном листе по порядку начиная с первого листа. Файл накопительный, данные по строкам будут постоянно меняться на любом листе.
Для примера файл прикреплен как должно выглядеть.

Автор - Macist
Дата добавления - 06.05.2020 в 06:17
Nic70y Дата: Среда, 06.05.2020, 08:43 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
как-то так, наверное
[vba]
Код
Sub u_741()
    Application.ScreenUpdating = False
    u_1 = Sheets("свод").Cells(Rows.Count, 1).End(xlUp).Row
    If u_1 > 1 Then Sheets("свод").Range("a2:e" & u_1).Clear
    For Elem = 2 To Sheets.Count
        u_2 = Sheets(Elem).Name
        u_3 = Sheets(u_2).Cells(Rows.Count, 1).End(xlUp).Row
        u_4 = Sheets("свод").Cells(Rows.Count, 1).End(xlUp).Row + 1
        If u_3 > 1 Then
            Sheets(u_2).Range("a2:e" & u_3).Copy Sheets("свод").Range("a" & u_4)
        End If
    Next Elem
    Application.ScreenUpdating = True
End Sub
[/vba]
[p.s.]клятые американцы - им не приходится менять раскладку клавы[/p.s.]
К сообщению приложен файл: 2746704.xlsm (23.6 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 06.05.2020, 08:48
 
Ответить
Сообщениекак-то так, наверное
[vba]
Код
Sub u_741()
    Application.ScreenUpdating = False
    u_1 = Sheets("свод").Cells(Rows.Count, 1).End(xlUp).Row
    If u_1 > 1 Then Sheets("свод").Range("a2:e" & u_1).Clear
    For Elem = 2 To Sheets.Count
        u_2 = Sheets(Elem).Name
        u_3 = Sheets(u_2).Cells(Rows.Count, 1).End(xlUp).Row
        u_4 = Sheets("свод").Cells(Rows.Count, 1).End(xlUp).Row + 1
        If u_3 > 1 Then
            Sheets(u_2).Range("a2:e" & u_3).Copy Sheets("свод").Range("a" & u_4)
        End If
    Next Elem
    Application.ScreenUpdating = True
End Sub
[/vba]
[p.s.]клятые американцы - им не приходится менять раскладку клавы[/p.s.]

Автор - Nic70y
Дата добавления - 06.05.2020 в 08:43
Macist Дата: Среда, 06.05.2020, 09:47 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо огромное, дай Вам Бог здоровья.
 
Ответить
СообщениеСпасибо огромное, дай Вам Бог здоровья.

Автор - Macist
Дата добавления - 06.05.2020 в 09:47
PooHkrd Дата: Среда, 06.05.2020, 10:47 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 7 ±
Замечаний: 0% ±

Office 365
До кучи вариант при помощи запроса Power Query:
[vba]
Код
let
    Source = Excel.Workbook(File.Contents( Excel.CurrentWorkbook(){[Name="Path"]}[Content]{0}[Column1] ), null, true),
    FilteredRows = Table.SelectRows(Source, each ([Name] <> "свод") and ([Kind] = "Sheet")),
    Data = Table.Combine( List.Transform( FilteredRows[Data], Table.PromoteHeaders ) )
in
    Data
[/vba]
Есть ограничения, т.к. запрос читает данные с диска, то перед обновлением таблицы обязательно нужно сохранить файл, чтобы записались изменения на листах с числами. Чтобы обновить данные нужно на зеленой табличке листа свод кликнуть правой кнопкой и в выпавшем меню выбрать пункт "обновить".
К сообщению приложен файл: _2746704.xlsx (20.9 Kb)


Вот горшок пустой, он предмет простой...
 
Ответить
СообщениеДо кучи вариант при помощи запроса Power Query:
[vba]
Код
let
    Source = Excel.Workbook(File.Contents( Excel.CurrentWorkbook(){[Name="Path"]}[Content]{0}[Column1] ), null, true),
    FilteredRows = Table.SelectRows(Source, each ([Name] <> "свод") and ([Kind] = "Sheet")),
    Data = Table.Combine( List.Transform( FilteredRows[Data], Table.PromoteHeaders ) )
in
    Data
[/vba]
Есть ограничения, т.к. запрос читает данные с диска, то перед обновлением таблицы обязательно нужно сохранить файл, чтобы записались изменения на листах с числами. Чтобы обновить данные нужно на зеленой табличке листа свод кликнуть правой кнопкой и в выпавшем меню выбрать пункт "обновить".

Автор - PooHkrd
Дата добавления - 06.05.2020 в 10:47
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Объединение данных с разных лстов в один столбец (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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