Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 13:18   #1
ZombieBoy
 
Регистрация: 03.04.2013
Сообщений: 5
По умолчанию Частичное сравнение и замена при совпадении

Всем доброго времени суток!
Помогите пожалуйста, если такое вообще возможно
Проблема такая - имеются два столбца, один содержит частично правильные артикулы, второй содержит полностью правильные артикулы. Нужно сверить данные из первого с данными из второго и при совпадении заменить их. К примеру, в первом столбце имеем PT-00123(262-3) (не правильный артикул) и надо найти правильное значение из второго столбца (WZ-5605/PT-00123) и заменить.
Подскажите пожалуйста как это можно сделать,с помощью формул или макросов? и можно ли это вообще сделать? Очень надеюсь на вашу помощь!

Последний раз редактировалось ZombieBoy; 04.04.2013 в 15:59.
ZombieBoy вне форума Ответить с цитированием
Старый 04.04.2013, 22:57   #2
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Можно и так, и эдак. Можно даже вывести процент совпадения. Вы бы пример приложили строк на 10, чтобы наглядно было.
strannick вне форума Ответить с цитированием
Старый 05.04.2013, 08:49   #3
ZombieBoy
 
Регистрация: 03.04.2013
Сообщений: 5
По умолчанию

Процент совпадения не нужен, нужно просто замена артикула на правильный, и для удобства исправленный копировать в соседнюю ячейку,чтобы можно было потом сверить
пример из 10 строк будет не полный и не отобразит всего, так как столбец с правильными артикулами большой. прикладываю полный пример
Вложения
Тип файла: zip 2.zip (77.4 Кб, 35 просмотров)
ZombieBoy вне форума Ответить с цитированием
Старый 05.04.2013, 13:06   #4
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

В столбце С именованный диапазон "Правильный" (артикул). В столбце В формула, которая сравнивает этот именованный диапазон со значением в ячейках столбца А и выводит совпавшее значение из диапазона "Правильный". В столбце D формула, которая вычисляет процент совпадения. НО, в формуле, которая в столбце В, я думаю надо задать минимальную длину текста для сравнения (третий параметр формулы). Иначе, например, неправильный артикул такого вида ТХ00100918 и правильный 009 выдаст как 100% совпадение, что будет верно и для неправильного такого ЕУ0098755.
Вложения
Тип файла: zip 2 (1).zip (97.1 Кб, 126 просмотров)
strannick вне форума Ответить с цитированием
Старый 05.04.2013, 13:29   #5
ZombieBoy
 
Регистрация: 03.04.2013
Сообщений: 5
По умолчанию

Да, минимальная длина текста нужна для поиска, так как он выхватывает первое же совпадение в артикуле,и подбирает не правильный. Можно ли ее задать,и при необходимости в дальнейшем изменять? И, не знаю как правильнее сформулировать, можно ли сделать так,чтобы он при поиске и нахождении верного артикула,выбирал все точные совпадения?
ZombieBoy вне форума Ответить с цитированием
Старый 05.04.2013, 14:12   #6
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от ZombieBoy Посмотреть сообщение
Можно ли ее задать,и при необходимости в дальнейшем изменять?
Конечно. Я же писал "третий параметр формулы" (необязательный). Можно задать числом или через промежуточную ДЛСТР.

Цитата:
Сообщение от ZombieBoy Посмотреть сообщение
И, не знаю как правильнее сформулировать, можно ли сделать так,чтобы он при поиске и нахождении верного артикула,выбирал все точные совпадения?
Непонятно, что значит "все точные совпадения". Точное совпадение, по идее, одно.
strannick вне форума Ответить с цитированием
Старый 05.04.2013, 14:21   #7
ZombieBoy
 
Регистрация: 03.04.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от strannick Посмотреть сообщение
Конечно. Я же писал "третий параметр формулы" (необязательный). Можно задать числом или через промежуточную ДЛСТР.
Подскажите пожалуйста, как это сделать,я в этом не силен..

Цитата:
Сообщение от strannick Посмотреть сообщение
Непонятно, что значит "все точные совпадения". Точное совпадение, по идее, одно.
Правильный артикул то один,но при поиске он же может найти несколько артикулов,которые содержат искомые символы
ZombieBoy вне форума Ответить с цитированием
Старый 05.04.2013, 15:58   #8
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от ZombieBoy Посмотреть сообщение
Подскажите пожалуйста, как это сделать,я в этом не силен..
Упс. Тогда маленький ликбез.)))
Все функции имеют параметры, правильнее сказать, аргументы. Кроме некоторых, например СЕГОДНЯ(). Когда вводите функцию в ячейку, открывается окошко, где Вы должны эти аргументы ввести. В нашел случае аргумента четыре (четыре поля для ввода):
1. Что сравниваем (именованный диапазон "Правильный").
2. С чем сравниваем (значение ячейки в столбце А).
3. Мин длина сравнения (необязательный аргумент, по умолчанию 3).
4. Метод сравнения (необязательный аргумент, по умолчанию vbTextCompare).
По первым двум и четвертым понятно. В третьем аргументе как раз и указываете количество символов для сравнения. Если не указываете, то мин количество 3. Но, как уже писал, можно сделать через промежуточную формулу ДЛСТР если знаете точно, что длина строки в ячейках столбца А как раз та, что нужно. Хотя вряд ли.

А вот по поводу суперточного нахождения правильного артикула, тут уж не получится. Посмотрите на Ваши исходные данные и увидите, что многие позиции в Правильных артикулах могут подходить не к одной, а нескольким Неправильным. И длина тут не причем. Поэтому, я в таких случаях и пользуюсь еще и процентом совпадения. Остальное руками...
P.S. Пользуйтесь поиском, ибо форум предназначен для оказания помощи, а не для проведения ликбезов. Сам таким образом и нашел этот вариант. Кстати, в коде функции практически все закомментировано, так что достаточно туда заглянуть. Функция зашита в Ваш файл, найдете во вкладке Определенные пользователем.
strannick вне форума Ответить с цитированием
Старый 05.04.2013, 16:02   #9
ZombieBoy
 
Регистрация: 03.04.2013
Сообщений: 5
По умолчанию

Спасибо, постараюсь разобраться)
ZombieBoy вне форума Ответить с цитированием
Старый 05.04.2013, 16:47   #10
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Спасибо тем, кто написал эту формулу!!! Реквизиты автора в коде...
strannick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение данных по определенному диапазону строк и при совпадении значений копирование данных в другой лист Volk358 Microsoft Office Excel 6 02.10.2012 09:54
Замена данных при совпадении franchesko_totti Microsoft Office Excel 16 24.09.2012 17:00
Не получается частичное заполнение формы при нажатии кнопки justas1507 Microsoft Office Access 0 24.01.2012 06:51
Сравнение нескольких столбцов и при совпадении - создание одной большой таблицы ЖОРИКИ Microsoft Office Excel 8 25.10.2011 12:33
Поиск значений и копирование при совпадении serafim09 Microsoft Office Excel 2 24.02.2010 13:36