Пользовательская сортировка с регулярными выражениями? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть два столбца, первый со списком имен, а второй с их рейтингом. Я хочу использовать пользовательскую сортировку, для которой я использую следующее (нашел здесь ) :

=sort(A33:B50;match(B33:B50;{"Great";"Good";"OK";"Bad");true)

Что работает, но мои оценки на самом деле:

  • Отлично +
  • Отлично
  • великорусский
  • Хорошо +
  • Хорошо
  • Хорошо-
  • ОК +
  • ...

Есть ли способ объединить приведенную выше формулу с регулярными выражениями? Что-то вроде этого:

=sort(A33:B50;match(B33:B50;{"Great*";"Good*";"OK*";"Bad*");true)

Что на самом деле ничего не делает. Изучил формулы регулярных выражений в листах Google, но не смог найти ни одной, которая бы сработала в этой ситуации.

ура!

PS: обходной путь будет

=sort(A33:B50;match(B33:B50;{"Great+";"Great";"Great-";"Good+";"Good";"Good-";"OK+";"OK";"OK-";"Bad+";"Bad";"Bad-");true)

но мне любопытно, есть ли менее утомительный способ сделать это

1 Ответ

0 голосов
/ 07 ноября 2018

=sort(A1:B7;match(regexextract(B1:B7;"Great|Good|OK|Bad");{"Great";"Good";"OK";"Bad"};0);true)

  • Трубопровод | предназначен для ИЛИ входа в Regex.
  • Измените A1:B7 и B1:B7 на ваши диапазоны.

Редактировать

  • для сортировки Good+ Good Good- изменить регулярное выражение на "Great|Good\+|Good\-|Good|OK|Bad", изменить массив на {"Great";"Good+";"Good";"Good-";"OK";"Bad"}

нелогично: порядок в регулярном тексте Хороший + | Хороший | Хороший и в массиве {"Great"; "Good +"; "Good"; "Good -"; "OK"; "Bomb"} (Good в регулярном выражении уже собирал экземпляры Good)

...