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

如何用SEARCH函数定位kV前字符,判断电压是否符合系统要求?

问题场景

我手里有一批结尾带电压数值的字符串,比如:

  • "J7W237 20kV"
  • "LABEL34 v20/35kV"
    需要判断这些字符串里的电压是否符合系统要求。我本来打算用SEARCH函数定位"kV"的位置,再提取它前面两位字符,但搞不清Excel里的字符串索引怎么操作。目前在用的公式是:
=IF(U284=$F$275;IF(K284>0;IF(F21<SEARCH("kV";D284);"→";"");""))

我用VBA能轻松搞定,但想知道能不能直接用Excel公式简化处理。

Excel公式简化方案

1. 基础场景:提取单组电压值

如果字符串里只有一组电压(比如"20kV"这种),直接用MID结合SEARCH就能提取"kV"前两位:

=MID(D284, SEARCH("kV", D284)-2, 2)

原理就是先找到"kV"的起始位置,往前挪2位,从这个位置开始取2个字符。

2. 进阶场景:处理多电压值(带"/"的情况)

要是遇到"20/35kV"这种带多个电压的字符串,想提取最后一组数值(比如35),可以用下面的公式:

=RIGHT(SUBSTITUTE(LEFT(D284, SEARCH("kV", D284)-1), "/", REPT(" ", 99)), 2)

步骤拆解:

  • 先用LEFT(D284, SEARCH("kV", D284)-1)截掉"kV"及后面的内容,得到"J7W237 20"或者"LABEL34 v20/35"
  • 用SUBSTITUTE把所有"/"换成99个空格,确保后面的数值被挤到最右边
  • 最后用RIGHT取右边2位,就能拿到最后一组电压数值

3. 整合判断逻辑

把提取电压和你的原有判断逻辑结合,替换成下面的公式:

=IF(AND(U284=$F$275, K284>0), IF(--RIGHT(SUBSTITUTE(LEFT(D284, SEARCH("kV", D284)-1), "/", REPT(" ", 99)), 2) < F21, "→", ""), "")

这里的--是把提取到的文本型数字转成数值,方便和F21里的系统要求数值做比较。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:25:10