Excel公式:条件格式,如果存在其他值

时间:2014-02-04 15:19:45

标签: excel logic conditional-statements formula conditional-formatting

这是我需要实现的目标:

如果单元格由管理员或经过身份验证的用户以外的值组成,我想更改单元格的格式。 如果它包含Administrator和Authenticated用户,则不会更改格式。 但是,如果它包含异常,例如“Everyone”或“Backup Operators”,则会标记单元格。 基本上,如果单元格包含Administrator或Authenticated User以外的任何内容,则单元格的格式会发生变化。

示例:

Administrator, Authenticated User           - Format Unchanged
Administrator                               - Format Unchanged
Authenticated User                          - Format Unchanged
Administrator, Authenticated User, Everyone - Format Changed
Everyone                                    - Format Changed

我尝试了多种方法来解决这个问题,但它们似乎并没有起作用。我使用公式来确定条件格式下的单元格格式。

=AND(NOT(ISERROR(SEARCH("Admin","CELL"))), NOT(ISERROR(SEARCH("Auth","CELL"))))

=NOT(OR(NOT(ISERROR(SEARCH("Admin",F132))), NOT(ISERROR(SEARCH("Auth",F132)))))

现在我被困住了,我不知道该怎么办。 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

如果单元格包含,请添加要突出显示的名称,只需使用包含的文本:

enter image description here

enter image description here

答案 1 :(得分:0)

@ user2140261提供的解决方案效果很好。但是,如果您想要一个更加动态的解决方案,您不必添加除“管理员”和“经过身份验证的用户”之外的所有可能性,那么您可以尝试使用此公式

=IF(LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"Administrator",""),"Authenticated User",""),", ",""),"ANOTHER NAME HERE", ""))>0,TRUE,FALSE)

从内到外打破这个公式

  • 您使用SUBSTITUTE在源单元格中用“”替换任何出现的Administrator
  • 您使用SUBSTITUTE在上面的结果中用“”替换任何出现的经过身份验证的用户
  • 您使用SUBSTITUTE在上面的结果中用“”替换任何出现的“,”
  • 您使用LEN来测试上面结果的长度,如果它大于0,那么管理员或经过身份验证的用户以外的其他内容就在单元格中。

结果是

Administrator, Authenticated User              FALSE
Authenticated User                             FALSE
Authenticated User, Administrator              FALSE
Authenticated User, Administrator, Everyone    TRUE
Everyone                                       TRUE

如果这是真的,那就意味着格式需要改变。

修改 为了说明您现在要添加/删除更多值并且能够轻松自定义它,最简单的方法是执行UDF:

Public Function SUBSTITUTEARRAY(ByVal Source As Range, ByVal Substitute As Range) As String

    Dim c       As Range
    Dim rtn     As String

    rtn = Source.Value

    For Each c In Substitute.Cells
        rtn = Application.WorksheetFunction.Substitute(rtn, c.Value, "")
    Next c

    SUBSTITUTEARRAY = rtn

End Function

您要调用的内容:=SUBSTITUTEARRAY(A1, F1:F5)其中A是您要检查的源单元格,F1:F5包含您要检查的值(“管理员”,“经过身份验证的用户”等... )

它将返回TRUEFALSE,具体取决于是否还有其他值,而不是单元格中的值。