根据单元格区域中显示的字母来突出显示列中的单元格

我有一列表示项目进度(百分比),如果在相应的行中没有字母P ,它应该变成红色。 用下面的公式会发生一些奇怪的事情:

 =ISERROR(FIND("p",$H5:$Y65)) 

所以我已经设置P不是一个错误,并且不包含P的单元格应该被格式化为红色。 然而,用这个公式,只有在第一列有一个P ,也就是H才能格式化。 这个公式似乎忽略了H之后的所有其他列。

有什么build议么?

FIND没有你寻求的function,它在一个不在数组内的string内search。 尝试从相关列和HOME>样式 – 条件格式,新规则…中的第5行到第65行进行select, 使用公式确定要格式化哪些单元格,在此公式为真时格式化值

 =ISERROR(MATCH("P",$H5:$Y5,0)) 

格式化... ,select红色填充,确定,确定。

假定P是整个细胞的内容,而不仅仅是一部分。

我会重新考虑你的范围,你说相应的行,是Y65而不是Y5印刷错误? 如果用当前的公式填充,则会出现重叠的单元格,因为下一行将覆盖H6:Y66和范围H6:Y65将被再次检查。

这就是说,pnuts是正确的,但你可以用一个用户定义的函数来实现这个function,例如:

 Function BooleanRangeFind(SearchRange As Range, MatchCriteria As String, CaseSensative As Boolean) As Boolean Dim Rng As Range Dim CurStr As String 'checks and changes the MatchCriteria to Uppercase, this is 'the easiest way to ignore case sensativity If CaseSensative = False Then MC = UCase(MatchCriteria) 'iterates through each cell in the range and checks for the MatchCriteria 'in each cell For Each Rng In SearchRange 'Case Sensativity Check If CaseSensative = False Then CurStr = UCase(Rng.Value) Else CurStr = Rng.Value End If If InStr(1, CurStr, MC) <> 0 Then 'If the MC is in the Current Range 'the formula stops looking and returns 'a true BooleanRangeFind = True Exit Function End If Next Rng 'Default Value is False BolleanRangeFind = False End Function 

你的公式会在哪里

 =BooleanRangeFind($H6:$Y65,"p",False) 

或者如果我的假设是正确的:

 =BooleanRangeFind($H6:$Y6,"p",False)