Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

впр по не соответствующим искомым значениям

Автор Бали, 20.07.2016, 17:13

« назад - далее »

Бали

Здравствуйте. Помогите решить проблему с поиском и подстановкой данных по несоответствующим искомым значениям. Частично решил это через ВПР, но столкнулся с проблемой пробелов между словами и ни как не могу обойти их. Для наглядности выделил в примере красным проблемные ячейки. Суть: на закладке МСК еженедельно копируются обновленные данные, которые необходимо отображать на закладке справочник. Заранее благодарен.

vikttur

=ВПР("*"&ПОДСТАВИТЬ(H40;" ";)&"*";ПОДСТАВИТЬ(МСК!$A$4:$F$332;" ";);2;ЛОЖЬ)
Но это - формула массива. Вводится тремя клавишами. Производит много лишних вычислений.
Облегчить расчеты: в исходной таблице создать столбец с названиями без пробелов

IKor

Не вполне понятно что именно требуется получить:

1. Исключить ошибки из листа сравнения
попробуйте использовать функцию =ЕСЛИОШИБКА()

2. Или же найти самое похожее название в общей базе данных (обратите внимание на то, что в примере на листе МСК нет данных по чаю, кофе и какао - за исключением халвы :) )
попробуйте использовать в ВПР следующие функции:
=ЛЕВСИМВ(H7;ПОИСК(" ";H7;1)-1)&"*"
=ПОДСТАВИТЬ(H7;" ";"*")

3. Или же, если не боитесь испортить саму базу данных, то попробуйте обработать функцией =ПОДСТАВИТЬ(H7;" ";"") оба списка и на листе МСК, и на листе Справочник...

Бали

Нет смысла делать что либо на листе МСК, так как раз в неделю в этот лист загружается новые данные, это информация от аналитиков по ценам за неделю. В справочнике искомые данные такие как в базе данных R-keeper, их править нельзя так как они тащат за собой еще ряд значений. Аналитики поправили у себя нашу базу, скорее для красоты, и еще и сцепили единицы измерения, чем создали дополнительные хлопоты. Мне надо что бы справочник брал из МСК актуальные цены. То что там каких-то позиций нет (кофе, какао и т.д.) это не смущает, значит они не закупались на этой недели в сети. Мне надо обойти их исправления, что бы все цены прописывались без ошибки.

Бали

#4
IKor
=ВПР(ЛЕВСИМВ(H40;ПОИСК(" ";H40;1)-1)&"*";МСК!$A:$F;2;ЛОЖЬ) этот вариант не подходит. Он решил проблему в тех строках где данные не подставлялись, но теперь другие некорректные. Те позиции которые начинаются одинакового берут цену самой первой, например Морковь желтая и морковь красная - цена стала одинаковой.

vikttur

#5
Формулу из ответа №1 проверяли?
Цитироватьформула массива. Вводится тремя клавишами
Ctrl+Shift+Enter

Там же, в ответе №1, и второй вариант:
Цитироватьв исходной таблице создать столбец с названиями без пробелов
Если нельзя менять исходный лист, никто не мешает создать такой столбец на результирующем и данные отбирать с помощью ИНДЕКС/ПОИСКПОЗ:
=ИНДЕКС(диапазон_на_исходном;ПОИСКПОЗ(что_ищем;доп.столбец_на_результирующем))

IKor

2 Бали,

могу предложить усложнить формулу:
=ЕСЛИОШИБКА(ВПР(простой);ВПР(обработанный))

Бали

Эта формула помогла =ВПР("*"&ПОДСТАВИТЬ(H40;" ";)&"*";ПОДСТАВИТЬ(МСК!$A$4:$F$332;" ";);2;ЛОЖЬ)
Сначала выдавала ошибку, видимо я ее не правильно вводил, а потом заработала. Большое спасибо!

Бали

Поспешил я с выводами! Формула работает, но поиск работает не корректно, но это скорее вопросы вообще к функции ВПР. Итак: искомое значение молоко, ищет и находит на закладке МСК кокосовое молоко, которое стоит в списке выше молока и соответственно подставляет цены кокосового молока. Как написать формулу через поиск позиции? Если можно напишите рабочий вариант формулы.

Бали

#9
Кнопка цитирования не для ответа [МОДЕРАТОР]

Не могу разобраться с поиском позиций, ввожу формулу поиска - выдает что-то непонятное.Пример в приложении. Не могу понять в чем дело?

vikttur

Плохо справку читали. При неточном соответствии:
ЦитироватьФункция ПОИСКПОЗ находит наибольшее значение, которое меньше или равно значению аргумента искомое_значение.Просматриваемый_массив должен быть упорядочен по возрастанию: ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА
Для поиска точного текста нужно указывать тип соответствия 0. Но в показанном случае нет совпадения:
"БАЗИЛИК СВЕЖ."<>"БАЗИЛИК СВЕЖ. "