Страницы: 1
RSS
Поиск совпадений по двум столбцам, Некорректное отображение в формуле
 
В столбцах одинаковые продукты, но записаны они по разному, вроде бы смог сделать формулу для поиска по первым буквам каждого наименования, но работает некорректно. Сможете подсказать в чем ошибка или как можно изменить формулу?
 
excelwork, Сравниваете 30 символов столбца С с полным значением столбца V . Почему 30? В V выделяйте тоже символы слева для сравнения, или ищите вхождение
 
При 30 должно больше поймать соответствий, так как диапазон шире. Насчет второй части не понял, мне же нужно искать по всей базе, чтобы найти соответствие, я не могу указать одну строку
 
excelwork,
Код
=IFERROR(INDEX($V$1:$V$100; MATCH(LEFT(C4;3); LEFT($V$1:$V$100;3);0));"Не найдено")
ищет по первым 3 символам.
 
bigorq, Да спасибо в принципе работает, но как я понял он очень чувствителен к регистру и очередности символов. Где-то мне нужно прописать больше первых символов, а где-то меньше. Это возможно, как-то автоматизировать?
 
Есть расширение Fuzzy Lookup кажется, для неявного поиска, попробуйте его.
 
bigorq, Посмотрел) По отзывам говорят, что это платный аддон. Через формулы или макрос, такие запросы не исполнить?
 
Цитата
работает некорректно
у ПОИСКПОЗ нет третьего аргумента (с текстом да в неотсортированном диапазоне будет находить "чёпопало")
можно попробовать так
{ }
=ЕСЛИОШИБКА(ИНДЕКС(V$1:V$100;1/(1/МАКС(ЕСЛИОШИБКА(ПОИСКПОЗ(ЛЕВСИМВ(C3;СТРОКА(A$5:A$30))&"*";V$1:V$100;);""))));"Не найдено")
...и поиграться с диапазоном в СТРОКА
 
Цитата
excelwork написал:
По отзывам говорят, что это платный аддон
года 2 назад пробовал, точно не платил. А 100% такие запросы ничем не отработать, только ручками и глазками
 
Павел \Ʌ/, Спасибо формула хорошо работает, вопрос есть вот к этому
Цитата
написал:
СТРОКА(A$5:A$30))&"*"
За что отвечает параметр строка, он выделяет код товара, который больше нигде не встречается. А формула ЛЕВСИМВ запрашивает на этом месте количество символов. Немного не понимаю связи и почему так хорошо работает) И &"*", тоже не понимаю за что отвечает. Буду рад услышать объяснение, чтобы начать чуть больше разбираться
 
bigorq, Хорошо спасибо, видимо сейчас уже стало платным
 
Цитата
excelwork написал:
стало платным
недавно пробовал - бесплатно
 
nilske, А вы проверяли для google sheets? Мы просто именно в них работаем
 
А так не массивно и несколько корректней
=ЕСЛИОШИБКА(ИНДЕКС(V$1:V$100;-ПРОСМОТР(;-ПОИСКПОЗ(ЛЕВСИМВ(C3;СТРОКА(A$5:A$30))&"*";V$1:V$100;)));"Не найдено")
Цитата
Буду рад услышать объяснение
СТРОКА(A$5:A$30)  -  массив чисел от 5 до 30
ЛЕВСИМВ(C3;СТРОКА(A$5:A$30))&"*"   -  массив из текстовых строк длиной от 5 до 30 символов сцепленных со звездочкой
ПОИСКПОЗ( искомое_значение&"*" ; ... ; 0 )
Цитата
F1:   Если тип_сопоставления равен 0 и искомое_значение является текстом, то искомое_значение может содержать подстановочные знаки: звездочку (*) и вопросительный знак (?). Звездочка соответствует любой последовательности знаков, вопросительный знак — любому одиночному знаку. Если нужно найти сам вопросительный знак или звездочку, перед ними следует ввести знак тильды (~).
ПРОСМОТР  - в таком виде вернет крайнее неошибочное значение
...я понятно объясняю?
 
Цитата
excelwork написал:
вы проверяли для google sheets?
а как об этом можно было догадаться :) и как вы хотели к ним макросы на vba подтянуть?
 
Павел \Ʌ/, Спасибо да понятно, значит массив чисел в СТРОКА идет от 5 до 30, и привязки к столбцу нет. То есть без разницы какой столбец, можно записать и СТРОКА(Z$5:Z$30)? Все остальное в формуле понятно, спасибо  
 
bigorq, На sheets есть запись макросов и appscript, правда с головой я туда не окунался максимум на который меня хватило это скрипт, который переносит таблицу на последнюю заполненную строку
Страницы: 1
Наверх