条件格式检查列是否符合特定格式

问题描述 投票:0回答:2

我希望 Excel 中的列仅允许具有以下格式的值:628-XXXX-A(其中 XXXX 可以是 0001 到 00125 之间的数字),否则我希望单元格颜色为红色。

有谁知道这个公式怎么写?

非常感谢!

excel excel-formula conditional-formatting
2个回答
0
投票

如上所述,您可以尝试在

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
破折号之前的数字来计算.



0
投票

如果您坚持使用条件格式来执行此操作,我建议您为此使用 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)
,它向您显示结果的样子,并可用于调试目的。

© www.soinside.com 2019 - 2024. All rights reserved.