image

从excel 2016及更早版本的单元格中剥离数值。我们使用的公式有点复杂,但是现在Excel 2019和365出现在游戏中了。 Excel 2019和365引入了一些新功能,这些功能可以简化删除非数字字符并仅在新单元格中检索数字值的任务。我们将使用可以更方便地帮助我们做到这一点的公式。 通用公式

=TEXTJOIN(“”,TRUE,IFERROR(MID(jumbled_text,SEQUENCE(NumChars),1)+0,””))

Jumbled_text:这是您要从中提取所有数值的源文本。

NumChars:这是您要处理的字符总数。

jumbled_text的字符数不得超过此数字(字符和数字的总和)。

让我们看一个例子,使事情变得清楚。

示例:删除非数字字符并提取所有数字

image

因此,这里有一些混乱的文字。此文本包含一些数字和一些非数字字符。我需要摆脱非数字字符,仅在D列中获取数字值。

我不希望混乱文本中的字符总数超过20个。因此,此处的NumChars值为20。您可以根据需要增加此数字。

在此处应用上述通用公式,以去除非数字字符。

=TEXTJOIN(“”,TRUE,IFERROR(MID(C3,SEQUENCE(20),1)+0,””))

当您按下Enter键时。您将删除所有非数字字符。向下拖动此公式可从列C3中所有单元格的字符串中删除字符。

image

如何运作?

首先,让我们看看如何逐步解决此公式。

1→

TEXTJOIN(“”,TRUE,IFERROR(MID(C3,SEQUENCE(20),1)+0,””))

2→

TEXTJOIN(“”,TRUE,IFERROR(MID(“12asw12w123″,\{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}*,1)+0,””))

3→

TEXTJOIN(“”,TRUE,IFERROR(\{“1″;”2″;”a”;”s”;”w”;”1″;”2″;”w”;”1″;”2″;”3″;””;””;””;””;””;””;””;””;””}*+0,””))

4→

TEXTJOIN(“”,TRUE,IFERROR(\{1;2;#VALUE!;#VALUE!;#VALUE!;1;2;#VALUE!;1;2;3;#VALUE!;#VALUE!;…​;#VALUE!}*+0,””))

5→

TEXTJOIN(“”,TRUE,\{1;2;””;””;””;1;2;””;1;2;3;””;””;””;””;””;””;””;””;””}*)

6→ “1212123”

如您所见,公式从内部开始求解。首先,解决“ link:/ excel-365-functions-the-sequence-function-excel- [SEQUENCE function]”。由于我们已通过20。它将返回一个从1到20的数字数组。

该数组作为起始编号提供给MID功能。 mid函数转到字符串中的每个索引并分割每个字符。您可以在步骤3中看到它。接下来,我们向每个字符添加0。在excel中,如果您尝试将数字添加到非数字字符中,则会导致`link:/ tips-value-error-and-how-to-to-fixed-it-excel [#VALUE!“

错误]。这样我们得到了一个数字数组和#VALUE!错误。非数字字符现在消失了。

下一个IFERROR函数将所有#VALUE错误替换为“”(空白)。现在我们剩下的是数值和空格。

最后,此数组提供给TEXTJOIN函数。 TEXTJOIN函数将它们连接起来,我们得到一个仅包含数字的字符串。

增强公式

上面的公式使用一个硬编码的数字来处理字符数(我们花了二十个)。但是您可能希望它是动态的。在这种情况下,您猜对了,我们将使用LEN函数。将需要准确数量的字符进行处理。因此公式将是。

此处,LEN功能将自动检测字母数字字符串中的确切数字字符。这将减轻确定最大字符数的负担。

=TEXTJOIN(“”,TRUE,IFERROR(MID(jumbled_text,SEQUENCE(LEN(jumbled_text)*),1)+0,””))

SEQUENCE函数的替代项

如果您不想使用SEQUENCE函数,则可以将ROW和INDIRECT函数结合使用,以`link:/ information-formulas-how-to-sequential-row-number-excel-excel [生成序列号] `。

INDIRECT会将文本(“ 1:20”)转换为实际范围,然后ROW函数将列出从1到20的所有行号。(例如20可以是任何数字。)

=TEXTJOIN(“”,TRUE,IFERROR(MID(jumbled_text,ROW(INDIRECT(“1:”&`LEN`(jumbled_text)))*,1)+0,””))

是的,这是您如何从excel中的字母数字字符串中剥离非数字字符的方法。我希望我能提供足够的解释,并且本文对您有所帮助。如果您对此主题或任何其他excel / VBA主题有任何疑问。直到保持卓越。

相关文章:

链接:/ excel-text-formulas-split-numbers-and-text-from-string-in-excel [在Excel 2016及更早版本中,从字符串中拆分数字和文本]:当我们没有TEXTJOIN函数时,我们使用了向左和向右功能以及其他一些功能可从字符串中拆分数字和非数字字符。 `链接:/ excel-text-extract-text-extract-text-from-string-in-excel-using-excels中的左右函数[使用Excel的LEFT AND RIGHT函数从Excel中的字符串中提取文本]: *要从字符串中删除excel中的文本,我们可以使用excel的LEFT和RIGHT函数。这些功能可帮助我们动态地截断字符串。

在Excel中从文本中删除前导和尾随空格:*前导和尾随空格很难从视觉上识别并会弄乱您的数据。从字符串中删除这些字符是数据清理中的一项基本且最重要的任务。这是您可以在Excel中轻松完成的方法。

从右移字符:*要在Excel中从字符串的右移字符,请使用LEFT函数。是的,左功能。 LEFT函数保留LEFT中给定数量的字符,并从其右边删除所有内容。

link:/ excel-text-formulas-remove-unwanted-characters-in-excel [在Excel中删除不需要的字符]:*要在Excel中从字符串中删除不需要的字符,我们使用SUBSTITUTE函数。 SUBSTITUTE函数将给定字符替换为另一个给定字符,并产生一个新的更改的字符串。

如何从Excel中的某个位置开始删除Excel中的文本:*从以下位置删除文本字符串中的起始位置,我们使用Excel的REPLACE函数。此功能帮助我们确定要剥离的字符的起始位置和数量。

热门文章:

`链接:/ keyboard-formula-shortcuts-50-excel-shortcuts可提高您的生产率[50 Excel快捷方式以提高生产率]更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

link:/ vlookup-functions / formulas-and-functions-introduction- [如何使用Excel VLOOKUP函数]|这是excel中最常用和最受欢迎的功能之一,用于从不同范围和工作表中查找值。 link:/ tips-countif-in-microsoft-excel [如何使用]

link:/ vlookup函数的公式和函数介绍[Excel]

link:/ tips-countif-in-microsoft-excel [COUNTIF函数]|使用此惊人的功能对条件进行计数。

您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。

链接:/ excel-formula-and-function-excel-sumif-function [如何在Excel中使用SUMIF函数]这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。