我正在尝试从字符串中提取数字,如下所示,
原始数据 |
---|
XY1 |
OPO13 |
RAW_U9 |
我只希望从文本字符串的末尾获取数字,
输出 |
---|
1 |
十三 |
9 |
我做了一些研究,它告诉我如何提取由空格、“-”或“/”分隔的数字。但是很难从非固定模式的字符串中提取数字。
为此,我阅读了一个使用此公式的教程:
RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))), 0)))
但是结果却不是这样。我得到的是这个结果:
当我使用此公式时输出错误 |
---|
Y1 |
PO13 |
AW_U9 |
是我做错了吗?还是我应该使用其他方法从字符串末尾获取数字?
使用 OP 中的逻辑和名称管理器以方便(重复)使用:
A
,而在第一行中定义然后使用
=right_digits
或=right_num
如果您有该
SEQUENCE
函数,并且数字始终位于字符串的末尾,如您所显示的那样,则可以使用更短的函数:如果您没有 SEQUENCE 函数,则可以使用等效函数:
(我不确定您是否需要使用Ctrl+Shift+Enter或只是Enter为了确认一下)
如果数字可能位于单元格中的任何位置,并且您想要提取所有数字,请参阅我对这个问题的回答
假设您希望从“AXB1234_CBS00129”中提取“00129”(包括前导0),
在此处输入图片描述
假设没有
Excel Constraints
按照帖子标签,那么以下公式之一应该适合你MS365
• 单元格中使用的公式B2
• 或者,没有泄漏版本,需要复制下来:
• 或者,在不使用
SEQUENCE()
函数的情况下,如果您不使用MS365
或Excel 2021
或Excel 2024
,则:• 或者,
AGGREGATE()
在某个用户重新打开该帖子之前,使用我在帖子中上面评论过的功能:注意:所有上述公式都认为数字始终位于字符串的末尾,如 OP 中所示。此外,无法在旧版本中测试这些公式是否支持,可能在退出编辑模式时不需要CTRL+ SHIFT+的承诺。ENTER
如果您想从字符串中的任何位置提取数字以输出组合值,也可以使用Black cat关于从文本字符串中提取数字的公式的提议。
公式为
B2
: