Страницы: 1
RSS
Сбор данных из однотипных таблиц в одну
 
Добрый день.

Есть необходимость в формировании общей таблицы из аналогичных таблиц в файлах.
Процесс  следующий - работникам отправляется шаблон таблицы, они в соответствии  со своим городом присутствия заполняют свою строку, затем файл  возвращается мне с заполненной одной или несколькими строками. Из этих  файлов необходимо сформировать единую таблицу.

На просторах сети  нашел некоторые решения, в итоге получилось, что данные из каждого файла  вставляются в виде диапазонов друг под другом, мне же необходимо чтобы  из файла копировались только те строки, когда в диапазоне AA:AG  содержатся данные, т.е. если там пусто, то не копируем, если есть хоть  одно значение, значит такую строку копируем. При этом строка должна  записываться в сводной таблице по тому же адресу, где был взята.
Надеюсь задачу описал понятно.
Расположение ячеек именно такое как в файлах исходниках.
Двух  одинаковых файлов быть не должно, но человеческий фактор никто не  отменяет (т.е. могут быть заполнены данные за один и тот же город в двух  разных файлах). В таком случае желательно отобразить ошибку или как то  отметить.

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

Хотелось бы понять как реализовать данную задачу, возможно кто то направит на похожую тему, я в течении недели не нашел.
Предполагаю  что необходимо данные записывать в массив,где будет значение города и  значений ячеек в той же строке, а потом массив переносить в сводный  файл, но реализовать пока не удалось из за нехватки знаний.
Изменено: Dodgem - 05.06.2019 21:18:22
 
Цитата
Dodgem написал:
При этом строка должна  записываться в сводной таблице по тому же адресу, где был взята.
Вот тут не совсем понятно, что значит в сводной таблице? это уже не копирование а сводная по нескольким файлам, загляните в приемы там вроде есть такое.
"Все гениальное просто, а все простое гениально!!!"
 
в файле Москва очистил ячейку A7
в файл Сборщик файлов.xls на Лист1 добавил таблицу (нужна для запроса, из нее берется путь к папке)
запрос Power Query
Код
let
    Files  = Folder.Files(Text.BeforeDelimiter(Excel.CurrentWorkbook(){[Name="FilePath"]}[Content][Value]{0}, "\", {0, 1})&"\Города"),
    Filter = Table.FromList(List.Transform(Table.SelectRows(Files, each not [Attributes][NotContentIndexed])[Content],Excel.Workbook),Splitter.SplitByNothing()),
    Sheets = Table.SelectRows(Table.ExpandTableColumn(Filter, "Column1", {"Data", "Kind"}),each [Kind]="Sheet" or [Kind]=null)[Data],
    Combine = Table.Combine(List.Transform(Sheets,each Table.PromoteHeaders(_))),
    Expr = "["&Text.Combine(List.RemoveRange(Table.ColumnNames(Combine),0,1),"]<>null or[")&"]<>null",
    Result = Table.SelectRows(Combine,each Expression.Evaluate(Expr,[_=_]))
in
    Result
 
Цитата
Андрей Лящук написал:
в файл Сборщик файлов.xls на Лист1 добавил таблицу (нужна для запроса, из нее берется путь к папке)запрос Power Query
Андрей, спасибо за потраченное время.

С Power Query никогда не сталкивался, но по-моему где читал что он есть в версии 2016 года, у меня етсь возможность использовать только 2013 версию.

не совсем понимаю что нужно дальше с листом 1 сотворить?)
 
Цитата
Nordheim написал:
Вот тут не совсем понятно, что значит в сводной таблице? это уже не копирование а сводная по нескольким файлам, загляните в приемы там вроде есть такое.
Возможно я выразился некорректно "сводная" таблица = итоговая таблица, в которую попадает информация из нескольких файлов, здесь не имелась ввиду таблица созданная средствами Excel.

В последствии будет более 600 исходных файлов, в каждом более 300 строк. Я боюсь что средствами сводных таблиц будет проблематично такой объем обрабатывать.
 
Так и не получил ответа что значит
Цитата
Dodgem написал:
по тому же адресу, где был взята
Допустим, в 2 файлах данные находятся на одном адресе, что естественно, то одни данные затирать другими, или подразумевается что-то еще?
Изменено: Nordheim - 06.06.2019 07:39:10
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Dodgem написал:
етсь возможность использовать только 2013 версию
для 2010 и 2013 надо скачать надстройку. установить и затем открыть распакованный сборщик файлов и на вкладке Данные нажать обновить все. если ошибок нет, то добавить еще файлов в папку Города и снова обновить все.
*значения в столбцах D:Z не являются значимыми, их можно не переносить. их(значений) там просто не должно быть
 
Все бы хорошо, только на рабочей машине все заблокировано для скачивания и установки...

Цитата
Nordheim написал:
Допустим, в 2 файлах данные находятся на одном адресе, что естественно, то одни данные затирать другими, или подразумевается что-то еще?
1. Фразой "по одному и тому же адресу" я имел ввиду следующее: если в файле, допустим Москва заполнены ячейки АА2:AG2 то и в файл  "Сборщик файлов" они должны располагаться в диапазоне АА2:AG2. Я все же думаю что проще будет копировать и переносить всю строку в диапазоне С2:AG2.

2. на одном адресе в разных файлах данных быть не должно(теоретически, но такой вариант тоже не исключаю). Если будут, перезатираем...
 
Цитата
Dodgem написал:
Фразой "по одному и тому же адресу" я имел ввиду следующее
Исходя из этого, тут простым копированием не обойтись
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Наверх