Есть такая задача: есть таблица с кодами и ценами. Коды могут иметь любое кол-во знаков. Есть ещё одна таблица с кодами, где коды тоже могут иметь любое количество знаков. Необходимо сравнить коды из двух таблиц и подставить соответствующее значение цены из таблицы. Но поскольку коды не совпадают по количеству знаков, то необходимо взять код из первой таблицы, отбросить правый символ, проверить на совпадение кода из второй таблицы. И так до тех пор, пока не совпадет.
Т.е., иными словами, надо из первой таблицы отбрасывать по символу, пока значение ячейки из первой таблицы не сравняется с каким-нибудь значением масива кодов из второй таблички. При совпадении подставить соответствующую цену
Пример прилагаю.
Добрый день.
Есть такая задача: есть таблица с кодами и ценами. Коды могут иметь любое кол-во знаков. Есть ещё одна таблица с кодами, где коды тоже могут иметь любое количество знаков. Необходимо сравнить коды из двух таблиц и подставить соответствующее значение цены из таблицы. Но поскольку коды не совпадают по количеству знаков, то необходимо взять код из первой таблицы, отбросить правый символ, проверить на совпадение кода из второй таблицы. И так до тех пор, пока не совпадет.
Т.е., иными словами, надо из первой таблицы отбрасывать по символу, пока значение ячейки из первой таблицы не сравняется с каким-нибудь значением масива кодов из второй таблички. При совпадении подставить соответствующую цену
формула массива [Перевод / Translate] =ВПР(--ЛЕВБ(B19;МАКС(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(--ЛЕВБ(B19;СТРОКА($1:$15));D$3:D$6;));СТРОКА($1:$15))));D$3:E$6;2;)
Спасибо, формула работает. Пытался разобраться с тем, как она работает, но особо не получилось (скажем так, слишком сложно для меня уже). Каким образом можно научиться писать такие вот сложные формулы и понимать, что они делают? Понимаю, что "Книга по Excel" - самый разумный ответ, но хотелось бы именно на практике натренировать возможность составления таких сложных формул.
формула массива [Перевод / Translate] =ВПР(--ЛЕВБ(B19;МАКС(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(--ЛЕВБ(B19;СТРОКА($1:$15));D$3:D$6;));СТРОКА($1:$15))));D$3:E$6;2;)
Спасибо, формула работает. Пытался разобраться с тем, как она работает, но особо не получилось (скажем так, слишком сложно для меня уже). Каким образом можно научиться писать такие вот сложные формулы и понимать, что они делают? Понимаю, что "Книга по Excel" - самый разумный ответ, но хотелось бы именно на практике натренировать возможность составления таких сложных формул.VadimVV
Не угадали. Самый разумный ответ — практика и встроенная справка
Ну вот практикой и поисковиком я сам пытался формулу построить. У меня, если честно, не особо получилось, хотя с экселем работаю постоянно (конечно, не в таких объемах и не с такими сложными для меня формулами). Через такие запросы на форуме можно на практике учиться, но мне бы в голову никогда не пришло использовать в этой формуле МАКС, ЛЕВБ и -- (со СТРОКА и ПОИСКПОЗ я догадался. Для опытного пользователя следующий шаг - усложнение формулы, для меня - тупик и путь на форумы).
Не угадали. Самый разумный ответ — практика и встроенная справка
Ну вот практикой и поисковиком я сам пытался формулу построить. У меня, если честно, не особо получилось, хотя с экселем работаю постоянно (конечно, не в таких объемах и не с такими сложными для меня формулами). Через такие запросы на форуме можно на практике учиться, но мне бы в голову никогда не пришло использовать в этой формуле МАКС, ЛЕВБ и -- (со СТРОКА и ПОИСКПОЗ я догадался. Для опытного пользователя следующий шаг - усложнение формулы, для меня - тупик и путь на форумы).VadimVV