Столкнулся с такой проблемой: Строки из одного файла нужно импортировать в другой. Каждая строка - это товар, и если товар уже есть в файле, то его не нужно импортировать Сложность в том, что значения ячеек колонки НАЗВАНИЕ в файле "файла-назначения" далеко не всегда совпадает с его дублем в "файле для импорта". Поэтому некоторые товары могут задублироваться, вот пример значения ячейки в колонке "название" в двух файлах: CASIO Privia PX-160WE CASIO PX-160 WE
можно ли как-то пометить дубли, если они есть? Моя идея была в следующем: Открыть файл-назначение, создать там новый Лист2. Добавить все строки из файла для импорта на новый Лист2 в файле-назначения. Затем Условное форматирование -> Использовать формулу для определения форматируемых ячеек. Отмеченные строки проверить и удалить, затем перенести оставшиеся строки на основной Лист1 Саму формулу я не смогу создать. Есть идея зацепиться за значение столбца БРЕНД и Название. Может умные люди тут посоветуют что получше. Укороченные Файлы для примера прикладываю (название листов отражает содержание)
Всем здравствуйте!
Столкнулся с такой проблемой: Строки из одного файла нужно импортировать в другой. Каждая строка - это товар, и если товар уже есть в файле, то его не нужно импортировать Сложность в том, что значения ячеек колонки НАЗВАНИЕ в файле "файла-назначения" далеко не всегда совпадает с его дублем в "файле для импорта". Поэтому некоторые товары могут задублироваться, вот пример значения ячейки в колонке "название" в двух файлах: CASIO Privia PX-160WE CASIO PX-160 WE
можно ли как-то пометить дубли, если они есть? Моя идея была в следующем: Открыть файл-назначение, создать там новый Лист2. Добавить все строки из файла для импорта на новый Лист2 в файле-назначения. Затем Условное форматирование -> Использовать формулу для определения форматируемых ячеек. Отмеченные строки проверить и удалить, затем перенести оставшиеся строки на основной Лист1 Саму формулу я не смогу создать. Есть идея зацепиться за значение столбца БРЕНД и Название. Может умные люди тут посоветуют что получше. Укороченные Файлы для примера прикладываю (название листов отражает содержание)arxon
Добрый вечер! Молчание сообщества можно расценить как невозможность решения посредством формулы в условном форматировании ? Или может есть альтернативное решение?
Добрый вечер! Молчание сообщества можно расценить как невозможность решения посредством формулы в условном форматировании ? Или может есть альтернативное решение?arxon
Держите ссылочку http://www.excelworld.ru/forum/3-717-1 10 страниц, почти 200 постов Это чтобы примерно сориентировать Вас в понимании сложности поднятого вопроса
Пролистал, ужас, не думал, что все так сложно. Может есть простая формула, чтобы сравнить строки двух колонок НАЗВАНИЕ, что-то типа : "выделить строки, где в обоих колонках повторяются 5 одинаковых символа подряд"?
Пролистал, ужас, не думал, что все так сложно. Может есть простая формула, чтобы сравнить строки двух колонок НАЗВАНИЕ, что-то типа : "выделить строки, где в обоих колонках повторяются 5 одинаковых символа подряд"?arxon
Расшифруйте фразу "5 одинаковых символа подряд" Вот Вам пример CASIO Privia PX-160WE CASIO FX-82ES PLUS 5 одинаковых символов подряд без пробелов есть. Однако первая строка - пианино, а вторая - калькулятор
Расшифруйте фразу "5 одинаковых символа подряд" Вот Вам пример CASIO Privia PX-160WE CASIO FX-82ES PLUS 5 одинаковых символов подряд без пробелов есть. Однако первая строка - пианино, а вторая - калькулятор_Boroda_
Да,вы правы. Может можно бренды добавить в исключение (все бренды у меня есть в отдельной колонке). Но это полумера, т.к. есть модельные ряды внутри бренда, например PRIVIA.
Может есть формула "совпадение в любом порядке 5 последних символов в значении двух ячеек" например
Да,вы правы. Может можно бренды добавить в исключение (все бренды у меня есть в отдельной колонке). Но это полумера, т.к. есть модельные ряды внутри бренда, например PRIVIA.
Может есть формула "совпадение в любом порядке 5 последних символов в значении двух ячеек" напримерarxon
Приложите файл (один), в котором на одном листе сделайте 2 не очень больших таблички (кстати, насколько большие таблицы в реале?). И вручную набейте необходимый Вам результат. И пояснения желательно еще
Приложите файл (один), в котором на одном листе сделайте 2 не очень больших таблички (кстати, насколько большие таблицы в реале?). И вручную набейте необходимый Вам результат. И пояснения желательно еще_Boroda_
Таблицы 30-50тыс строк. Файл сократил, упростил. Вот этот комментарий я написал в прикрепленном документе: "мы видим, что имеющийся каталог справа частично содержит товары из левого каталога (выделил жирным). Необходимо как-то сличить обе колонки, отметить похожие ячейки, чтобы я потом вручную перепроверил совпадения и вычистил из колонки слева ненужные строки и затем добавил их в правый."
Таблицы 30-50тыс строк. Файл сократил, упростил. Вот этот комментарий я написал в прикрепленном документе: "мы видим, что имеющийся каталог справа частично содержит товары из левого каталога (выделил жирным). Необходимо как-то сличить обе колонки, отметить похожие ячейки, чтобы я потом вручную перепроверил совпадения и вычистил из колонки слева ненужные строки и затем добавил их в правый."arxon
Добрый день. Это "дубли" или нет CASIO PX-5s CASIO Privia PX-5S WE upd. Сделал UDF по примеру [vba]
Код
Function arxon(t As String, r As Range) As String arr = r.Value With CreateObject("VBScript.RegExp") .ignorecase = True .Pattern = Replace(t, " ", ".*") & "$" For i = 1 To UBound(arr) If .test(arr(i, 1)) Then arxon = arr(i, 1) Exit For End If Next i End With End Function
[/vba]
Добрый день. Это "дубли" или нет CASIO PX-5s CASIO Privia PX-5S WE upd. Сделал UDF по примеру [vba]
Код
Function arxon(t As String, r As Range) As String arr = r.Value With CreateObject("VBScript.RegExp") .ignorecase = True .Pattern = Replace(t, " ", ".*") & "$" For i = 1 To UBound(arr) If .test(arr(i, 1)) Then arxon = arr(i, 1) Exit For End If Next i End With End Function
Большое Вам спасибо! Можете словами пояснить по какому правилу из колонки A были скопированы в колонку С? Какие в формуле переменные, там есть цифра 9 - это кол-во знаков? Сейчас непонятно какие именно строки формула "решила" не переносить из столбца A? Хорошо было бы увидеть какие строки формула решила удалить...
Большое Вам спасибо! Можете словами пояснить по какому правилу из колонки A были скопированы в колонку С? Какие в формуле переменные, там есть цифра 9 - это кол-во знаков? Сейчас непонятно какие именно строки формула "решила" не переносить из столбца A? Хорошо было бы увидеть какие строки формула решила удалить...arxon
Благодарю Вас и прошу прощения за мою безграмотность, но как мне запускать данный макрос, нужно какие колонки выделять перед этим? режим разработчика в настройках включил, в окошке МАКРОСЫ ничего нет http://joxi.ru/Rmzkwn7iYjGe32 и есть в коде переменные, чтобы я мог их изменить? Изменять код знаю где - кнопка visual basic - Module1.
Благодарю Вас и прошу прощения за мою безграмотность, но как мне запускать данный макрос, нужно какие колонки выделять перед этим? режим разработчика в настройках включил, в окошке МАКРОСЫ ничего нет http://joxi.ru/Rmzkwn7iYjGe32 и есть в коде переменные, чтобы я мог их изменить? Изменять код знаю где - кнопка visual basic - Module1.arxon
Это функция в столбце С (файлик скачали? увидел) у нее два параметра ссылка на проверямую ячейку и на диапазон где проверяем. Встаньте на ячейку в колонке С - увидите
Это функция в столбце С (файлик скачали? увидел) у нее два параметра ссылка на проверямую ячейку и на диапазон где проверяем. Встаньте на ячейку в колонке С - увидитеsboy
Яндекс: 410016850021169
Сообщение отредактировал sboy - Среда, 13.03.2019, 15:59
вручную набейте необходимый Вам результат. И пояснения желательно еще
Результат. Необходимый. Вручную. В файле. Так понятнее? В файле этого нет, поэтому пришлось придумывать самому. И конечно же сразу началось "Хорошо бы увидеть ...".
Ну ладно, поворчал, теперь по теме Вам нужно что? Перенести из левой колонки в правую то, чего в правой нет. Я Вам их и вывел, переносите. Которые предположительно не нужно переносить, в тех строках в столбце С пусто. Значения можно посмотреть в соответствующей строке столбца А
Правило такое - делим каждое значение из столбца В на слова (по пробелу). Всего может быть не более 9 слов - за это отвечают куски A:I, 1:9 и <9 в формуле. Если слов меньше, то остаток до 9 добивается пустым "". Каждый из этих кусков пытаемся найти в ячейке А3. Если найденных кусков 9 штук, значит в какой-то из ячеек столбца В есть текст, каждое слово из которого есть в ячейке А3. Тогда А3 переносить не нужно
В столбце D наоборот - напротив тех из А, что не переносим, вывел соответствующие им из столбца В
вручную набейте необходимый Вам результат. И пояснения желательно еще
Результат. Необходимый. Вручную. В файле. Так понятнее? В файле этого нет, поэтому пришлось придумывать самому. И конечно же сразу началось "Хорошо бы увидеть ...".
Ну ладно, поворчал, теперь по теме Вам нужно что? Перенести из левой колонки в правую то, чего в правой нет. Я Вам их и вывел, переносите. Которые предположительно не нужно переносить, в тех строках в столбце С пусто. Значения можно посмотреть в соответствующей строке столбца А
Правило такое - делим каждое значение из столбца В на слова (по пробелу). Всего может быть не более 9 слов - за это отвечают куски A:I, 1:9 и <9 в формуле. Если слов меньше, то остаток до 9 добивается пустым "". Каждый из этих кусков пытаемся найти в ячейке А3. Если найденных кусков 9 штук, значит в какой-то из ячеек столбца В есть текст, каждое слово из которого есть в ячейке А3. Тогда А3 переносить не нужно
В столбце D наоборот - напротив тех из А, что не переносим, вывел соответствующие им из столбца В_Boroda_
Правило такое - делим каждое значение из столбца В на слова (по пробелу). Всего может быть не более 9 слов - за это отвечают куски A:I, 1:9 и <9 в формуле. Если слов меньше, то остаток до 9 добивается пустым "". Каждый из этих кусков пытаемся найти в ячейке А3. Если найденных кусков 9 штук, значит в какой-то из ячеек столбца В есть текст, каждое слово из которого есть в ячейке А3. Тогда А3 переносить не нужно
В столбце D наоборот - напротив тех из А, что не переносим, вывел соответствующие им из столбца В
Гениально! Необходимый результат Вы верно сформировали за меня, так как я не смог это сделать, у меня была лишь проблема. Как я понял, уменьшить строгость отбора можно так: заменить A:I, 1:9 и <9 на A:F, 1:6 и <6 или это не повлияет никак?
Правило такое - делим каждое значение из столбца В на слова (по пробелу). Всего может быть не более 9 слов - за это отвечают куски A:I, 1:9 и <9 в формуле. Если слов меньше, то остаток до 9 добивается пустым "". Каждый из этих кусков пытаемся найти в ячейке А3. Если найденных кусков 9 штук, значит в какой-то из ячеек столбца В есть текст, каждое слово из которого есть в ячейке А3. Тогда А3 переносить не нужно
В столбце D наоборот - напротив тех из А, что не переносим, вывел соответствующие им из столбца В
Гениально! Необходимый результат Вы верно сформировали за меня, так как я не смог это сделать, у меня была лишь проблема. Как я понял, уменьшить строгость отбора можно так: заменить A:I, 1:9 и <9 на A:F, 1:6 и <6 или это не повлияет никак?arxon
Все слова +конец строки должны совпасть (без учета регистра)
Большое спасибо! т.е. все слова из столбца B должны полностью войти в значение отдельной ячейки в колонке A? получается, если в колонке В будет более длинное название (CASIO Privia PX-160BK), а в столбце А более короткое (CASIO PX-160 BK), то формула не найдет дубля. Но ничего страшного, ведь можно сделать рядом столбец и написать зеркальное отражение формулы
Все слова +конец строки должны совпасть (без учета регистра)
Большое спасибо! т.е. все слова из столбца B должны полностью войти в значение отдельной ячейки в колонке A? получается, если в колонке В будет более длинное название (CASIO Privia PX-160BK), а в столбце А более короткое (CASIO PX-160 BK), то формула не найдет дубля. Но ничего страшного, ведь можно сделать рядом столбец и написать зеркальное отражение формулы