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

Excel中使用TEXTSPLIT函数获取倒数第三个元素的问题

在Excel中用TEXTSPLIT获取字符串倒数第三个元素的方法

原始目标字符串:

Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP

你之前尝试的=INDEX(TEXTSPLIT(...),-3)报错,是因为Excel的INDEX函数不支持负索引直接从数组末尾取值;而=RIGHT(TEXTSPLIT(...),3)是对每个拆分出的元素截取右侧3个字符,并非获取倒数第三个元素,所以结果不符合预期。

正确解决方案

由于按冒号拆分后会产生大量空值和带首尾空格的元素,需要先过滤无效内容,再定位倒数第三个元素。推荐用LET函数简化公式(Excel 365及以上版本支持):

=LET(
    splitArr, TEXTSPLIT("Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP", ":"),
    filteredArr, FILTER(splitArr, TRIM(splitArr) <> ""),
    INDEX(filteredArr, ROWS(filteredArr) - 2)
)

公式说明

  1. 拆分字符串:TEXTSPLIT按冒号拆分原始字符串,得到包含空值、带空格元素的数组。
  2. 过滤无效元素:用TRIM去掉每个元素的首尾空格,再通过FILTER筛选出非空的有效元素,最终得到干净数组:{"Apache Commons Compress";"1.21";"1";"Apache Commons Compress";"1.21";"BLACKDUCK";"No CAP"}。
  3. 定位倒数第三个元素:ROWS(filteredArr)获取有效数组的总行数,减2得到倒数第三个元素的位置,最后用INDEX提取该元素,结果为1.21。

如果你的Excel版本不支持LET,可以使用嵌套公式:

=INDEX(FILTER(TEXTSPLIT("Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP", ":"), TRIM(TEXTSPLIT("Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP", ":")) <> ""), ROWS(FILTER(TEXTSPLIT("Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP", ":"), TRIM(TEXTSPLIT("Apache Commons Compress:1.21:1 : Apache Commons Compress : 1.21 : BLACKDUCK : No CAP", ":")) <> "")) - 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:46:09