通过Excel中的文本操作节省时间

Microsoft Excel是所有需要处理大量数字(从学生到会计师)的人的主要应用程序。但是它的作用超越了大型数据库;它也可以在文本上做很多很棒的事情。下面列出的功能将帮助您分析,编辑,转换以及以其他方式对文本进行更改,并节省了许多无聊和重复的工作。

导航:非破坏性编辑|半角和全角字符|角色功能|文字分析功能|文字转换功能|文字编辑功能|文字替换功能|文字拼接功能|真实示例

使用Excel文本功能的原理之一是无损编辑的原理。简而言之,这意味着每当您使用函数对行或列中的文本进行更改时,该文本将保持不变,而新文本将被放置在新的行或列中。刚开始时这可能会使您迷失方向,但它可能非常有价值,尤其是当您使用的是巨大的电子表格时,如果编辑出错,将很难或无法重建。

可以继续将列和行添加到不断扩展的巨型电子表格中,一种利用此方法的方法是将原始电子表格保存在文档的第一张工作表中,然后将其编辑后的副本保存在其他工作表中。这样,无论您进行多少次编辑,都将始终拥有您正在使用的原始数据。

此处讨论的某些功能引用了单字节和双字节字符集,并且在我们开始之前,将它们弄清楚是很有用的。在某些语言中,例如中文,日文和韩文,每个字符(或多个字符)将有两种显示方式:一种以两个字节编码(称为全角字符),另一种以一个字节(半角)。您可以在这里看到这些字符的区别:

如您所见,双字节字符较大,通常更易于阅读。但是,在某些计算情况下,需要这些类型的编码中的一种或另一种。如果您不知道这意味着什么,或者为什么需要担心,那么很有可能不需要考虑。但是,如果您这样做的话,以下各节中包含的功能专门与半角和全角字符相关。

在Excel中使用单个字符的情况并不常见,但是情况确实偶尔出现。并且,当您使用它们时,这些功能就是您需要知道的。

CHAR接受一个字符号并返回相应的字符;例如,如果您有一个字符编号列表,则CHAR可以帮助您将其转变为更习惯使用的字符。语法非常简单:

=CHAR([text])

[text]可以采用单元格引用或字符的形式。所以= CHAR(B7)和= CHAR(84)都可以。请注意,使用CHAR时,它将使用您的计算机设置为的编码。因此您的= CHAR(84)可能与我的不同(特别是如果您使用的是Windows计算机,因为我使用的是Mac版Excel)。

如果要将数字转换为是Unicode字符数字,并且您正在使用Excel 2013,则需要使用UNICHAR函数。以前版本的Excel没有此功能。

如您所料,CODE和UNICODE与CHAR和UNICHAR函数完全相反:它们采用一个字符并返回编码的数字选择(或在您的计算机上将其设置为默认值)。要记住的重要一点是,如果在包含多个字符的字符串上运行此函数,它将仅返回字符串中第一个字符的字符引用。语法非常相似:

=CODE([text])

在这种情况下,[文本]是字符或字符串。而且,如果要使用Unicode引用而不是计算机的默认引用,则可以使用UNICODE(同样,如果您具有Excel 2013或更高版本)。

本节中的功能将帮助您获取有关以下内容的信息:单元格中的文本,这在许多情况下很有用。我们将从基础开始。

LEN是一个非常简单的函数:它返回字符串的长度。因此,如果您需要计算一堆不同单元格中的字母数,这是可行的方法。语法如下:

 =LEN([text])

[text]参数是您要计数的一个或多个单元格。在下面,您可以看到在包含城市名称“奥斯汀"的单元格上使用LEN函数时,它返回6。当在城市名称“ South Bend"上使用时,它返回10。空格被视为带有LEN的字符,因此,如果要使用它来计算给定单元格中的字母数,请记住这一点。

相关功能LENB的功能相同,但可处理双字节字符。如果要用LEN计算一系列四个双字节字符,结果将是8。使用LENB,它是4(如果您将DBCS设置为默认语言)。

您可能想知道如果只使用CTRL + F或“编辑">“查找",为什么要使用一个名为FIND的函数。答案在于使用该功能进行搜索的特殊性。您可以选择从每个字符串的哪个字符开始搜索,而不是搜索整个文档。语法将有助于清除这个令人困惑的定义:

=FIND([find_text], [within_text], [start_num])

[find_text]是您要查找的字符串。 [within_text]是Excel将在其中查找该文本的一个或多个单元格,[start_num]是它将查找的第一个字符。请务必注意,此功能区分大小写。让我们举个例子。

我更新了示例数据,以使每个学生的ID号都是一个六个字符的字母数字序列,每个序列都以一个数字开头,M代表“男性, ",用两个字母表示学生的学习水平(HP表示高,SP表示标准,LP表示低,UP / XP表示未知),以及最后两个数字。让我们使用FIND突出显示每位表现出色的学生。我们将使用以下语法:

=FIND("HP", A2, 3)

这将告诉我们HP是否出现在单元格的第三个字符之后。应用于ID列中的所有单元格,我们可以一眼看出学生的表现是否出色(请注意,该函数返回的3是找到HP的字符)。如果您有更多种类的序列,则可以更好地利用FIND,但是您可以理解。

与LEN和LENB一样,FINDB与FIND的用途相同,仅对字节字符集。这很重要,因为要指定某个字符。如果您使用的是DBCS,并且使用FIND指定第四个字符,则搜索将从第二个字符开始。 FINDB解决了这个问题。

请注意,FIND区分大小写,因此您可以搜索特定的大小写。如果要使用不区分大小写的替代方法,则可以使用SEARCH函数,该函数采用相同的参数并返回相同的值。

如果需要比较两个值以查看是否它们是相同的,EXACT是您需要的功能。当您为EXACT提供两个字符串时,如果两个字符串完全相同,则返回TRUE,否则返回FALSE。因为EXACT区分大小写,所以如果您给它提供读“ Test"和“ test"的字符串,它将返回FALSE。这是EXACT的语法:

=EXACT([text1], [text2])

这两个参数都是不言自明的。它们是您要比较的字符串。在电子表格中,我们将使用它们来比较两个SAT分数。我添加了第二行,并将其称为“已报告"。现在,我们将使用EXACT浏览电子表格,并使用以下语法查看报告分数与官方分数的不同之处:

=EXACT(G2,F2)

重复该操作列中每一行的公式为我们提供了这样的功能:

这些函数从一个单元格获取值并将其转换为另一种格式;例如,从数字到字符串或从字符串到数字。

TEXT将数字数据转换为文本并允许您以特定方式设置其格式,这有几种不同的选择方式供您选择。例如,如果您打算在Word文档中使用Excel数据,这可能会很有用。让我们看一下语法,然后看看如何使用它:

=TEXT([text], [format])

[format]参数使您可以选择希望数字在文本中出现的方式。您可以使用多种不同的运算符来设置文本格式,但是在这里我们将坚持简单的操作(有关详细信息,请参见TEXT上的Microsoft Office帮助页面)。 TEXT通常用于转换货币价值,因此我们从此开始。

我添加了一个名为“学费"的列,其中包含每个学生的数字。我们将该数字格式化为一个看起来有点像我们惯于读取货币值的字符串。我们将使用以下语法:

=TEXT(G2,"$#,###")

使用此格式字符串将为我们提供以美元符号开头的数字,并在百位数后添加一个逗号。将其应用于电子表格后,会发生以下情况:

每个数字现在都已正确设置格式。您可以使用TEXT设置数字,货币值,日期,时间的格式,甚至消除不重要的数字。有关如何执行所有这些操作的详细信息,请查看上面链接的帮助页面。

类似于TEXT,FIXED函数采用输入并将其格式化为文本;但是,FIXED专门用于将数字转换为文本,并为您提供一些用于格式化和舍入输出的特定选项。语法如下:

=FIXED([number], [decimals], [no_commas])

[number]参数包含对要转换为文本的单元格的引用。 [decimals]是一个可选参数,允许您选择转换中保留的小数位数。如果是3,则会得到一个数字13.482。如果对小数使用负数,Excel将舍入该数字。在下面的示例中,我们将对此进行研究。如果将[no_commas]设置为TRUE,则将从最终值中排除逗号。

我们将使用此值将在上一个示例中使用的学费值四舍五入到最接近的千位。

=FIXED(G2, -3)

应用于该行时,我们会得到一行舍入的学费值:

这与TEXT函数相反,它需要任何单元格并将其转换为数字。如果您导入电子表格或复制并粘贴大量数据并且将其格式化为文本格式,则此功能特别有用。解决方法如下:

=VALUE([text])

这就是全部。 Excel将识别常数,时间和日期的可接受格式,并将其转换为可以与数字函数和公式一起使用的数字。这是一个非常简单的示例,因此我们将跳过该示例。

类似于TEXT函数,DOLLAR可以将值转换为文本,但还会添加一个美元符号。您还可以选择要包含的小数位数:

=DOLLAR([text], [decimals])

如果将[decimals]参数保留为空白,则默认为2。如果为[decimals]参数包含负数,该数字将四舍五入到小数点左边。

还记得我们对单字节和双字节字符的讨论吗?这就是您在它们之间进行转换的方式。具体来说,此函数将全角双字节字符转换为半角单字节字符。它可以用来在电子表格中节省一些空间。语法如下:

=ASC([text])

非常简单。只需对要转换的任何文本运行ASC功能。为了查看效果,我将转换此电子表格,其中包含许多日语的片假名-它们通常呈现为全角字符。让我们将其更改为半角。

当然,如果可以转换一种方式,也可以转换回另一种方式。 JIS将半角字符转换为全角字符。就像ASC一样,语法也非常简单:

 =JIS([text])

这个想法非常简单,因此我们将不带示例继续进行下一部分。

最有用的东西之一您可以在Excel中使用文本来以编程方式对其进行编辑。以下功能将帮助您进行文本输入,并以最适合您的格式输入。

这些都是非常简单易懂的功能。 UPPER使文本变为大写,LOWER使文本变为小写,PROPER使每个单词的第一个字母大写,而其余字母均变为小写。这里不需要示例,所以我只给你语法:

=UPPER/LOWER/PROPER([text])

为[text]参数选择文本所在的单元格或单元格范围,然后就可以设置了

通常可以很好地将数据导入Excel,但是有时您最终会得到不需要的字符。当原始文档中有无法显示Excel的特殊字符时,这种情况最常见。不用遍历包含那些字符的所有单元格,可以使用如下所示的CLEAN函数:

=CLEAN([text])

[text]参数只是您要清除的文本的位置。在示例电子表格中,我为A列中的名称添加了一些不可打印的字符(第2行中有一个将名称推到右侧,第3行中有一个错误字符) 。我已经使用CLEAN函数将没有这些字符的文本传输到G列:

尽管CLEAN消除了不可打印的字符,但TRIM消除了文本开头或结尾的多余空格字符串,如果您从Word或纯文本文档中复制文本,则可能会以这些字符串结尾,并以类似“后续日期"结尾。 。 。要将其转换为“后续日期",只需使用以下语法:

=TRIM([text])

使用它时,会看到与使用CLEAN时类似的结果。

有时,您需要用其他字符字符串替换文本中的特定字符串。使用Excel公式比查找和替换要快得多,尤其是在使用非常大的电子表格的情况下。

如果要处理大量文本,有时您需要做一些重要的工作变化,例如将一个文本字符串减去另一个。也许您意识到一连串发票中的月份是错误的。或者您输入的人名不正确。无论如何,有时都需要替换字符串。这就是SUBSTITUTE的目的。语法如下:

=SUBSTITUTE([text], [old_text], [new_text], [instance])

[text]参数包含您要替换的单元格的位置,并且[old_text]和[new_text]很不言自明。 [instance]允许您指定要替换的旧文本的特定实例。因此,如果您只想替换旧文本的第三个实例,请为此参数输入“ 3"。 SUBSTITUTE将复制所有其他值(请参见下文)。

例如,我们将更正电子表格中的拼写错误。假设“檀香山"被意外地拼写为“檀香山"。这是我们用来更正它的语法:

=SUBSTITUTE(D28, "Honululu", "Honolulu")

这是运行此函数时发生的情况:

将公式拖到周围的单元格中后,您将看到D列中的所有单元格都已被复制,除了那些包含拼写错误的“ Honululu"(已替换为正确的拼写)的单元格。

REPLACE与SUBSTITUTE非常相似,但是代替替换特定的字符串,它将替换特定位置的字符。仔细看一下语法,可以清楚地知道该函数的工作方式:

=REPLACE([old_text], [start_num], [num_chars], [new_text])

[old_text]是您要在其中指定要替换文本的单元格的地方。[start_num]是您要输入的第一个字符要替换,[num_chars]是要替换的字符数。稍后我们将了解其工作原理。 [new_text]当然是要插入到单元格中的新文本-这也可以是单元格引用,这很有用。

让我们看一个例子。在我们的电子表格中,学生ID具有HP,SP,LP,UP和XP序列。我们希望摆脱它们,并将它们全部更改为NP,这将需要很长时间才能使用SUBSTITUTE或Find and Replace。这是我们将使用的语法:

=REPLACE(A2, 3, 2, "NP")

应用于整个列,我们将得到以下内容:

列A中所有两个字母的序列都已替换为“

除了更改字符串外,您还可以使用较小的字符串(或将这些字符串作为较小的字符串组成较大的字符串)来做事。这些是Excel中一些最常用的文本函数。

这是我本人使用过多次的函数。当您需要将两个单元格加在一起时,CONCATENATE是您的功能。语法如下:

=CONCATENATE([text1], [text2], [text3]...)

使串联如此有用的原因是[text]参数可以是纯文本,例如“ Arizona",也可以是单元格引用,例如“ A31"。您甚至可以将两者混合使用。当您需要合并两列文本时(例如需要从“名字"和“姓氏"列创建“全名"列),这可以节省大量时间。这是我们用来执行此操作的语法:

=CONCATENATE(A2, " ", B2)

请注意,第二个参数是空格(键入为quotation-mark-space-qoutation-mark)。没有这个,名字将被直接连接起来,名字和姓氏之间没有空格。让我们看看运行此命令并在列的其余部分上使用自动填充会发生什么情况:

现在,我们有了一个包含所有人全名的列。您可以轻松地使用此命令来组合区号和电话号码,姓名和雇员编号,城市和州,甚至是货币符号和金额。
在大多数情况下,您可以将CONCATENATE函数缩短为一个“&"号。要使用“&"号创建上述公式,请输入以下内容:

=A2 & " " & B2

您还可以使用它来组合单元格引用和文本行,例如:

=E2 & ", " & F2 & ", USA"

带有城市和州名称的单元格,并将它们与“ USA"组合以获得完整的地址,如下所示。

通常,您只想处理文本的前几个(或最后一个)字符串。 LEFT和RIGHT通过从字符串中最左边或最右边的字符开始仅返回一定数量的字符来使您做到这一点。语法如下:

=LEFT/RIGHT([text], [num_chars])

[text]当然是原始文本,[num_chars]是您要返回的字符数。让我们看一下您何时需要执行此操作的示例。假设您导入了许多地址,并且每个地址都包含州名和国家/地区。我们可以使用以下语法使用LEFT来获取缩写:

=LEFT(E2, 2)

这是应用于电子表格的样子:

如果缩写是在状态之后出现的,我们

MID很像LEFT和RIGHT,但是可以让您从指定位置开始将字符从字符串中间拉出。让我们看一下语法,以确切了解其工作原理:

=MID([text], [start_num], [num_chars])

[start_num]是将返回的第一个字符。这意味着,如果希望将字符串的第一个字符包含在函数的结果中,则该字符将为“ 1"。[num_chars]是要返回的起始字符之后的字符数。我们将对此进行一些文本清理。在示例电子表格中,我们现在将标题添加到了姓氏中,但是我们希望将其删除,以使姓氏为“先生"。 Martin"将返回为“ Martin"。语法如下:

=MID(A2, 5, 15)

我们将使用“ 5"作为起始字符,因为此人姓名的第一个字母是第五个字符(“ Mr. "(占据四个空格)。该函数将返回接下来的15个字母,该字母应该足以不切断任何人名字的最后一部分。这是Excel中的结果:

根据我的经验,我发现将MID与其他功能结合使用时,它最有用。假设此电子表格不仅包含男性,还包含女性,她们的头衔可能为“女士"或“女士"。那我们该怎么办?您可以将MID与IF结合使用以获取名字,而不管标题如何:

=IF(LEFT(A2, 3)="Mrs", MID(A2, 6, 16), MID(A2, 5, 15)

I’ll let you figure out exactly how this formula works its magic (you may need to review Excel’s boolean operators ).

如果您需要输入一个字符串并重复多次,而又不想一遍又一遍地输入, REPT可以提供帮助。给REPT一个字符串(“ abc")和要重复的次数(3),Excel会给您准确的要求(“ abcabcabc")。这是非常简单的语法:

=REPT([text], [number])

[text]显然是基本字符串; [number]是您希望重复的次数。尽管我还没有很好地使用此功能,但是我敢肯定有人可以将其用于某些用途。我们将使用一个示例,尽管它并不是完全有用,但可以向您展示此功能的潜力。我们将结合REPT和“&"创建新内容。语法如下:

="*<---" & REPT("*", 9) & "--->*"

结果显示如下:

为了让您了解如何在现实世界中使用文本函数,我将提供我在自己的工作中将MID与多个条件组合的示例。对于我的研究生心理学学位,我进行了一项研究,参与者必须单击两个按钮之一,并记录该单击的坐标。屏幕左侧的按钮标记为A,右侧的按钮标记为B。每个试验都有正确的答案,每个参与者进行了100次试验。

要分析此数据,我需要看看每个参与者正确的试验次数。经过一番清理后,结果电子表格如下所示:

每个试验的正确答案列在D列中,点击坐标列在F和G列中(它们是“重新格式化为文本,这很复杂)。开始时,我只是简单地进行了手工分析。如果D列表示“ optiona",而F列的值为负,则我将输入0(代表“错误")。如果是正数,则输入1。如果D列显示“ optionb",则相反。

经过一番修补,我想出了一种使用MID函数执行为我工作。这是我使用的方法:

=IF(D3="optiona", IF(MID(F3,2,1)="-",1,0), IF(MID(F3,2,1)="-",0,1))

让我们分解一下。从第一个IF语句开始,我们具有以下内容:“如果单元格D3表示'optiona',则[first conditional];第一个条件这样说:“如果单元格F3的第二个字符是连字符,则返回true;否则,返回true。第三句说:“如果单元格F3的第二个字符是连字符,则返回false;否则,返回false。

可能需要花一些时间来解决这个问题,但是应该弄清楚。简而言之,此公式检查D3是否显示“ optiona";如果是,并且F3的第二个字符是连字符,则函数返回“ true"。如果D3包含“ optiona",而F3的第二个字符不是连字符,则返回“ false"。如果D3 不包含“ optiona"并且F3的第二个字符是连字符,则返回“ false"。如果D3没有说“ optiona"并且F2的第二个字符不是连字符,则返回“ true。"

这是您运行公式时电子表格的外观:

现在,“得分"列包含参与者正确回答的每个试验的1和一个每次回答不正确时为0。从那里开始,可以很容易地对值进行汇总,以查看有多少正确的值。

我希望本示例可以使您了解在处理不同类型的文本时如何创造性地使用文本函数的想法。数据。 Excel的功能几乎是无限的,如果您花时间想出一个可以为您完成工作的公式,则可以节省大量的时间和精力!

Excel Text Mastery

在处理数字方面,Excel是强大的力量,但它还有许多令人惊讶的有用文本功能。如我们所见,您可以分析,转换,替换和编辑文本,并将这些功能与其他功能组合在一起进行一些复杂的计算和转换。

从发送电子邮件开始。学习使用这些文本功能将使您距离成为Excel大师更近一步。

让我们知道您如何在Excel中使用文本操作!您完成的最复杂的转换是什么?

标签: Longform Guide Microsoft Excel