Reg从逗号分隔的字符串中提取值

问题描述 投票:0回答:1

我这里有一个 Google 表格:https://docs.google.com/spreadsheets/d/1s7tzyz9A9caaJGbiWPm1CDNBxmnv0Xrh3lb5yj9CDOk/

第一个选项卡只是从 Google 表单收集信息。输入您的姓名(示例电子表格中的所有名称均已更改为随机生成器名称),选择您可以参加音乐会的日期,然后选择您演奏的乐器。点击提交。回复将转储到“Google 表单链接”选项卡中。

然后,我想使用“主列表”选项卡生成可以参加每个日期的人员列表,然后按他们演奏的乐器进行细分。在主表中,我用于生成每个部分的当前公式是:

=IFERROR(SORT(FILTER('Google Form Link'!$B$2:$B,'Google Form Link'!$D$2:$D = A15,'Google Form Link'!$C$2:$C = REGEXEXTRACT('Google Form Link'!$C$2:$C,".*" & CellThatProvidesTheDate & ".*")),1,TRUE),"")

它对于每个部分都运行良好,除了 7 月 3 日星期三的部分,因为我的正则表达式无法处理 7 月 3 日到 7 月 31 日之间的情况。当它编译 7 月 3 日的列表时,它需要所有可用的人7 月 3 日和 ALSO 包括可以参加 7 月 31 日的人员(如果他们已经不在名单上)。 我目前在 7 月 3 日部分使用的公式是:

=IFERROR(SORT(FILTER('Google Form Link'!$B$2:$B,'Google Form Link'!$D$2:$D = A15,'Google Form Link'!$C$2:$C = REGEXEXTRACT('Google Form Link'!$C$2:$C,".*" & $A14 & ".*")),1,TRUE),"")

我尝试将公式更改为下面的公式,其中我使用

\b
断言“3”之后的位置,但该公式不提供任何匹配项,而是触发 IFERROR() 条件,导致空白单元格适用于该日期的所有工具。

=IFERROR(SORT(FILTER('Google Form Link'!$B$2:$B,'Google Form Link'!$D$2:$D = A15,'Google Form Link'!$C$2:$C = REGEXEXTRACT('Google Form Link'!$C$2:$C,"[a-zA-Z]* Wednesday, July 3\b")),1,TRUE),"")

有人可以引导我走向正确的方向吗?我不确定为什么像

[a-zA-Z]* Wednesday, July 3\b
这样的正则表达式在

https://regex101.com/

上对我有用,但在 Google Sheets 公式中却不起作用。

提前谢谢您!
    
	

您可以替换整个日期匹配条件:

regex sorting google-sheets filter re2
1个回答
0
投票


regexmatch('Google Form Link'!$C$2:$C,"\b"&$A14&"\b") 最终公式(针对

Cell_A16

=ifna(sort(filter('Google Form Link'!$B$2:$B,'Google Form Link'!$D$2:$D = A15,regexmatch('Google Form Link'!$C$2:$C,"\b"&$A14&"\b")),1,TRUE))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.