将 6 位代码提取到 excel 中的单独列
Extract 6 digit codes to a separate columns in excel
在 Whosebug 上有很多很多关于如何从字符串中提取数字的问题和高质量的答案,但是我找不到要找的那个,所以我有一个电子表格,其中一列描述是那里还有每个单元格中的特定代码。
这些是 6 位代码,应将其提取到单独的列中。如果一个单元格中只有 1 个代码,我可以借助 filterxml 函数来做到这一点。但是,如果每个单元格中的代码超过 1 个,我应该使用什么公式?
参考下面,我需要提取两个代码。
Advance payment based on contract # 990|33 dated 19.04.22 Invoice # HF 450|39 324500 526 324719 965
使用这个公式
=FILTERXML("<t><s>"&SUBSTITUTE(C3," ","</s><s>")&"</s></t>","//s[string-length()=6]")
所以它需要是 324500 和 324719 但它会溢出字符串长度为 6 的任何内容
一种方法是更改 xPath 参数以包含仅用于数字数据的参数。
//s[number(.)=. and string-length()=6]
例如:
=FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[number(.)=. and string-length()=6]")
如果任何 6 位数字可能有一个或多个前导零,则还使用 TEXT
函数:
=TEXT(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[number(.)=. and string-length()=6]"),"000000")
您可以尝试以下任何一项,
• 单元格 B3
中使用的公式
=AGGREGATE(15,6,MID(SUBSTITUTE(A1," ","x"),SEQUENCE(LEN(A1)-5),6)+0,{1,2})
或者,如果您正在使用 O365 并且目前在 Office 预览体验成员,Beta 频道版本, 那么也可以试试这个
• 单元格 B2
中使用的公式
=AGGREGATE(14,6,--TEXTSPLIT(A1," "),{2,1})
在 Whosebug 上有很多很多关于如何从字符串中提取数字的问题和高质量的答案,但是我找不到要找的那个,所以我有一个电子表格,其中一列描述是那里还有每个单元格中的特定代码。
这些是 6 位代码,应将其提取到单独的列中。如果一个单元格中只有 1 个代码,我可以借助 filterxml 函数来做到这一点。但是,如果每个单元格中的代码超过 1 个,我应该使用什么公式?
参考下面,我需要提取两个代码。
Advance payment based on contract # 990|33 dated 19.04.22 Invoice # HF 450|39 324500 526 324719 965
使用这个公式
=FILTERXML("<t><s>"&SUBSTITUTE(C3," ","</s><s>")&"</s></t>","//s[string-length()=6]")
所以它需要是 324500 和 324719 但它会溢出字符串长度为 6 的任何内容
一种方法是更改 xPath 参数以包含仅用于数字数据的参数。
//s[number(.)=. and string-length()=6]
例如:
=FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[number(.)=. and string-length()=6]")
如果任何 6 位数字可能有一个或多个前导零,则还使用 TEXT
函数:
=TEXT(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[number(.)=. and string-length()=6]"),"000000")
您可以尝试以下任何一项,
• 单元格 B3
中使用的公式=AGGREGATE(15,6,MID(SUBSTITUTE(A1," ","x"),SEQUENCE(LEN(A1)-5),6)+0,{1,2})
或者,如果您正在使用 O365 并且目前在 Office 预览体验成员,Beta 频道版本, 那么也可以试试这个
• 单元格 B2
中使用的公式=AGGREGATE(14,6,--TEXTSPLIT(A1," "),{2,1})