Table of contents
本教程展示了如何使用Excel中的LEFT函数从文本串的开头获取子串,提取某个字符之前的文本,强制Left公式返回一个数字,以及更多。
在Microsoft Excel为处理文本数据提供的许多不同函数中,LEFT是使用最广泛的函数之一。 顾名思义,该函数允许你从文本字符串的左边开始提取一定数量的字符。 然而,Excel LEFT的功能远远超过其纯粹的本质。 在本教程中,你会发现几个基本的Left公式,以在了解了语法之后,我将向你展示一些方法,让你可以将Excel LEFT函数远远超出其基本用途。
Excel LEFT函数--语法
Excel中的LEFT函数返回从一个字符串开始的指定数量的字符(子串)。
LEFT函数的语法如下。
LEFT(text, [num_chars])在哪里?
- 文本 (必填)是你想从中提取子串的文本字符串。 通常它是对包含该文本的单元格的引用。
- Num_chars (可选) - 要提取的字符数,从字符串的左边开始。
- 如果 num_chars 如果省略,它默认为1,这意味着Left公式将返回1个字符。
- 如果 num_chars 的总长度大于 文本 ,一个Left公式将返回所有的 案文 .
例如,要从A2单元格的文本中提取前3个字符,使用这个公式。
=LEFT(A2, 3)
下面的屏幕截图显示了结果。
重要提示!LEFT属于文本函数的范畴,因此Left公式的结果总是一个 文字串 如果您正在处理一个数字数据集,并希望 LEFT 函数返回一个数字,请将其与 VALUE 函数结合使用,如本例所示。
如何在Excel中使用LEFT函数--公式实例
除了从字符串的左边提取文本外,LEFT函数还能做什么呢? 下面的例子显示了你如何将LEFT与其他Excel函数结合起来使用,以解决更复杂的任务。
如何提取某个字符之前的子串
在某些情况下,你可能需要提取文本字符串中某个特定字符之前的部分。 例如,你可能想从一列全名中提取名字,或从一列电话号码中获取国家代码。 问题是,每个名字和每个代码都包含不同数量的字符,因此你不能简单地提供一个预定义的数字给 num_chars 的参数,就像我们在上面的例子中所做的那样,你的左侧公式的参数。
如果姓和名之间用空格隔开,问题就归结为找出空格字符在字符串中的位置,这可以通过使用SEARCH或FIND功能轻松完成。
假设全名在A2单元格中,空格的位置由这个简单的公式返回:SEARCH(" ",A2))。 现在,你把这个公式嵌入在 num_chars 的参数。
=left(a2, search(" ", a2))
为了进一步改进公式,通过从搜索公式结果中减去1来摆脱尾部空格(在单元格中不可见,尾部空格可能导致许多问题,特别是如果你打算在其他公式中使用提取的名称)。
=left(a2, search(" ", a2)-1)
以同样的方式,你可以从一列电话号码中提取国家代码。 唯一不同的是,你使用搜索功能来找出第一个连字符("-")的位置,而不是空格。
=left(a2, search("-", a2)-1)
总结一下,你可以使用这个通用公式来获得一个在任何其他字符之前的子串。
LEFT( 绳子 , 搜索( 特征 , 绳子 ) - 1)如何从一个字符串中删除最后N个字符
你已经知道如何使用Excel LEFT函数从文本串的开始处获得一个子串。 但有时你可能想做一些不同的事情--从字符串的结尾处删除一定数量的字符,并将字符串的其余部分拉到另一个单元格。 为此,将LEFT函数与LEN结合使用,像这样。
LEFT( 字符串。 LEN( 绳子 ) - 要删除的字符数 )这个公式的工作原理是这样的:LEN函数得到一个字符串的总字符数,然后你从总长度中减去不需要的字符数,并让LEFT函数返回剩余的字符。
例如,要删除A2中文本的最后7个字符,使用这个公式。
=left(a2, len(a2)-7)
如下面的截图所示,该公式成功地切断了" - 要做的事" 后缀(4个字母,一个连字符和2个空格)从A列的文本字符串中选出。
如何强制LEFT函数返回一个数字
正如你已经知道的,Excel的LEFT函数总是返回文本,即使你从一个数字中抽出几个头位。 对你来说,这意味着你将不能在计算或其他对数字进行操作的Excel函数中使用Left公式的结果。
那么,如何让Excel LEFT输出数字而不是文本字符串呢? 只需将其包裹在VALUE函数中即可,该函数旨在将代表数字的字符串转换为数字,如图所示。 价值(LEFT())
例如,要从A2的字符串中提取前2个字符,并将输出转换为数字,请使用此公式。
=value(left(a2,2))
其结果将类似于这样。
正如你在上面的截图中看到的,B列中用Value Left公式得到的数字在单元格中是右对齐的,而A列中的文本是左对齐的。
这些只是LEFT在Excel中许多可能的用途中的一小部分。 要想仔细看看本教程中讨论的公式,欢迎下载Excel LEFT函数样本工作表。
关于更多的左派公式例子,请查看以下资源。
- 用逗号、冒号、斜线、破折号或其他分隔符分割字符串
- 如何通过换行来分割字符串
- 如何将8位数转换为日期
- 计算一个给定字符之前或之后的字符数量
- 阵列公式对不同范围内的数字进行不同的计算
Excel LEFT函数不工作--原因及解决方案
如果Excel LEFT函数在你的工作表中不能正常工作,很可能是因为以下原因之一。
1.Num_chars参数小于0
如果你的Excel Left公式返回#VALUE!错误,你要检查的第一件事是在 num_chars 如果是负数,只要去掉减号,错误就会消失(当然,不太可能有人故意在那里放一个负数,但犯错是人之常情 :)
大多数情况下,VALUE错误发生在 num_chars 在这种情况下,将该函数复制到另一个单元格,或在公式栏中选择该函数,然后按F9键,看看它相当于什么。 如果该值小于0,则检查该函数是否有错误。
为了更好地说明这一点,让我们来看看我们在第一个例子中用来提取国家电话代码的Left公式:LEFT(A2, SEARCH("-", A2)-1)。 正如你可能记得的那样,搜索函数在 num_chars 参数计算原始字符串中第一个连字符的位置,我们从中减去1,以从最终结果中去除连字符。 如果我不小心将-1替换成-11,该公式将通过#VALUE错误,因为 num_chars 参数等同于一个负数。
2.原始文本中的领先空格
如果你的Excel Left公式在没有明显原因的情况下失败了,请检查原始值是否有领先的空格。 如果你从网上复制了你的数据或从其他外部来源导出,许多这样的空格可能潜伏在文本条目之前而不被注意,你永远不会知道它们的存在,直到出现问题。 以下图片说明了这个问题。
要消除工作表中的前导空格,可以使用Excel的TRIM函数或Text Toolkit插件。
3.Excel中的LEFT不能与日期一起使用
如果你试图使用Excel的LEFT函数来获取一个日期的个别部分(如日、月或年),在大多数情况下,你将只检索到代表该日期的数字的前几位。 重点是,在Microsoft Excel中,所有的日期都存储为整数,代表自1900年1月1日以来的天数,这被存储为数字1(更多信息,请参见你在单元格中看到的只是日期的视觉表现,它的显示可以通过应用不同的日期格式轻松改变。
例如,如果你在A1单元格中有日期11-Jan-2017,你试图通过使用公式LEFT(A1,2)来提取日期,结果将是42,这是数字42746的前2位,在Excel内部系统中代表2017年1月11日。
要提取一个日期的特定部分,请使用以下函数之一:日、月或年。
如果你的日期是以文本字符串的形式输入的,LEFT功能将顺利工作,如截图的右边部分所示。
这就是你在Excel中使用LEFT函数的方法。 感谢你的阅读,希望下周再见到你。