Здравствуйте. Пытаюсь получить определенные файлы из папок и столкнулся с проблемой: в некоторых папках есть несколько файлов, среди которые правильным считается тот, у которого в конце через знак тире добавлена наибольшая цифра. Как пример, на скриншоте есть дублирующийся файл "RFQ107005-Response.xml" под названием "RFQ107005-3-Response.xml". Как из списка полученных файлов оставлять только самые свежие на основе данного индекса? У меня пока что есть только идея разбивать как-нибудь название на части, заводить отдельное поле для индексов и по ним потом фильтровать, но тогда проблема с файлами, у которых нет индексов - надо будет ещё что-то придумывать... Может, я перемудрил и есть куда более простой способ?
Оставить из дубликатов файл с самым поздним индексом
08.07.2022 22:05:05
|
|
|
|
08.07.2022 23:20:58
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
08.07.2022 23:33:04
Не совсем понял вопрос. Если интересует структура, то она следующая: папка, в которой много папок, в каждой из которых несколько файлов. То есть Папка->Папки->Файлы.
|
|
|
|
09.07.2022 17:54:06
Честно говоря, я даже не понимаю, что это и что с этим делать(. Я спрашивал, есть ли более простой способ, чем тот, что предложил я. Мне жаль, но в предложенном Вами варианте я не могу ничего понять.
|
|
|
|
09.07.2022 18:10:31
Сергей Кузьмин, нам Вам по картинке код писать? Пример очень долго делать?
Приложите файл пример: таблица, где будет один столбец с наименованиями файлов, аналогичных реальным наименованиям (можете просто выгрузить на лист столбец наименований из Вашего запроса). |
|
|
|
09.07.2022 18:56:43
Файл приложил, но я повторюсь - мне не нужен код. Я хочу найти простой алгоритм. Возможно в Power Query есть какая-то встроенная функция, которая удаляет дубликаты, оставляя те, у кого наибольший индекс или еще что.
|
|
|
|
09.07.2022 19:26:17
1. Выделяете наименование (текст до "-") из имени файла в отдельный столбец. 2. Выделяете число после наименования. 3. Группируете по наименованию, оставляя строку с максимальным числом после наименования. Сделали? Если нет:
Изменено: |
|||||||
|
|
09.07.2022 19:40:24
Да, сделал. Вы предлагаете джоинить группировку с исходными данными и получить таким образом нужный результат?
|
|
|
|
09.07.2022 21:24:16
какой из этих 2-х пунктов вам не понятен, где случилась осечка? ладно отвечать не нужно надеюсь у вас достаточно квалификации чтобы скачать файл, открыть его, нажать кнопку BANZAY!!! ?
Изменено:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
09.07.2022 23:03:42
Квалификации достаточно, только ответ он выдает неправильный - всего 4 значения вместо 18. Я никогда не имел дел с макросами, поэтому и не знал, что делать с этим кодом. Вариант, предложенный surkenny сработал. Но все равно спасибо за трату времени на мой вопрос.
|
|
|
|
10.07.2022 04:40:04
(мой макрос выбирает файлы с последними индексами не в рамках одной папки, а анализируя имена всех файлов всех подпапок если в папке1 есть файл А-1-В, а в папке2 А-2-В - файл А-1-В не попадет в отчет, потому что где-то в папках нашелся с таким же именем, только с большим индексом внутри имени) 2. я не создавал систему подпапок у себя на компьютере, не наполнял их разными файлами с выдуманными именами для того чтобы проверить как работает иакрос. т.е. макрос не тестировался( и мог у вас вообще не сработать(( и там-таки есть ошибка((( строи 23 и 24 в предыдущем коде следует заменить на
а вот этот
Изменено:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||||||
|
|
10.07.2022 07:00:35
|
||||
|
|
|||