如何检查单元格是否仅包含特定列表中的字符?
How do I check if a cell only contains characters from a specific list?
我正在尝试检查数据列以查看其行是否仅包含特定字符。有问题的字符是 0
-9
和 /
。如果仅存在这些,则应返回 OK
,否则返回错误(或 1 和 0,任何可区分的都可以)。它基本上应该是这样的(粗体列):
我在 MATCH 和 VLOOKUP 方面取得的成功有限,但没有使用范围。首选公式,但 VBA 也很酷。有什么想法吗?
试试这个 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
使用公式(在 B1 中,如果 12
在 A1 中,则向下复制):
=IF(ISNUMBER(VALUE(SUBSTITUTE(A1,"/",""))),"OK","ERROR")
添加排除 .
使其更长一些:
=IF(AND(ISERROR(FIND(".",A1)),ISNUMBER(VALUE(SUBSTITUTE(A1,"/","")))),"OK","ERROR")
对于公式方法,以下 数组输入 公式将 return 为真或假,具体取决于是否存在不允许的字符。要确认公式,请按住 ctrl-shift 同时按 enter 并且 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 以 return 任何您想要的。
我正在尝试检查数据列以查看其行是否仅包含特定字符。有问题的字符是 0
-9
和 /
。如果仅存在这些,则应返回 OK
,否则返回错误(或 1 和 0,任何可区分的都可以)。它基本上应该是这样的(粗体列):
我在 MATCH 和 VLOOKUP 方面取得的成功有限,但没有使用范围。首选公式,但 VBA 也很酷。有什么想法吗?
试试这个 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
使用公式(在 B1 中,如果 12
在 A1 中,则向下复制):
=IF(ISNUMBER(VALUE(SUBSTITUTE(A1,"/",""))),"OK","ERROR")
添加排除 .
使其更长一些:
=IF(AND(ISERROR(FIND(".",A1)),ISNUMBER(VALUE(SUBSTITUTE(A1,"/","")))),"OK","ERROR")
对于公式方法,以下 数组输入 公式将 return 为真或假,具体取决于是否存在不允许的字符。要确认公式,请按住 ctrl-shift 同时按 enter 并且 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 以 return 任何您想要的。