Excel RIGHT函数与公式实例

  • Share This
Michael Brown

在过去的几篇文章中,我们讨论了不同的文本函数--那些用于处理文本字符串的函数。 今天我们的重点是RIGHT函数,它被设计用来从一个字符串的最右边返回指定数量的字符。 像其他Excel文本函数一样,RIGHT非常简单和直接,然而它有一些不显眼的用途,可能被证明有助于你的工作。

    Excel RIGHT函数的语法

    Excel中的RIGHT函数返回距离文本字符串末尾的指定字符数。

    RIGHT函数的语法如下。

    RIGHT(text, [num_chars])

    在哪里?

    • 文本 (required) - 你想从中提取字符的文本字符串。
    • Num_chars (可选) - 要提取的字符数,从最右边的字符开始。
      • 如果 num_chars 如果省略,将返回字符串的最后一个字符(默认)。
      • 如果 num_chars 大于字符串中的总字符数,则返回所有字符。
      • 如果 num_chars 是一个负数,右键公式会返回#VALUE!错误。

    例如,要从A2单元格的字符串中提取最后3个字符,请使用这个公式。

    =RIGHT(A2, 3)

    其结果可能与此类似。

    重要提示!Excel RIGHT函数总是返回一个 文字串 要强制右键公式输出一个数字,请将其与VALUE函数结合使用,如本例所示。

    如何在Excel中使用RIGHT函数--公式实例

    在现实生活中的工作表中,Excel RIGHT函数很少单独使用。 在大多数情况下,你将与其他Excel函数一起使用,作为更复杂公式的一部分。

    如何获得某个字符之后的子串

    如果你想提取某个特定字符后面的子串,可以使用SEARCH或FIND函数来确定该字符的位置,从LEN函数返回的字符串总长度中减去该位置,然后从原始字符串的最右边拉出这么多字符。

    右图( 绳子 , LEN( 绳子 ) - 搜索( 特征 , 绳子 ))

    比方说,A2单元格包含了用空格隔开的名字和姓氏,你想把姓氏拉到另一个单元格。 只要把上面的通用公式放在A2的位置,就可以了。 绳子 ,以及""(空格)的步伐。 字。

    =right(a2,len(a2)-search(" ",a2))

    该公式将产生以下结果。

    以类似的方式,你可以得到任何其他字符后面的子串,例如逗号、分号、连字符等。例如,要提取连字符后面的子串,使用这个公式。

    =right(a2,len(a2)-search("-",a2))

    其结果将与此相似。

    如何在最后一次出现的分隔符之后提取子串

    当处理包含同一分隔符多次出现的复杂字符串时,你可能经常需要检索最后一个分隔符出现的右边的文本。 为了使事情更容易理解,看看下面的源数据和期望的结果。

    正如你在上面的截图中所看到的,A列包含一个错误列表。 你的目标是提取每个字符串中最后一个冒号之后的错误描述。 另外一个复杂的问题是,原始字符串可能包含不同数量的分隔符实例,例如A3包含3个冒号,而A5只有一个。

    找到解决方案的关键是确定源字符串中最后一个分隔符的位置(本例中最后出现的是冒号)。 要做到这一点,你将需要使用一些不同的函数。

    1. 获取原始字符串中分隔符的数量。 这是一个简单的部分。
      • 首先,你用LEN函数计算出字符串的总长度:LEN(A2)
      • 其次,通过使用SUBSTITUTE函数计算没有定界符的字符串的长度,该函数将所有出现的冒号替换为空号:LEN(SUBSTITUTE(A2,":",")
      • 最后,用字符串的总长度减去没有分隔符的原始字符串的长度:LEN(A2)-LEN(SUBSTITUTE(A2,":",")

      为了确保公式的正确性,你可以在一个单独的单元格中输入它,结果将是2,也就是A2单元格中的冒号数量。

    2. 用一些独特的字符替换最后的分隔符。 为了提取字符串中最后一个分隔符之后的文本,我们需要以某种方式 "标记 "最后出现的分隔符。 为此,让我们用一个在原始字符串中没有出现的字符替换最后出现的冒号,例如用一个磅符号(#)。

      如果你熟悉Excel SUBSTITUTE函数的语法,你可能记得它有第四个可选参数(instance_num),允许只替换指定字符的特定出现。 由于我们已经计算了字符串中分隔符的数量,只需在另一个SUBSTITUTE函数的第四个参数中提供上述函数。

      =substitute(a2,":", "#",len(a2)-len( substitute(a2,":","))

      如果你把这个公式放在一个单独的单元格中,它将返回这个字符串。 ERROR:432#连接已超时

    3. 获取最后一个分隔符在字符串中的位置。 根据你用什么字符替换了最后一个分隔符,使用不区分大小写的SEARCH或区分大小写的FIND来确定该字符在字符串中的位置。 我们用#号替换了最后一个冒号,所以我们使用以下公式来找出它的位置。

      =search("#", substitute(a2,":", "#",len(a2)-len( substitute(a2,":",")))))

      在这个例子中,该公式返回10,也就是#在被替换字符串中的位置。

    4. 返回最后一个分隔符右边的子串。 现在你知道了字符串中最后一个分隔符的位置,你所要做的就是用字符串的总长度减去这个数字,然后让RIGHT函数从原始字符串的末尾返回这么多的字符。

      =right(a2,len(a2)-search("$",subsection(a2,":","$",len(a2)-len(subsection(a2,":",")))))

    如下面的截图所示,该公式工作得很完美。

    如果你正在处理一个大的数据集,不同的单元格可能包含不同的分隔符,你可能想把上述公式包含在IFERROR函数中,以防止可能的错误。

    =iferror(right(a2,len(a2)-search("$",substitute(a2,":","$",len(a2)-len(substitute(a2,":","))))),a2)

    如果某个字符串不包含一个指定的分隔符,将返回原始字符串,就像下面截图中的第6行。

    如何从一个字符串中删除前N个字符

    除了从字符串的末尾提取子串外,当你想从字符串的开头删除一定数量的字符时,Excel的RIGHT函数就会派上用场。

    在前面的例子中使用的数据集中,你可能想删除出现在每个字符串开头的 "ERROR "一词,只留下错误号码和描述。 要做到这一点,从字符串总长度中减去要删除的字符数,并将该数字提供给 num_chars 的参数。

    右图( 绳子 , LEN( 绳子 )- 要删除的字符数 )

    在这个例子中,我们从A2的文本字符串中移除前6个字符(5个字母和一个冒号),因此我们的公式如下。

    =right(a2, len(a2)-6)

    Excel的RIGHT函数可以返回一个数字吗?

    正如本教程开头所述,即使原始值是数字,Excel 中的 RIGHT 函数也总是返回文本字符串。 但是,如果您处理的是数字数据集,并且希望输出也是数字,该怎么办? 一个简单的变通方法是将 Right 公式嵌套到 VALUE 函数中,该函数专门用于将代表数字的字符串转换为数字。

    例如,要从A2的字符串中提取最后5个字符(邮编),并将提取的字符转换为数字,请使用此公式。

    =value(right(a2, 5))

    下面的截图显示了结果--请注意B列的数字是右对齐的,而A列的文本字符串是左对齐的。

    为什么RIGHT函数不能与日期一起使用?

    由于Excel的RIGHT函数是为处理文本字符串而设计的,而日期在Excel内部系统中是由数字表示的,所以Right公式不能检索日期的个别部分,如日、月或年。 如果你试图这样做,你将得到的只是代表日期的数字的最后几位。

    假设,你有日期 18-Jan-2017 如果你试图用RIGHT(A1,4)公式提取年份,结果将是2753,这是数字42753的最后4位,代表Excel系统中的2017年1月18日。

    "那么,我如何检索一个日期的某一部分呢?",你可能会问我。 通过使用以下函数之一。

    • 函数DAY提取一天: =DAY(A1)
    • 用函数MONTH得到一个月份: =MONTH(A1)
    • 用函数YEAR来拉出一个年份: =YEAR(A1)

    下面的屏幕截图显示了结果。

    如果你的 日期用文本字符串表示 当你从外部来源导出数据时,经常会出现这种情况,没有什么能阻止你使用RIGHT函数来提取字符串中代表日期的某一部分的最后几个字符。

    Excel RIGHT函数不工作--原因和解决方案

    如果一个正确的公式在你的工作表中不能正常工作,很可能是由于以下原因之一。

    1. 有一个或多个 后面的空格 要快速删除单元格中的多余空格,可以使用Excel的TRIM函数或Cell Cleaner插件。
    2. ǞǞǞ num_chars 论点是 小于零 当然,你很难故意在你的公式中加入一个负数,但如果 num_chars 参数由另一个Excel函数或不同函数的组合计算,而你的右键公式返回#VALUE!错误,请确保检查嵌套函数的错误。
    3. 原始值是一个 日期 如果你密切关注本教程,你已经知道为什么RIGHT函数不能与日期一起工作。 如果有人跳过了上一节,你可以在《为什么Excel的RIGHT函数不能与日期一起工作》中找到全部细节。

    这就是在Excel中使用RIGHT函数的方法。 如果想仔细看看本教程中讨论的公式,欢迎你下载下面的工作簿样本。 感谢你的阅读,希望下周在我们的博客上见到你。

    可用的下载

    Excel RIGHT函数--实例(.xlsx文件)

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.