解决和解释3个复杂的Excel提取问题

许多人都在努力从Microsoft Excel的复杂单元中提取信息。针对我有关如何使用此功能从Excel中提取数字或文本的文章的许多评论和问题证明了这一点。显然,并不总是很清楚如何从Excel工作表中隔离所需的数据。

我们从该文章中选择了一些问题,以在此处进行介绍,以便您了解解决方案的工作方式。快速学习Excel并不容易,但是使用此类现实问题会大有帮助。

1。使用分隔符提取

读者Adrie提出以下问题:

我想从列表中提取第一组数字,即(122,90,84,118.4,128.9)< br>关于可以使用哪种公式的任何想法?

COIL112X2.5
COIL90X2.5
COIL84X2.0
COIL118.4X1.8
COIL128.9X2.0 <

要提取的数字长度不同的事实使此操作比仅使用MID函数要复杂一些,但是通过组合一些不同的功能,我们也可以摆脱左侧的字母如“ X"和右边的数字,仅在新单元格中保留所需的数字。

下面是用于解决此问题的公式:

=VALUE(LEFT((RIGHT(A1,(LEN(A1)-4))),FIND("X",A1)-5))

让我们从中间开始,并尝试出路,看看它是如何工作的。首先,我们将从查找功能开始。在这种情况下,我们使用的是FIND(“ X",A1)。此函数在单元格A1中的文本中查找字母X。找到X时,它返回它所在的位置。例如,对于第一个条目,COIL112X2.5,它返回8。对于第二个条目,它返回。返回7。接下来,让我们看一下LEN函数。这仅返回单元格中减去4的字符串的长度。结合使用RIGHT函数,我们从单元格中减去前四个字符就得到了字符串,这从每个单元格的开头删除了“ COIL"。该部分的公式如下所示:RIGHT(A1,(LEN(A1)-4))。

下一个级别是LEFT函数。现在,我们已经通过FIND函数确定了X的位置,并通过RIGHT函数摆脱了“ COIL",然后LEFT函数返回了剩下的内容。让我们进一步细分一下。当我们简化这两个参数时,会发生以下情况:

=LEFT("112X2.5", (8-5))

LEFT函数返回字符串的最左边三个字符(参数末尾的“ -5"确保消除了正确的字符数)通过考虑字符串中的前四个字符。)

最后,VALUE函数确保返回的数字被格式化为数字,而不是文本。这个示例并不像在Excel中构建俄罗斯方块的工作游戏那样有趣,但是它确实是一个很好的示例,说明了如何结合一些功能来解决问题。

2。从混合字符串中提取数字

读者Yadhu Nandan提出了类似的问题:

我想知道如何将数字和字母分开。

示例是– 4552dfsdg6652sdfsdfd5654

我想要在不同的单元格中添加4552 6652 5654

另一位读者Tim K SW为这个特殊问题提供了完美的解决方案:

假设4552dfsdg6652sdfsdfd5654位于A1中,您希望将这些数字提取到3个不同的单元格中。您可以使用B1中的4452和C1中的6652,以及D1中的5654。

B1:
= MID(A1,1,4)

C1:< br> = MID(A1,10,4)

D1:
= MID(A1,21,4)

公式很简单,但是如果您不熟悉MID函数,您可能不了解它的工作原理。 MID接受三个参数:一个单元格,结果开始处的字符号以及应提取的字符数。例如,MID(A1,10,4)告诉Excel从字符串的第十个字符开始取四个字符。

在三个单元格中使用三个不同的MID函数可以从中提取数字一长串数字和字母。显然,只有在每个单元格中始终具有相同数量的字符(包括字母和数字)时,此方法才有效。如果每个数字都不相同,则需要一个更复杂的公式。

3。从带空格的混合字符串中获取数字

文章中最困难的请求之一是来自读者Daryl的请求:

您好,我只想问一下如何单独的非常无格式的条目,例如:

Rp。 487.500(净价折扣50%)
Rp 256.500净价折扣40%
Rp99.000
Rp 51.000 / orang净价折扣(50%)

我花了一些时间在这一方面工作,并且自己无法提出解决方案,因此我选择了Reddit。用户UnretiredGymnast提供了一个很长且非常复杂的公式:

=SUMPRODUCT(MID(0&LEFT(A1,IFERROR(SEARCH("%",A1)-4,LEN(A1))),LARGE(INDEX(ISNUMBER(--MID(LEFT(A1,IFERROR(SEARCH("%",A1)-4,LEN(A1))),ROW($1:$99),1))*ROW($1:$99),0),ROW($1:$99))+1,1)*10^ROW($1:$99)/10)

As you can see, decoding this formula takes quite a while, and requires a pretty solid knowledge of a lot of Excel functions . To help figure out exactly what’s going on here, we’ll need to look at a few functions you might not be familiar with. The first is IFERROR, which catches an error (usually represented with a pound sign, like #N/A or #DIV/0) and replaces it with something else. In the above, you’ll see IFERROR(SEARCH(“%”,A1)-4,LEN(A1)). Let’s break this down.

IFERROR查看第一个参数,即SEARCH(“%",A1)-4。因此,如果“%"出现在单元格A1中,则返回其位置并从中减去4。如果字符串中未出现“%" ,Excel将创建错误,并返回A1的长度。

您可能不熟悉的其他函数比较简单例如,SUMPRODUCT先将数组的元素相乘然后相加。 LARGE返回范围内的最大数字。 ROW与美元符号结合使用,返回对行的绝对引用。

查看所有这些函数如何协同工作并不容易,但是如果您从公式的中间开始然后向外工作,您将开始看到它在做什么。这将需要一些时间,但是如果您想确切了解它的工作原理,建议您将其放入Excel工作表中并进行尝试。这是了解您正在使用的工具的最佳方法。

(此外,避免此类问题的最佳方法是更整洁地导入数据-这并非总是一种选择,但是

一次一步

如您所见,解决任何Excel问题的最佳方法是一次一步:从您所知道的开始,看看它能为您带来什么,然后从那里开始。有时,您最终会得到一个优雅的解决方案,有时,您会得到非常长,混乱且复杂的内容。但是只要有效,您就成功了!

并且不要忘记寻求帮助。有一些非常有才华的Excel用户,他们的帮助对于解决棘手的问题非常宝贵。

您对解决棘手的提取问题有何建议?您是否知道我们解决以上问题的其他解决方案?在下面的评论中分享它们和您的想法!

标签: Microsoft Excel 电子表格