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工作表中的产品名称中获取数值_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google sheets 从google工作表中的产品名称中获取数值

Google sheets 从google工作表中的产品名称中获取数值,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我有个问题。我们对项目名称进行了编码,其中包含我需要计算的特定值。 即ASG-120U9624M我只需要提取120、96、24,因为它们是计算所需的参数。96也可以是220(2-3位)。24可能只有12或24。我知道你可以在某些符号之后得到值,例如(-,u),但是你能检测到值在12/24之前结束吗。如果96的值只能是2位数,这将是很容易的,但现在我不知道这样做。需要一些帮助。B1: =ARRAYFORMULA(IFNA(REGEXEXTRACT(A1:A, "-(\d+)U"

我有个问题。我们对项目名称进行了编码,其中包含我需要计算的特定值。 即ASG-120U9624M我只需要提取120、96、24,因为它们是计算所需的参数。96也可以是220(2-3位)。24可能只有12或24。我知道你可以在某些符号之后得到值,例如(-,u),但是你能检测到值在12/24之前结束吗。如果96的值只能是2位数,这将是很容易的,但现在我不知道这样做。需要一些帮助。

B1:

=ARRAYFORMULA(IFNA(REGEXEXTRACT(A1:A, "-(\d+)U")))
C1:

D1:

试试这个:

=ARRAYFORMULA(IFNA(IF(IFERROR(LEN(REGEXEXTRACT(A1:A, ".*U(\d{4})M")), 5) = 4, REGEXEXTRACT(A1:A, "^ASG-(\d{3})U(\d{2})(\d{2})M$"), REGEXEXTRACT(A1:A, "^ASG-(\d{3})U(\d{3})(\d{2})M$"))))
LEN(REGEXEXTRACT(A1:A,“*U(\d{4})M”)),5)=4
-从U-M确定位数

REGEXEXTRACT(A1:A,“^ASG-(\d{3})U(\d{2})M$”
-如果位数为4,则使用此正则表达式

REGEXEXTRACT(A1:A,“^ASG-(\d{3})U(\d{3})(\d{2})M$”
-如果位数为5,则使用此正则表达式

样本表:


假设您的原始数据运行A2:A。将以下内容放在B2中:

=ArrayFormula(IF(A2:A=“”,REGEXEXTRACT(A2:A,“(\d+)\d(\d+)(12 | 24)”)

这一公式将提取所有三列数字


正则表达式捕获三个组,每个组包含在括号中。它是这样写的:“任意数字后跟一个非数字后跟任意数字,最多12或24。”

共享一份工作表副本
=ARRAYFORMULA(IFNA(REGEXEXTRACT(A1:A, ".+(\d{2})M")))
=ARRAYFORMULA(IFNA(IF(IFERROR(LEN(REGEXEXTRACT(A1:A, ".*U(\d{4})M")), 5) = 4, REGEXEXTRACT(A1:A, "^ASG-(\d{3})U(\d{2})(\d{2})M$"), REGEXEXTRACT(A1:A, "^ASG-(\d{3})U(\d{3})(\d{2})M$"))))