You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LibreOffice或Google Sheets中提取::分隔分类的最后一项?

在LibreOffice/Google Sheets中提取多级分类的最后一项

针对用::分隔的多级分类数据,要提取最后一项,除了你尝试的统计最后::位置结合RIGHT的方法,还有更简洁的正则方案,同时也可以优化你原来的思路,以下是具体实现:

Google Sheets 解决方案

方法1:正则提取(最简洁)

直接用REGEXEXTRACT函数匹配字符串末尾的内容,无需计算分隔符位置:

=REGEXEXTRACT(A1, "[^::]+$")
  • 原理:[^::]+匹配任意不包含:的连续字符,$限定匹配范围为字符串末尾,自动提取最后一个::之后的内容,适配1-5级所有层级。

方法2:优化你原有的思路

如果你偏好使用RIGHT函数,可通过替换最后一个::来定位截取起点:

=RIGHT(A1, LEN(A1) - FIND("@", SUBSTITUTE(A1, "::", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "::", "")))))
  • 原理:先通过LEN(A1)-LEN(SUBSTITUTE(A1, "::", ""))统计::的总出现次数,再用SUBSTITUTE把最后一个::替换成特殊字符@,最后用FIND找到@的位置,通过RIGHT截取后续内容。

LibreOffice Calc 解决方案

方法1:正则提取

LibreOffice支持REGEX函数,用法和Google Sheets类似:

=REGEX(A1, "([^::]+)$", "$1")
  • 原理和上方正则方法一致,直接提取末尾非::的内容,适用于所有层级。

方法2:兼容原思路的截取方案

同样可以使用替换+截取的逻辑,公式和Google Sheets通用:

=RIGHT(A1, LEN(A1) - FIND("@", SUBSTITUTE(A1, "::", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "::", "")))))

内容的提问来源于stack exchange,提问作者Amanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:42:31