Упростить условие для замены, и поправить формулу

Автор TYMON, 30 июля 2019, 09:15

0 Пользователи и 1 гость просматривают эту тему.

TYMON

Здравствуйте. Пытаюсь облегчить работу себе и сотруднице в обработке прайсов от поставщиков, пришлось заморочиться так как товара надо грузить от 1000 позиций. Покопался в интернете, сделал, чтобы по названию товара формулой отделялась категория и в конце убираем пробел, но есть проблема если исходное выражение без пробела, то будет выдаваться ошибка в значении. Как это решить? Прошу помочь

Так же меня интересует вопрос, так как некоторые товары могут иметь разные названия, но относиться к другой категории, я ставлю условие - есть возможность как-то упростить его?

Файл прилагаю.


mikekaganski

Вариант:


  • Обновитесь до LibreOffice 6.2
  • Добавьте лист-справочник с заменами (я его назвал subst), где в столбце A - "неправильные" названия, а в B - каноничное название категории
    У меня это были две строки: Блузка | Блуза и Рубашка-Туника | Рубашка
  • 3. Используйте формулу (в B2):
=IFNA(VLOOKUP(REGEX(A2;"^\S+");$subst.A:B;2;0);REGEX(A2;"^\S+"))
В условиях отсутствия отдельного столбца для результатов REGEX эта функция будет вызвана дважды. Тем не менее даже в таком виде функция короче и проще для редактирования.
С уважением,
Михаил Каганский

bigor

А просто по первым 4 буквам нельзя идентифицировать категорию?
например =ifs(left(a1;4)="Блуз";"Блузка";left(a1;4)="Руба";"Рубашка")
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

TYMON

Спасибо за варианты ответов, очень хорошие решения, подумаю какой будет все-таки удобней использовать вариант.

Такой вопрос немного казусный, но а вдруг, можно каким-то образом сохранять формулы в CSV формате? Чтобы каждый раз не пересохранять из ods в csv? Потому как для нашего импорта нужен именно csv

mikekaganski

Программа умеет считывать формулы из CSV, потому что есть такие документы. Есть даже баг на тему "ЛО не должен читать формулы из CSV!".

Сохранение формул тоже поддерживается: для этого надо отметить опцию "изменить настройки фильтра" (как-то так) в диалоге выбора имени файла при сохранении.

Нужно только помнить, что при сохранении CSV сохранится только один лист (если их несколько).
С уважением,
Михаил Каганский

TYMON

Спасибо за рекомендации

Вот с этой формулой

=IFNA(VLOOKUP(REGEX(A2;"^\S+");$subst.A:B;2;0);REGEX(A2;"^\S+"))

Забыл указать такой случай, если товар например состоит из трех слов "Спортивные штаны 4598" и "Спортивные шорты 1548"? то он только "спортивные выделит", что в таком случае делать? Надо бы просто чтобы оставались категории спортивные штаны и спортивные шорты отдельно

mikekaganski

Тогда я бы переделал логику: в справочник вписывал бы *все* возможные названия категорий, в т.ч. и правильные.

Получился бы справочник типа
Блуза | Блуза
Блузка | Блуза
Рубашка | Рубашка
Рубашка-Туника | Рубашка
Спортивные штаны | Спортивные штаны


И тогда формула приняла бы вид
=IFNA(VLOOKUP(REGEX(A2;"\S+");$subst.A:B;2;0);VLOOKUP(REGEX(A2;"\S+ \S+");$subst.A:B;2;0))
Это бы выводило ошибки для всех категорий, ещё не добавленных в справочник, так что первоначальная работа состояла бы в заполнении справочника.
С уважением,
Михаил Каганский

TYMON