Excel,MID,SEARCH错误
我有两个string,我想提取中间的数字“2200”我使用公式
=VALUE(MID(C3,SEARCH("_",C3)+11,4))
C3是string的地方。 这个公式工作“string2”,并给我的价值,我正在寻找“2200”,但不适用于“string1”我得到#VALUE !. 如果我改变公式
=VALUE(MID(C3,SEARCH("_",C3)+10,4))
它适用于“string1”,但不适用于“string2”我怎么能在这两种情况下有相同的公式工作?
string1:ABC_1A1B_33C_2200_4AB_ABC4_4800
string2:ABC_10A1B_33C_2200_4AB_ABC4_4800
谢谢,
只要示例2200
总是4位数字,这应该工作:
=LEFT(REPLACE(D7,1,FIND("@",SUBSTITUTE(D7,"_","@",3)),""),4)
如果你想提取的值总是在第四位,那么你可以尝试:
=INDEX(TRIM(MID(SUBSTITUTE(C3,"_",REPT(" ",99)),seq_99,99)),4,1)
其中seq_99
是一个命名公式,指的是:
=IF(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))=1,1,(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))-1)*99)
seq_99
将返回一个数组: {1,99,198,297,...,25146}
这不关心的长度,只是它是第四块:
=TRIM(MID(SUBSTITUTE(A1,"_",REPT(" ", 999)),3*999,999))
注意
上面的返回一个文本string,看起来像一个数字。 如果一个数字是想要的,那就把TRIM
replace成--
=--MID(SUBSTITUTE(A1,"_",REPT(" ", 999)),3*999,999)
该解决scheme基于数字的静态位置在第三和第四个下划线字符之间。
=--TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2, "_", REPT(" ", LEN(A2)), 4), "_", REPT(" ", LEN(A2)), 3), LEN(A2), LEN(A2)))
请注意双重一元 (又称双减号或--
),将文本看起来像一个数字转换为一个真正的数字。