Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 从单元格中提取字符串_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google sheets 从单元格中提取字符串

Google sheets 从单元格中提取字符串,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我在谷歌表单的一个单元格中有一些文本,例如-2月1日-SG4601382(PS xxxxx 12345.666和12345.667) 我正试图将SG4601382部分提取到另一个单元格中,S字符的起始位置在每个单元格中有所不同,因为有时日期可能是2月1日,有时是2月12日 你们当中有谁知道我是如何做到这一点的吗?您可以使用搜索功能查找S的位置 例如,如果“二月一日-SG4601382(PS xxxxx 12345.666和12345.667)”是A1单元格中的文本,则 =SEARCH("

我在谷歌表单的一个单元格中有一些文本,例如-
2月1日-SG4601382(PS xxxxx 12345.666和12345.667)

我正试图将
SG4601382
部分提取到另一个单元格中,
S
字符的起始位置在每个单元格中有所不同,因为有时日期可能是2月1日,有时是2月12日


你们当中有谁知道我是如何做到这一点的吗?

您可以使用搜索功能查找S的位置

例如,如果“二月一日-SG4601382(PS xxxxx 12345.666和12345.667)”是A1单元格中的文本,则

=SEARCH("S",A1,0)
的“S”定位为11

现在,如果SG4601382每次都是长度为10的字符串,那么您可以使用MID公式将其提取出来,如下所示

=MID(A1,SEARCH("S",A1,0),10)

提供SG4601382

如果您的数据足够通用,可以查找“-”,请尝试:

或者稍微不那么具体:

=REGEXEXTRACT(A1,"—(\S+)")


编辑作为一个数组:

=INDEX(IF(A1:A="","",(REGEXEXTRACT(A1:A,"—(\S+)"))),)

或者,您应该能够使用

这可以很容易地转换为一个数组公式

=Arrayformula(if(len(A2:A), regexextract(A2:A, "—(.*?)\s"),))

最短的是

=REGEXEXTRACT(B2,"—(\w+)")

或者作为数组

=INDEX(IFERROR(
     REGEXEXTRACT(B2:B,"—(\w+)")))
(请根据您的需要调整范围和区域设置)

编辑(以下)

作为另一种选择,要“释放下面的所有单元格”,请尝试

=QUERY(索引(REGEXEXTRACT(B2:B,“-(\w+))),
“其中Col1'不适用')

如果所需数字前的字符串以S开头,则此公式将失败。。为此,您需要搜索另一个模式,如本例中的“SG”而不是“S”欢迎。请记住,当答案回答您的问题时,它甚至是它,这样其他人也可以从中受益。这是一个很好的数组处理方法。我第一次看到使用
IFERROR()
。我会记住的。@JvdV如果你喜欢
IFERROR()
方式,我想你会喜欢
查询方式。请检查更新的答案。
=REGEXEXTRACT(B2,"—(\w+)")
=INDEX(IFERROR(
     REGEXEXTRACT(B2:B,"—(\w+)")))
=QUERY(INDEX(REGEXEXTRACT(B2:B,"—(\w+)")), 
          "where Col1<>'#N/A' ")