使用正则表达式自定义排序?
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:B7
和 B1: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)
我有两列,第一列是姓名列表,第二列是他们的评分。我想使用自定义排序,为此我使用了以下内容(找到它 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:B7
和B1: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)