Table of contents
在本教程中,我们将继续探索Excel条件格式化的迷人世界。 如果你在这方面感觉不是很舒服,你可能想先看一下以前的文章,重新了解一下基础知识--如何在Excel中使用条件格式化。
今天我们要讨论的是如何使用Excel公式,根据你指定的值或根据另一个单元格的值来格式化单个单元格和整个行。 这通常被认为是Excel条件格式化的高级特技,一旦掌握,它将帮助你将电子表格中的格式远远超出其普通用途。
基于另一个单元格值的Excel条件格式化
Excel的预定义条件格式化,如数据条、颜色标度和图标集,主要是为了根据单元格自身的值进行格式化。 如果你想根据另一个单元格应用条件格式化,或根据单个单元格的值格式化整个行,那么你就需要使用公式。
因此,让我们看看如何使用公式制定规则,之后讨论具体任务的公式例子。
如何创建基于公式的条件格式化规则
要在Excel 2010到Excel 365的任何版本中设置基于公式的条件格式化规则,请执行以下步骤。
- 选择你要格式化的单元格,你可以选择一列、几列或整个表格,如果你想把条件格式应用于行。
提示:如果你计划在未来添加更多的数据,并希望条件格式化规则能自动应用于新的条目,你可以选择。
- 将一个单元格区域转换为一个表格( 插入标签> 表 在这种情况下,条件格式化将自动应用于所有新行。
- 在你的数据下面选择一些空行,比如100个空行。
- 关于 首页 选项卡,在 风格 组,点击 条件格式化> 新规则...
- 在 新的格式化规则 窗口,选择 使用一个公式来决定哪些单元格需要格式化 .
- 在相应的框中输入公式。
- 点击 格式... 按钮来选择你的自定义格式。
- 之间切换。 字体 , 边境 和 填充 标签,玩弄不同的选项,如字体风格、图案颜色和填充效果,以设置最适合你的格式。 如果标准调色板不够用,请点击 更多颜色... 选择任何你喜欢的RGB或HSL颜色。 完成后,点击 认可 按钮。
- 请确保 预览 部分显示你想要的格式,如果有,请点击 认可 如果你对格式预览不是很满意,请点击 格式... 按钮,并进行编辑。
提示:每当你需要编辑一个条件格式化公式时,按F2键,然后用方向键移动到公式中需要的位置。 如果你不按F2键而尝试箭头操作,一个范围将被插入到公式中,而不是仅仅移动插入指针。 要在公式中添加某个单元格引用,第二次按F2键,然后点击该单元格。
Excel条件格式化公式实例
现在你知道了如何基于另一个单元格创建和应用Excel条件格式,让我们继续看看如何在实践中使用各种Excel公式。
提示:为了使你的Excel条件格式化公式能够正确工作,请始终遵循这些简单的规则。
用公式来比较数值(数字和文本)。
正如你所知道的,Microsoft Excel提供了一些现成的规则,以使单元格的值大于、小于或等于你指定的值( 条件性格式化>高亮单元格规则 然而,如果你想有条件地格式化某些列或整个行,这些规则就不起作用了 基于一个单元格在另一列中的值。 在这种情况下,你使用类似的公式。
状况 | 公式示例 |
---|---|
等于 | =$B2=10 |
不等于 | =$B210 |
大于 | =$B2>10 |
大于或等于 | =$B2>=10 |
少于 | =$B2<10 |
小于或等于 | =$B2<=10 |
之间的关系 | =AND($B2>5, $B2<10) |
下面的屏幕截图显示了一个例子 大于公式 请注意,该公式只适用于A列($A$2:$A$8)。 但如果你选择整个表格(在我们的例子中,$A$2:$E$8),这将根据C列的值来突出整个行。
以类似的方式,你可以创建一个条件格式化规则来比较两个单元格的值。 例如。
=$A2<$B2
- 如果A列中的一个值小于B列中的相应值,则格式化单元格或行。
=$A2=$B2
- 如果A列和B列中的值相同,则格式化单元格或行。
=$A2$B2
- 如果A列中的数值与B列中的数值不一致,则格式化单元格或行。
正如你在下面的截图中所看到的,这些公式既适用于文本值,也适用于数字。
AND和OR公式
如果你想根据2个或更多的条件来格式化你的Excel表格,那么请使用=AND或=OR函数。
状况 | 公式 | 描述 |
---|---|---|
如果两个条件都满足 | =AND($B2<$C2, $C2<$D2) | 如果B列中的值小于C列中的值,则形成单元格。 和 如果C列的值小于D列的值。 |
如果满足其中一个条件 | =OR($B2<$C2, $C2<$D2) | 如果B列中的值小于C列中的值,则形成单元格。 或 如果C列的值小于D列的值。 |
在下面的截图中,我们使用的公式是 =AND($C2>0, $D2="全球")
如果库存商品的数量(C列)大于0,并且如果产品发往世界各地(D列),则改变行的背景颜色。 请注意,该公式适用于 文本值 以及与 数字 .
当然,你可以在你的AND和OR公式中使用两个、三个或更多的条件。 要看这在实践中是如何运作的,请看视频:基于另一个单元格的条件格式化。
这些是你在Excel中使用的基本条件格式化公式。 现在我们来考虑一个更复杂但更有趣的例子。
空和非空单元格的条件格式化
我想每个人都知道如何在Excel中格式化空和非空单元格--你只需创建一个新的" 只格式化包含""的单元格 类型,并选择 空白 或 没有空白 .
但是,如果你想在某一列的单元格为空或不为空的情况下对其进行格式化,怎么办? 在这种情况下,你将需要再次利用Excel公式。
空白的公式 : =$B2=""
- 如果B列中的相应单元格为空白,则格式化所选单元格/行。
非空白的公式 : =$B2""
- 如果B列中的相应单元格不是空白,则格式化选定的单元格/行。
注意:上面的公式对 "视觉上 "为空或不为空的单元格都有效。 如果你使用一些返回空字符串的Excel函数,如 =if(false, "OK", "" )
而你不希望这样的单元格被当作空白,请使用以下公式代替 =isblank(A1)=true
或 =isblank(A1)=false
分别用于格式化空白和非空白单元。
下面是一个如何在实践中使用上述公式的例子。 假设,你有一列(B),它是" 销售日期 "和另一栏(C)" 交付 "这两列只有在完成销售和交付物品时才有价值。 因此,你希望当你完成销售时,整个行变成橙色;而当物品交付时,相应的行应该变成绿色。 为了实现这一目标,你需要用以下公式创建2个条件格式化规则。
- 橙色行(B列的单元格不是空的)。
=$B2""
- 绿色行(B列和C列的单元格不为空)。
=and($b2"", $c2"")
你还要做的一件事是将第二条规则移到顶部,并选择 如果是真的就停止 该规则旁边的复选框。
在这种特殊情况下,"如果为真则停止 "选项实际上是多余的,无论是否有这个选项,该规则都会起作用。 你可能想勾选这个框,只是作为一种额外的预防措施,以防你在未来添加一些其他规则,可能与任何现有的规则相冲突。
欲了解更多信息,请参见Excel空白单元格的条件格式化。
用Excel公式来处理文本值
如果你想在同一行的另一个单元格包含某个单词时对某一(些)列进行格式化,你可以使用前面一个例子中讨论的公式(如=$D2="Worldwide")。 然而,这只适用于 完全匹配 .
对于 部分匹配 你将需要使用SEARCH(不区分大小写)或FIND(区分大小写)。
例如,如果D列中的相应单元格包含""字样,要对选定的单元格或行进行格式化。 全球范围内 这个公式将找到所有这样的单元格,无论指定的文本在单元格中位于何处,包括" "。 运送到世界各地 ", " 全球范围内,除... ",等等。
=SEARCH("Worldwide", $D2)>0
如果你想在选定的单元格或行的内容以搜索文本开始时对其进行阴影处理,请使用这一项。
=SEARCH("Worldwide", $D2)>1
用Excel公式来突出显示重复的内容
如果你的任务是有条件地格式化有重复值的单元格,你可以使用下面的预定义规则。 条件格式化> 突出显示单元格规则> 重复值... 以下文章对如何使用这一功能提供了详细的指导:如何在Excel中自动突出显示重复的内容。
然而,在某些情况下,当另一列出现重复值时,如果你给选定的列或整个行着色,数据看起来会更好。 在这种情况下,你将需要再次使用Excel条件格式化公式,这次我们将使用 COUNTIF 如你所知,这个Excel函数计算指定范围内符合单一标准的单元格的数量。
突出显示重复的内容,包括第一次出现的内容
=COUNTIF($A$2:$A$10,$A2)>1
- 这个公式可以找到A列(本例中为A2:A10)中指定范围内的重复值,包括首次出现的值。
如果你选择将规则应用于整个表格,整个行将被格式化,就像你在下面的截图中看到的那样。 我决定在这个规则中改变一种字体颜色,只是为了改变一下: )
突出显示没有第1次出现的重复内容
要忽略第一次出现的情况,只突出显示随后的重复值,请使用这个公式。 =COUNTIF($A$2:$A2,$A2)>1
突出显示Excel中的连续重复部分
如果你想只突出显示连续行上的重复内容,你可以通过以下方式实现。 这种方法适用于任何数据类型:数字、文本值和日期。
- 选择你想突出显示重复的那一列。 不含列标题 .
- 使用这些简单的公式创建一个(多个)条件格式化规则。
规则1(蓝色)。
=$A1=$A2
- 突出显示第2次出现的情况和所有后续出现的情况,如果有的话。规则2(绿色)。
=$A2=$A3
- 突出了第1次发生的情况。
在上述公式中,A是你要检查的重复列,$A1是列头,$A2是有数据的第一个单元格。
重要的是! 为了使公式正常工作,规则1(突出显示第2个和所有后续的重复出现)应该是列表中的第一条规则,这一点至关重要,特别是如果你使用两种不同的颜色。
突出显示重复的行
如果你想在两列或多列出现重复值时应用条件格式,你将需要在你的表中添加一个额外的列,在这个列中,你可以使用一个简单的公式将关键列中的值连接起来,比如下面这个公式 =A2&B2
之后,你可以使用COUNTIF公式的任何一种变体来应用规则,以处理重复的情况(有或没有第一次出现)。 当然,你可以在创建规则后隐藏一个额外的列。
或者,你可以使用COUNTIFS函数,该函数支持一个公式中的多个条件。 在这种情况下,你将不需要一个辅助列。
在这个例子中,为了突出显示重复的行 有第1次出现的 ,用以下公式创建一个规则。
=COUNTIFS($A$2:$A$11, $A2, $B$2:$B$11, $B2)>1
要突出显示重复的行 没有第1次出现的情况 ,使用这个公式。
=COUNTIFS($A$2:$A2, $A2, $B$2:$B2, $B2)>1
比较2列的重复情况
在Excel中最常见的任务之一是检查2列的重复值--即找到并突出显示两列中都存在的值。 要做到这一点,你需要为每一列创建一个Excel条件格式化规则,其中包括以下组合 =ISERROR()
和 =MATCH()
职能。
对于A栏。 =iserror(match(a1,$b$1:$b$10000,0))=false
对于B列。 =iserror(match(b1,$a$1:$a$10000,0))=false
注意:要使这种条件公式正确工作,非常重要的是,你要将规则应用于整个列,如 =$A:$A
和 =$B:$B
.
你可以在下面的截图中看到一个实际使用的例子,它突出了E列和F列中的重复。
正如你所看到的,Excel条件格式化公式可以很好地处理重复的问题。 然而,对于更复杂的情况,我建议使用Duplicate Remover插件,它是专门用来寻找、突出显示和删除Excel中的重复内容,在一个工作表或两个电子表格之间。
用公式强调高于或低于平均水平的数值
当你处理几组数字数据的时候,你会发现 AVERAGE() 函数在格式化那些数值低于或高于某一列平均数的单元格时可能会很有用。
例如,你可以使用公式 =$E2
=$E2>AVERAGE($E$2:$E$8)
.
如何在Excel中突出显示最近的数值
如果我有一组数字,有没有办法用Excel的条件格式化来突出显示这组数字中最接近零的那一个? 这是我们的一位博客读者杰西卡想知道的。 这个问题非常清晰明了,但是答案对于评论区来说有点太长了,这就是为什么你会在这里看到一个解决方案 :)
例1.找到最接近的值,包括完全匹配的值
在我们的例子中,我们将找到并突出显示最接近0的数字。 如果数据集包含一个或多个0,那么所有的0都将被突出显示。 如果没有0,那么最接近0的数值,无论是正数还是负数,都将被突出显示。
首先,你需要在工作表中的任何一个空单元格中输入以下公式,如果需要的话,你以后可以隐藏该单元格。 该公式在给定的范围内找到与你指定的数字最接近的数字,并返回该数字的绝对值(绝对值是没有符号的数字)。
=min(abs(b2:d13-(0))
在上述公式中,B2:D13是你的单元格范围,0是你想找到最接近的数字。 例如,如果你想找一个最接近5的值,公式将变为。 =min(abs(b2:d13-(5))
注意:这是一个 阵列公式 ,所以你需要按Ctrl + Shift + Enter,而不是简单的回车键来完成。
而现在,你用下面的公式创建一个条件格式化规则,其中B3是你区域中的右上角单元格,$C$2是上面数组公式的单元格。
=OR(B3=0-$C$2,B3=0+$C$2)
请注意在包含数组公式的单元格地址($C$2)中使用绝对引用,因为这个单元格是恒定的。 另外,你需要用你想突出显示最接近的数字来代替0。 例如,如果我们想突出显示最接近5的数值,公式将变为:。 =OR(B3=5-$C$2,B3=5+$C$2)
例2.突出显示与给定值最接近的数值,但不是完全匹配。
如果你不想突出精确匹配,你需要一个不同的数组公式,找到最接近的值,但忽略精确匹配。
例如,下面的数组公式在指定的范围内找到最接近0的值,但忽略了零,如果有的话。
=MIN(ABS(B3:C13-(0))+(10^0*(B3:C13=0)))
请记得在输入完数组公式后按Ctrl + Shift + Enter。
条件格式化公式与上面的例子相同。
=OR(B3=0-$C$2,B3=0+$C$2)
然而,由于C2单元格中的数组公式忽略了精确匹配,条件格式化规则也忽略了零,并突出显示了最接近匹配的值0.003。
如果你想在Excel表中找到与其他数字最接近的数值,只需在数组和条件格式化公式中用你想要的数字替换 "0"。
我希望你在本教程中学到的条件格式化公式能帮助你对你正在进行的任何项目有所了解。 如果你需要更多的例子,请查看以下文章。
- 如何根据一个单元格的值改变行的颜色
- Excel日期的条件格式化
- 在Excel中交替使用行和列的颜色
- 基于单元格值改变背景色的两种方法
- 在Excel中对彩色单元格进行计数和求和
为什么我的Excel条件格式化不能正常工作?
如果你的条件格式化规则不能像预期的那样工作,尽管公式显然是正确的,不要生气!很可能不是因为Excel条件格式化中的一些奇怪的错误,而是由于一个微小的错误,在第一时间不明显。 请尝试以下6个简单的故障排除步骤,我相信你会让你的公式正常工作。
- 正确使用绝对&相对单元格地址。 要推导出一个在100%情况下都有效的一般规则是非常困难的。 但大多数情况下,你会在单元格引用中使用绝对列(含$)和相对行(不含$),例如:。
=$A1>1
.请牢记,公式
=A1=1
,=$A$1=1
和=A$1=1
如果你不确定在你的情况下哪一个是正确的,你可以尝试所有:)更多信息,请参见Excel条件格式化中的相对和绝对单元格引用。 - 核实应用范围。 检查你的条件格式化规则是否适用于正确的单元格范围。 一个经验法则是这样的--选择所有你想要格式化的单元格/行,但不包括列标题。
- 写出左上角单元格的公式。 在条件格式化规则中,单元格引用是相对于应用范围内最左上角的单元格而言的。 因此,总是为有数据的第一行编写条件格式化公式。
例如,如果你的数据从第2行开始,你把
=A$2=10
以突出显示数值等于10的单元格 所有的行 一个常见的错误是,总是使用对第一行的引用(如=A$1=10
请记住,只有当你的表格没有标题,并且你的数据真的从第1行开始时,你才会在公式中引用第1行。 这种情况最明显的迹象是,规则在工作,但格式化的值不在它应该的行里。 - 检查你创建的规则。 仔细检查条件格式化规则管理器中的规则。 有时,没有任何理由,Microsoft Excel会扭曲你刚刚创建的规则。 因此,如果规则不起作用,请到 条件性格式化> 管理规则 并检查该公式和它所适用的范围。 如果你从网上或其他外部来源复制了该公式,确保该公式的 直言不讳的报价 被使用。
- 复制规则时调整单元格引用。 如果你使用Format Painter复制Excel的条件格式,别忘了调整公式中的所有单元格引用。
- 将复杂的公式分割成简单的元素。 如果你使用一个复杂的Excel公式,包括几个不同的函数,把它分成简单的元素,单独验证每个函数。
最后,如果你已经尝试了所有的步骤,但你的条件格式化规则仍然不能正常工作,请在评论中给我留言,我们将尝试一起摸索解决这个问题 :)
在我的下一篇文章中,我们将研究Excel日期条件格式化的功能。 下周见,感谢您的阅读。