使用VBA或公式查找数字文本string中的值

我需要在数字的文本string中find一个“。”的值。 将表示值之间的范围和“,”是两个值之间的中断。

例如:我需要确定116是否在文本string中

[000.117,119.131,137,140.999]

是的,116将在列表中,而136不会。

将有超过一千行,我将不得不testing,并在每一行(地区,部门和帐户)三个不同的值。 我只需要帮助公式或VBA代码开始testing值是否在文本string。 我唯一的select是强制五十个以上的文本string到一个数字列表,但文本string列表可能会改变每个月,这将需要几个小时将五十加文本string转换成数字列表。 谢谢。

不知道你的数据是如何布局的,但这应该让你开始。

这是一个函数,它有两个参数,一个是要search的string,另一个是您正在寻找的。

 Function checkRange(str As String, findStr As Long) As String Dim strArray() As String strArray() = Split(str, ",") Dim i As Long Dim rng() As String Dim bottom As Long, top As Long For i = LBound(strArray) To UBound(strArray) Debug.Print strArray(i) If InStr(1, strArray(i), ".") > 0 Then ' there is a decimal rng = Split(strArray(i), ".") bottom = rng(0) top = rng(1) If bottom <= findStr And top >= findStr Then 'MsgBox (findStr & " is in the range " & strArray(i)) checkRange = findStr & " is in the range " & strArray(i) Exit For Else checkRange = findStr & " is NOT in any range" End If End If If strArray(i) = findStr Then checkRange = findStr & " is in the range " & strArray(i) Exit For End If Next i End Function 

你可以这样称呼它:

checkRange "000.117,119.131,137,140.999", "116"

或在Excel单元格中:

在这里输入图像说明