使用正则表达式自定义排序?

Custom sort with regular expressions?

我有两列,第一列是姓名列表,第二列是他们的评分。我想使用自定义排序,为此我使用了以下内容(找到它 here) :

=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)

但我很好奇是否有更简单的方法来做到这一点

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

  • 管道 | 用于正则表达式中的 OR 登录。
  • A1:B7B1:B7 更改为您的范围。

编辑

  • 为了排序 Good+ Good Good- 将正则表达式更改为 "Great|Good\+|Good\-|Good|OK|Bad",将数组更改为 {"Great";"Good+";"Good";"Good-";"OK";"Bad"}

counter-intuitive: the order in the regextract is Good+|Good-|Good and in the array {"Great";"Good+";"Good";"Good-";"OK";"Bomb"} (Good in the regex was already capturing Good- instances)