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

Вход

Регистрация

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

 

= Мир MS Excel/PQ объединить таблицы (файлы) с динамическими столбцами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » PQ объединить таблицы (файлы) с динамическими столбцами (Формулы/Formulas)
PQ объединить таблицы (файлы) с динамическими столбцами
Anis625 Дата: Понедельник, 05.07.2021, 16:13 | Сообщение № 1
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
Добрый день, всем участникам форума!

Решил задачку, но точно криво. В примере таблицы на листе, а так они в отельных файлах и не умные таблицы.
Нашел пока решение объединить не структурированные таблицы через оформление каждой таблицы в виде запроса.
Есть ли более изящный способ решить такую задачку без запросов? т.к. файлы будут ежемесячно пополняться и на каждый файл делать запрос думаю не самое правильное решение.
Буду признателен за любой совет.
К сообщению приложен файл: PQ_plavayushi_s.xlsx (25.1 Kb)


Сообщение отредактировал Anis625 - Понедельник, 05.07.2021, 16:23
 
Ответить
СообщениеДобрый день, всем участникам форума!

Решил задачку, но точно криво. В примере таблицы на листе, а так они в отельных файлах и не умные таблицы.
Нашел пока решение объединить не структурированные таблицы через оформление каждой таблицы в виде запроса.
Есть ли более изящный способ решить такую задачку без запросов? т.к. файлы будут ежемесячно пополняться и на каждый файл делать запрос думаю не самое правильное решение.
Буду признателен за любой совет.

Автор - Anis625
Дата добавления - 05.07.2021 в 16:13
прохожий2019 Дата: Понедельник, 05.07.2021, 19:21 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
файлы будут ежемесячно пополняться
файлы расположены случайным образом или имеется конкретная папка? к чему можно привязаться? - наименования листов в файлах одинаковы (или по крайней мере их количество фиксированное)?

для папки что-то такое будет: [vba]
Код
let
    f=(x)=>[a = Excel.Workbook(x){0}[Data],
            b = Table.PromoteHeaders(a)][b],
    
    from = Folder.Files("C:\Users\usr\Desktop\test")[[Name],[Content]],
    trnsf = Table.TransformColumns(from,{"Content",f}),
    lst = List.Distinct(List.Combine(List.Transform(trnsf[Content],Table.ColumnNames))),
    to = Table.ExpandTableColumn(trnsf,"Content",lst)
in
    to
[/vba]


Сообщение отредактировал прохожий2019 - Понедельник, 05.07.2021, 19:35
 
Ответить
Сообщение
файлы будут ежемесячно пополняться
файлы расположены случайным образом или имеется конкретная папка? к чему можно привязаться? - наименования листов в файлах одинаковы (или по крайней мере их количество фиксированное)?

для папки что-то такое будет: [vba]
Код
let
    f=(x)=>[a = Excel.Workbook(x){0}[Data],
            b = Table.PromoteHeaders(a)][b],
    
    from = Folder.Files("C:\Users\usr\Desktop\test")[[Name],[Content]],
    trnsf = Table.TransformColumns(from,{"Content",f}),
    lst = List.Distinct(List.Combine(List.Transform(trnsf[Content],Table.ColumnNames))),
    to = Table.ExpandTableColumn(trnsf,"Content",lst)
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 05.07.2021 в 19:21
Anis625 Дата: Понедельник, 05.07.2021, 20:24 | Сообщение № 3
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
прохожий2019,
Файлы - выгрузки из 1с. Файлы располагаются в одной папке. Название одного листа тоже одинаковое во всех файлах.
 
Ответить
Сообщениепрохожий2019,
Файлы - выгрузки из 1с. Файлы располагаются в одной папке. Название одного листа тоже одинаковое во всех файлах.

Автор - Anis625
Дата добавления - 05.07.2021 в 20:24
прохожий2019 Дата: Понедельник, 05.07.2021, 20:47 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
тогда код выше должен решить проблему, с одним большим НО - выгрузка д.б. в xlsx, со старыми xls у PQ частенько возникают сложности
 
Ответить
Сообщениетогда код выше должен решить проблему, с одним большим НО - выгрузка д.б. в xlsx, со старыми xls у PQ частенько возникают сложности

Автор - прохожий2019
Дата добавления - 05.07.2021 в 20:47
Anis625 Дата: Вторник, 06.07.2021, 14:41 | Сообщение № 5
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
прохожий2019,
Прилетели файлы с 1С =( выше таблицы есть строки. Код работает отлично (Космос пока для меня сразу писать на языке М). Буду признателен если получится помочь с файлом: удалить верхние 6 строк чтобы код отработал как надо и если получится добавить период слева от каждой таблицы.
Файлы xls отрабатывает PQ хорошо
К сообщению приложен файл: _.68.xls (32.0 Kb) · 5128202.xls (31.5 Kb)


Сообщение отредактировал Anis625 - Вторник, 06.07.2021, 14:43
 
Ответить
Сообщениепрохожий2019,
Прилетели файлы с 1С =( выше таблицы есть строки. Код работает отлично (Космос пока для меня сразу писать на языке М). Буду признателен если получится помочь с файлом: удалить верхние 6 строк чтобы код отработал как надо и если получится добавить период слева от каждой таблицы.
Файлы xls отрабатывает PQ хорошо

Автор - Anis625
Дата добавления - 06.07.2021 в 14:41
прохожий2019 Дата: Вторник, 06.07.2021, 19:27 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
Файлы xls отрабатывает PQ хорошо
он их отрабатывает плохо - медленно и нестабильно...
а так пожалуйста (удаляются 6 строк, с третьей забирается период, в списке столбцов удаляются пустые - привет 1С-никам, гореть им...):[vba]
Код
let
    f=(x)=>[a = Excel.Workbook(x){0}[Data],
            b = Table.Skip(a,6),
            c = Table.PromoteHeaders(b),
            tmp = Table.SelectRows(c, each [Субконто]<>null),
            Период = a{2}[Column1]][[tmp],[Период]],
    g=(x)=>List.Select(List.Distinct(List.Combine(List.Transform(x,Table.ColumnNames))),(y)=>not Text.Contains(y,"Column")),
        
    from = Table.Buffer(Folder.Files("C:\Users\usr\Desktop\test")[[Name],[Content]]),
    trnsf = Table.TransformColumns(from,{"Content",f}),
    exp = Table.ExpandRecordColumn(trnsf, "Content", {"Период", "tmp"}),
    lst = g(exp[tmp]),
    to = Table.ExpandTableColumn(exp,"tmp",lst)
in
    to
[/vba]


Сообщение отредактировал прохожий2019 - Вторник, 06.07.2021, 19:28
 
Ответить
Сообщение
Файлы xls отрабатывает PQ хорошо
он их отрабатывает плохо - медленно и нестабильно...
а так пожалуйста (удаляются 6 строк, с третьей забирается период, в списке столбцов удаляются пустые - привет 1С-никам, гореть им...):[vba]
Код
let
    f=(x)=>[a = Excel.Workbook(x){0}[Data],
            b = Table.Skip(a,6),
            c = Table.PromoteHeaders(b),
            tmp = Table.SelectRows(c, each [Субконто]<>null),
            Период = a{2}[Column1]][[tmp],[Период]],
    g=(x)=>List.Select(List.Distinct(List.Combine(List.Transform(x,Table.ColumnNames))),(y)=>not Text.Contains(y,"Column")),
        
    from = Table.Buffer(Folder.Files("C:\Users\usr\Desktop\test")[[Name],[Content]]),
    trnsf = Table.TransformColumns(from,{"Content",f}),
    exp = Table.ExpandRecordColumn(trnsf, "Content", {"Период", "tmp"}),
    lst = g(exp[tmp]),
    to = Table.ExpandTableColumn(exp,"tmp",lst)
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 06.07.2021 в 19:27
Anis625 Дата: Среда, 07.07.2021, 18:35 | Сообщение № 7
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
прохожий2019,
С поправкой на мои 1С файлы код отлично работает. Спасибо Вам огромное за новые знания в PQ и решенную задачку.
 
Ответить
Сообщениепрохожий2019,
С поправкой на мои 1С файлы код отлично работает. Спасибо Вам огромное за новые знания в PQ и решенную задачку.

Автор - Anis625
Дата добавления - 07.07.2021 в 18:35
Мир MS Excel » Вопросы и решения » Вопросы по Excel » PQ объединить таблицы (файлы) с динамическими столбцами (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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