我正在尝试检查数据列以查看其行是否仅包含特定字符。相关字符为0
- 9
和/
。如果仅存在那些,则应返回OK
,否则返回错误(或1和0,任何可区分的都可以)。它基本上应该是这样的(粗体列):
我在MATCH和VLOOKUP方面取得了有限的成功,但没有任何一个使用范围。一个公式将是首选,但VBA也很酷。有什么想法吗?
答案 0 :(得分:3)
使用公式(在B1中,如果12
在A1中,则向下复制):
=IF(ISNUMBER(VALUE(SUBSTITUTE(A1,"/",""))),"OK","ERROR")
添加排除.
会使其更长一些:
=IF(AND(ISERROR(FIND(".",A1)),ISNUMBER(VALUE(SUBSTITUTE(A1,"/","")))),"OK","ERROR")
答案 1 :(得分:1)
对于公式方法,以下数组输入公式将返回TRUE或FALSE,具体取决于是否存在不允许的字符。要确认公式,按住 ctrl-shift ,同时按输入,Excel将在公式周围放置大括号 {...} 。
=AND(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>=47,CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<=57)
您可以在IF函数中将其用作logical_test,以返回您想要的任何内容。
答案 2 :(得分:0)
试试这个 UDF():
Public Function CellTest(sIn As Variant) As String
Dim L As Long, i As Long, CH As String
L = Len(sIn)
For i = 1 To L
CH = Mid(sIn, i, 1)
If IsNumeric(CH) Or CH = "/" Then
Else
CellTest = "No Good"
Exit Function
End If
Next i
CellTest = "Good"
End Function