Kate6520, большой вопрос: почему платежки в отдельных файлах эксель? почему у вас отсутствует реестр платежек из бухг. системы или из банк-клиента в виде таблицы со всеми необходимыми реквизитами из платежек как везде, всегда и у всех? это бы свело обработку к элементарным действиям. Большие сомнения в том, что вы не можете получить такой реестр, т.к. если вы обладаете полномочиями заполнять и отправлять реестр платежек в банк (а это, мягко говоря, эксклюзивные полномочия), то почему нет доступа к выгрузкам из системы?
Kotyn, что вы хотите фильтровать по кварталу/году во второй таблице, если там уже квартал/год в столбцах? если фильтрация будет по первой таблице, то при чем тут вторая? Сделайте отдельную таблицу-справочник из уникальных значений квартал/год, загрузите ее в модель и от нее тяните связь в основную таблицу. Как правило, в модели данных связи тянуть надо от спец. созданных таблиц-справочников, в которых УНИКАЛЬНЫЕ данные, к основной таблице с данными.
Если в ваших двух таблицах вообще разные цифры ("принятые" и "рефералы" - это разные сущности?) и вы хотите обе таблицы фильтровать один фильтром, то вторую таблицу надо привести к плоскому виду.
asdewq1, с вероятностью 99,9% тормоза в связи с сетевым расположением файлов. ПС: мне все же не понятно соотношение rdp/сетевое расположение, т.к. для меня rdp - это работа на обычном удаленном локальном ПК как на своем. Видимо, работа на rdp, а плюсом запущенный на rdp excel тянет файлы с какого-то др. сервера. Но это уже не важно, т.к. изменить вы, видимо, ничего не сможете.
asdewq1 написал: подключение идет через rdp , но насколько я знаю характеристики компа не самые выдающиеся 4.подключение к файлам сетевое.
скопируйте себе на локальный компьютер все файлы и запустите, указав новый Источник - если, конечно, ваш ПК помощнее - если оперативки на удаленном компе менее 8 Гб, то тоже не о чем говорить. код в плане тяжести ни о чем совсем для 200 тыс строк, даже для неск миллионов, но менее 8 Гб оперативки, наверняка с кучей фоновых сервисов на сервере - это мало. + уберите шаги изменения типа попробуйте Через rdp это же удаленный раб.стол - можно как и на своем ПК посмотреть характеристики.
upd: так через rdp или сетевое? сетевое имеется в виду, что исходные файлы-источники на сетевой папке, а обращаетесь к ним вы со своего ПК - где запускаестся excel ? - на вашем ПК или на rdp? - если вы со своего ПК обращаетесь к файлам на сервере, то они скачиваются к вам на ПК налету + время обработки у вас
asdewq1 написал: По факту функция только поднимает заголовки
вроде ничего тормозящего нет 1. кол-во столбцов в каждой таблице? 2. есть текстовые столбцы с большим кол-вом текста? 3. характеристики компьютера? 4. расположение файлов сетевое? 5. сколько исходные файлы по размеру? 6. зачем изменять последним шагом тип столбцов с датами, если над датами нет операций? 7. возможно, загрузку тормозит наличие ошибок - найдите их причину.
вероятно, ошибка возникает, когда у вас открыт какой-либо файл в папке - тогда в этой папке создается временный файл со знаком "~" в начале имени - у вас в предварительной фильтрации нет фильтра на этот случай (есть фильтр только на скрытые файлы). Вам нужно поставить фильтр - убрать строки с наличием "~" в исходной таблице с файлами.
Ния0713, сделать таблицу-справочник: Значение|Формула как текст -> ВПРить формулу в целевую таблицу с применением функции ГИПЕРССЫЛКА/ ДВССЫЛ или т.п., которые преобразуют формулу, записанную в виде текста, в настоящую формулу.
никогда не сортируйте строки, если это не нужно прямо в текущий момент, если дальше есть join' ы - огромный риск того, что у вас притянутся левые данные из др. таблицы и вв никогда этого не отследите,, коротко этого не объяснить, это внутренние косяки PQ, постараюсь найти свою старую тему по этому поводу, сортируйте самым последним шагом, если это вохможно, либо вставляйте после сортировки столбец индекса, но это минус к производительности.
regina516, начать в первую очередь с указания кол-ва строк в каждой таблице с которой делается каждый join. Если в каждой миллионы строк, то что вы хотите при таком кол-ве join'ов. + если строк даже сотня тысяч, то сортировка - чрезвычайно ресурсозатратное действие - нужна ли она вам?
dimwits, я удосужился посмотреть пример: при чем тут join, PQ или ВПР? вы руками можете проставить в своем примере из второй таблицы соотвествующие данные?- нет не сможете, потому, что вы в принципе не понимаете, что у вас по партиям срок хранения разный, и не можете сформулировать задачу. У вас идентификатором будет код+ кол-во штук в партии, которые надо сгруппировать предварительно, либо код+год, либо код+год+кол-во штук в партии - что? + о каком-то "подразделении" неведомом еще речь идет.....
dimwits, пример без разницы, вопрос ясен. Уникальный идентификатор = значение столбца 1 & значение столбца2 & значение столбца N (="все значения из всех столбцов в одной строке в один текст") и в левой и в правой таблице - будет ли это уникальным идентификатором, или и в таком случае будут дубликаты - только вы знаете.
Почему не можете удалить дубликаты в правой таблице? Если вам нужны все дублирующие строки в правой таблице, то нет никакой логики пытаться избежать дублирования строк в левой таблице - в этом и есть смысл работы join, как он работает. Правая таблица должна быть справочником с уникальными значениями в нужном вам случае.
dimwits,это абсолютно стандартный для любого ЯП результат работы Join - все совпадения генерируют новую строку. ВПР в Excel, который берет первую попавшуюся строку, это как раз фишка только Excel. Придумайте сочетание полей в качестве на 100% уникального идентификатора, либо удалите дубликаты в "правой" таблице - зачем тогда вам другие дублирующиеся данные, если вам нужна 1 строка? Есть способы, чтобы и Join выдавал только первое совпадение, но не помню решение, либо по форму ищите, либо кто-то подскажет, наверно. Но 100% способом и, в принципе, логичным, является удаление дубликатов в правой таблице.
Soni, индексирование в абсолютно таком же случае -после сортировки - мне не помогало абсолютно, строки удалялись абсолютно рандомно, надеяться на это нельзя
neurologkhv написал: Куда вставить Text.BetweenDelimiters
ваш код для обработки html на моем компе не работает - старый PQ - вставьте весь свой код обработки - вместе с let и in - в шаге "код_обработки_HTML" , заменив источники в шагах этого кода на соотв-е поле с вложенными файлами, и у вас в столбце "код_обработки_HTML" должны появиться ваши таблицы - разверните их затем + ваши разделители "<h4>" и ".</h4>" неправильные - подберите правильные сами в шаге TextBetweenDelimiters
Скрытый текст
Код
let
Источник = Folder.Files(" ВАШ ПУТЬ К ПАПКЕ С ТЕКСТОВЫМИ ФАЙЛАМИ"),
код_обработки_HTML = Table.AddColumn(Источник, "код_обработки_HTML", each Html.Table([Content], {{"Column1", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(1)"}, {"Column2", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(2)"}, {"Column3", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(3)"}, {"Column4", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(4)"}, {"Column5", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(5)"}, {"Column6", "TABLE.table.table-border.tc-chemical-table > * > TR > :nth-child(6)"}}, [RowSelector="TABLE.table.table-border.tc-chemical-table > * > TR"])),
текстHTML_из_файла = Table.AddColumn(код_обработки_HTML, "текстHTML_из_файла", each Text.FromBinary([Content])),
TextBetweenDelimiters = Table.AddColumn(текстHTML_из_файла, "TextBetweenDelimiters", each Text.BetweenDelimiters([текстHTML_из_файла], "<h4><u>", "</u>.</h4>")),
удал_др_столбцы = Table.SelectColumns(TextBetweenDelimiters,{"код_обработки_HTML", "TextBetweenDelimiters"})
in
удал_др_столбцы
ваш код не работает при подстановке в него приложенного текстового файла. что надо сделать - до сих пор не ясно. ссылка приводит на описание как сделать пользовательскую функцию - зачем? картинка в последнем вашем сообщении не открывается.
ПС: через образец навряд ли тут будет кто-то делать, смысла в этом нет никакого, и если вы знаете PQ, чтобы вытащить нужные данные из html, то использовать образец совсем странно. Напишите словами, что надо сделать + если ваш код вытаскивает данные из html, то сделайте, чтобы он работал на отдельно взятом текстовом файле. Вместо образца - как вариант подключитесь к папке, загрузите все объекты в папке в виде таблицы и через пользовательский столбец вытащите из каждого файла нужный текст, потом разверните все вложенные таблицы.
blackann написал: прилагаю файлы изначальные (Кредиты за две разные даты
ваши приложенные файлы абсолютно не соответствуют скриншотам ЮМ и МСП - столбцы не совпадают. Извините, но вы видимо, совсем не понимаете, что было сделано в чужих файлах. Если вам надо преобразовать исходные файлы, то пишите задачу по исходным файлам.
blackann, все условия надо писать, кто же знает в каком разрезе и по каким параметрам вам необходимо соединение таблиц. сейчас нет понимания, что с чем и по каким признакам соединять. Какое сочетание полей будет идентификатором, по которому будут соединяться строки в разных таблицах, и могут ли быть повторы строк с таким идентификатором? Либо сначала надо сгруппировать таблицы каждую в отдельности, а потом сгруппированные соединять?....Вы не задали ни одного условия соединения. Сейчас решить невозможно.