我希望 Excel 中的列仅允许具有以下格式的值:628-XXXX-A(其中 XXXX 可以是 0001 到 00125 之间的数字),否则我希望单元格颜色为红色。
有谁知道这个公式怎么写?
非常感谢!
如上所述,您可以尝试在
Conditional Formatting
或 Data Validation
中使用以下公式之一
在
Conditional Formatting
中,如果应用了规则,则会将那些违规的突出显示为 Red
,并且如果在 Data Validation
中使用,可以使用 Custom Validation Option
来停止输入那些不符合条件的值。
• 单元格中使用的公式 B1
=AND(ISNUMBER(-LEFT(A1,3)), --MID(A1,5,4) >= 1, --MID(A1,5,4) <= 125)
或者,
• 公式也可以在单元格中使用 B1
=LET(α,LEFT(TEXTAFTER(B1,"-"),4)/1,AND(ISNUMBER(TEXTBEFORE(B1,"-")/1),α>=1,α<=125))
注意:上述公式没有考虑
9th
和10th
字符,它完全基于第一个3
数字以及1st
破折号之后和2nd
破折号之前的数字来计算.
如果您坚持使用条件格式来执行此操作,我建议您为此使用 UDF(用户定义函数),例如:
Function isCorrectFormat(r As Range)
Test = Split(r.Value, "-")
bResult = True
If Test(0) <> "628" Then
bResult = False
End If
If (CInt(Test(1)) < 1) Or (CInt(Test(1)) > 125) Then
bResult = False
End If
If Test(2) <> "A" Then
bResult = False
End If
isCorrectFormat = bResult
End Function
将其构建到 Excel 工作表中会产生以下结果:
供您参考:“B”列包含公式
=IsCorrectFormat(Ax)
,它向您显示结果的样子,并可用于调试目的。