excel 怎么用函数公式查找出字符串在另一个字符串中的位置?

excel 怎么用函数公式查找出(返回)字符串“学历”在用分隔符“_”分隔字符串“姓名_姓别_年龄_学历_职务”中的位置(求返回结果为数字4的公式)。要求:“学历"是已知值,先要判断“学历"是否存在字符串“姓名_姓别_年龄_学历_职务”中,若存在其中,再找出“学历"在第几个位置(在第几段),结果应返回为数字“4”。公式要求同时能满足其它字段的查找和返回段落位置。若不存在,则返回0。

Function 找位置(a As String, c As String)
b = Split(a, "_", -1, 1)
For i = 0 To UBound(b)
If c = b(i) Then 找位置 = i + 1
Next
If 找位置 = 0 Then
Dim arr(1 To 6000, 1 To 1)
If 找位置 = 0 Then
arr(1, 1) = "c"
If arr(1, 1) = "c" Then
arr(2, 1) = "h"
If arr(2, 1) = "h" Then
arr(3, 1) = "r"
If arr(3, 1) = "r" Then
arr(4, 1) = "v"
If arr(4, 1) = "v" Then
arr(5, 1) = "x"
If arr(5, 1) = "x" Then
arr(6, 1) = "i"
If arr(6, 1) = "i" Then
arr(7, 1) = "n"
End If
End If
End If
End If
End If
End If
End If
For j = 1 To 7
t = t & arr(j, 1)
Next
找位置 = t
End If
End Function

追问

谢谢您。但你提供的不是我要的“怎么用函数公式”,请看清标题。我不需要VBA代码。

追答

哦,不好意思,函数公式也是vba代码定义的,只不过一个是系统内置,一个是自己设计而已。我以为是公式能满足你的需求就行。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-09-26

假设字符串数据在A列

=LOOKUP(IFERROR(FIND("学历",A1),0),{0,1,4,7,10,13},{0,1,2,3,4,5})

下拉填充公式。

追问

每段的字符数不是固定长度(是未知长度的)的怎么办?例如:姓名_家庭住址_.....

追答

=IFERROR(LEN(LEFT(A1,FIND("学历",A1,1)))-LEN(SUBSTITUTE(LEFT(A1,FIND("学历",A1,1)),"_",""))+1,0)
数学历前有几个"_"。

追问

谢谢您的辛苦。不仅分隔符"_"是未知的,多少个不清楚的。

追答

=IFERROR(LEN(LEFT(A1,FIND("学历",A1,1)))-LEN(SUBSTITUTE(LEFT(A1,FIND("学历",A1,1)),MIDB(A1,SEARCHB("?",A1),1),""))+1,0)
分隔符为单字节字符(不会同一字符串中,还有不同的分隔符混用吧)

第2个回答  2020-09-26
excel 用find函数fi可以查找出字符串在另一个字符串中的位置。这个函数可以用来对字符串进行定位,确定子串开始的位置,如果没有找到纸船,则返回0
第3个回答  2020-09-26
这个三用可以用函数公式查出字符串在另一个字符串中的位置。
第4个回答  2020-09-26
这部上的位置到底在哪里吧?其中到那个设置里面打开那个拉开下拉的那个选项题了。
相似回答