如何从Excel中提取数字或文本

Microsoft Excel非常擅长使用数字和文本,但是如果您在同一个单元格中同时使用它们,则可能会遇到一些困难。幸运的是,您可以从单元格中提取数字或文本以更有效地处理数据。根据数据的当前格式,我们展示了几种选择。

格式化为文本的Excel数字

这是一种常见的情况,而且很幸运,它很容易处理。有时,仅包含数字的单元格被错误地标记或设置为文本格式,从而阻止Microsoft Excel在操作中使用它们。

您可以在下图中看到,A列中的单元格被设置为文本格式,例如由数字格式框指示。您可能还会在每个单元格的左上角看到一个绿色标记。

如果在左上角看到一个绿色标记,请选择一个或多个单元格,单击警告标志,然后选择< strong>转换为数字。

否则,选择单元格,然后在功能区的“数字格式"菜单中选择默认的数字选项。

如果需要更多详细选项,请右键单击突出显示的单元格,然后选择格式化单元格,这将打开相应的菜单。在这里,您可以自定义数字格式并添加或删除小数,添加1,000分隔符或管理负数。

显然,您也可以使用上面概述的功能区或格式单元格选项来转换数字。

要使此方法起作用,您需要在单元格中输入一个数字(任何数字);或者将文本转换为货币,时间或其他所需的格式。

此单元格也必须格式化为数字,这一点很重要。复制该单元格。现在,选择要转换为数字格式的所有单元格,转到主页>粘贴>选择性粘贴,选择 Formats 仅粘贴您所设置的单元格格式复制,然后单击确定

此操作将复制的单元格的格式应用于所有选定的单元格,甚至是文本单元格。

提取数字或混合格式单元格中的文本

现在,我们进入难点:从包含多种输入格式的单元格中获取数字。如果您有一个数字和一个单位(例如“ 7铲",如下所示),则会遇到此问题。为了解决这个问题,我们将研究几种不同的方式将单元格分为数字和文本,让您分别使用它们。

如果您有很多包含数字混合的单元格和文本或两者的倍数,手动将其分开可能会花费大量时间。为了更快地完成此过程,可以使用Microsoft Excel的“文本到列"功能。

选择要转换的单元格,转到“ 数据>文本到列" ,然后使用向导以确保单元格正确显示。在大多数情况下,您只需要单击下一步完成,但请确保选择匹配的定界符;在此示例中为逗号。

如果您只有一位数字和两位数字,则 Fixed Width (固定宽度)选项也很有用,因为它只会将单元格的前两个或三个字符。您甚至可以通过这种方式创建多个拆分。

注意:设置为文本格式的单元格不会会自动以数字格式出现(反之亦然) ),这意味着您可能仍然需要如上所述转换这些单元格。

此方法有点麻烦,但在小型数据集上效果很好。我们在这里假设的是数字和文本之间用空格隔开,尽管该方法也适用于任何其他定界符。

我们将在此处使用的主要功能是LEFT,该函数返回a中最左边的字符。细胞。如您在上面的数据集中所见,我们的单元格具有一个,两个和三个字符的数字,因此我们需要返回该单元格中最左边的一个,两个或三个字符。通过将LEFT与SEARCH函数结合使用,我们可以将所有内容返回到该空间的左侧。函数如下:

=LEFT(A1, SEARCH(" ", A1, 1))

这会将所有内容返回到该空间的左侧。使用填充手柄将公式应用于其余单元格,这就是我们得到的(您可以在图像顶部的功能栏中看到该公式):

,我们现在将所有数字隔离了,因此我们可以对其进行操作。是否也想隔离文本?我们可以以相同的方式使用RIGHT函数:

=RIGHT(A1, LEN(A1)-SEARCH(" ", A1, 1))

这将从单元格的右侧返回X个字符,其中x是单元格的总长度减去该单元格左侧的字符数。空格。

现在您还可以操作文本。是否想再次合并?只需对所有单元格使用CONCATENATE函数作为输入:

=CONCATENATE(E1, F1)

Obviously, this method works best if you just have numbers and units, and nothing else. If you have other cell formats, you might have to get creative with formulas to get everything to work right. If you have a giant dataset, it’ll be worth the time it takes to get the formula figured out!

现在如果没有分隔符分隔数字和文本怎么办?

如果您要从中提取数字字符串的左侧或右侧,您可以使用上面讨论的LEFT或RIGHT公式的变体:

=LEFT(A1,SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))))
=RIGHT(A1,SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))))

这将返回字符串左侧或右侧的所有数字。 p>

如果您要从字符串的右侧提取数字,则还可以使用两步过程。首先,使用MIN函数确定字符串中第一个数字的位置。然后,您可以将该信息输入RIGHT公式的变体,以将数字与文本分开。

=MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))
=RIGHT(A1, LEN(A1)-B1+1)

注意:使用这些公式时,请记住,必须调整列字符和单元格编号。

使用上述策略,您应该能够从大多数麻烦的混合格式单元格中提取数字或文本。即使它们不是,您也可以将它们与Microsoft Excel中包含的一些强大的文本功能结合使用,以获取所需的字符。但是,在某些更复杂的情况下,则需要更复杂的解决方案。

例如,我发现了一个论坛帖子,有人希望从诸如“ 45t *&65 /"之类的字符串中提取数字,因此他将以“ 4565"结尾。另一位张贴者给出了以下公式作为其实现方法:

=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10)

老实说,我不知道它是如何工作的。但是根据论坛帖子,它将从复杂的数字字符串和其他字符中删除数字。关键是,只要有足够的时间,耐心和精力,您就可以从几乎所有内容中提取数字和文本!

您只需要找到合适的资源即可。

标签: Microsoft Excel 电子表格