Excel 2007:条件格式,以便每一行显示低值黄色,高值红色


14

我有一个约300行的电子表格。每行大约有15列,并且每个单元格都包含一个数值。每行对应一个产品。

我想让Excel对每种产品都以红色突出显示具有最高编号的单元格,并以黄色突出显示具有最低编号的单元格,并以介于两者之间的数字进行渐变。如果我选择一行(特别是该行中包含我的数据的15个单元格),然后单击“条件格式”>“色阶”>“红黄色色阶”,则会发生这种情况。

但是,我有300行,单独选择每一行并设置条件格式会花费太长时间。另一方面,如果我选择整个范围并应用条件格式,Excel实际上会基于整个范围计算颜色,而实际上我希望逐行计算它们。例如,获取以下示例数据:

1 2 3
4 5 6
7 8 9

我想要的输出,Y代表黄色,O代表橙色,R代表红色,是:

Y O R
Y O R
Y O R

但是,如果我选择整个范围并应用条件格式,则会得到:

Y Y Y
O O O
R R R

有没有一种方法可以做到这一点而不必一次完成一行?


@wizlog:是的。一行中的最大值应为红色,该行中的最小值应为黄色,其他值应介于两者之间(越接近最大值,越红)。
迈克尔·帕维

我喜欢这个问题...我会看看是否能找到答案...大概需要几个小时才能再次提供帮助,希望其他SuperUser成员能及时找到您的答案..
wizlog

我也喜欢这个问题。但是除了使用宏,我看不到其他任何方式来实现此目的。我希望有人能证明我错了。
Ellesa,2011年

Answers:


15

这是一个宏,可为您选择的每一行创建条件格式。它通过将选择的第一行的格式复制到EACH行中来实现此操作(一个接一个,而不是一个接一个)。将B1:P1替换为对数据表中第一行的引用。

Sub NewCF()
    Range("B1:P1").Copy
    For Each r In Selection.Rows
        r.PasteSpecial (xlPasteFormats)
    Next r
    Application.CutCopyMode = False
End Sub

若要使用,请突出显示数据集中未格式化的行(在我的情况下为B2:P300),然后运行宏。在下面的示例中,请注意前两行中的最大数字分别为515。两个细胞都是深红色的

我敢肯定,有比这更快的解决方案。

在此处输入图片说明


1
谢谢,这很不错。这也是不确定时寻求帮助的价值的一个很好的例子...使用宏的想法让我望而却步,因为我认为我将需要学习如何从头开始设置条件格式。仅获取宏来复制现有的格式就更狡猾了:)
Michael Pavey

@MichaelPavey很高兴我可以帮忙!欢迎来到超级用户!:)
Ellesa 2011年

1
+ 1.如果有人感兴趣,我会在我的博客上进一步介绍这个概念:yoursumbuddy.com/conditional-formatting-per-row-color-scales
Doug Glancy

荒谬的是,这种事情没有作为功能内置到Excel中。想要以这种方式比较行是否罕见?
亚历克斯

5

最简单的方法是增量复制/粘贴。首先,按照您想要的方式格式化1行。然后将格式仅复制并粘贴到仅第二行。现在复制第1行和第2行,并将格式粘贴到第3行和第4行。漂洗并重复,复制4,过去4,复制8,然后粘贴8,复制16,然后粘贴16。一旦有了像样的数量16,粘贴几次即可达到64或128。然后,您可以复制它们并粘贴其格式,并且与以前相比,所覆盖的区域将成倍增加。

它不是很优雅,以我的经验,有条件地格式化eat行所需的资源开始在2500行左右达到最大值……但是它完成了工作。

我只是希望逻辑不会为每一行创建单独的条件格式,从而浪费资源...


我认为OP表示“但是,我有300行,因此单独选择每一行并设置条件格式会花费太长时间。” 问题中
Prasanna

@Poultron,谢谢!补充说明:使用Ctrl / Cmd + Shift + Up / right可以轻松选择所有先前的行和列,因此无需计算先前的行。然后,当您准备粘贴时,只需将光标定位在已格式化的行下方的第一个单元格中,并且仅使用“特殊粘贴格式”,它将扩展到覆盖所复制的行数。Ctrl / Cmd + Shift + V还会记住您要使用的最后一个特殊粘贴,因此整个过程相当快。刚刚在两个有600行的电子表格中使用了它。
Oskar Austegard

我是在一张约有100行的桌子上完成的,效果很好。仅进行了7次Format Painter迭代。
mskfisher

0

刚刚找到了如何通过VBA进行操作的示例以及其他示例,这让我开始思考,我发现了一种相对快速,轻松的方法,无需知道或复制任何脚本即可完成相同的工作。

将所需的条件格式应用于所需的任何行,然后突出显示整个行。下一步右键单击边框上的任意位置(鼠标应为“移动”图标),然后向下拖动到下一行。在弹出的上下文菜单中,选择“仅复制为格式”。现在,您应该将条件格式分别应用于两行。然后继续递归执行此操作,除了现在您可以一次选择并复制2行或更多行。

这不是上面代码中的一枪交易,但是比一次完成一行要快得多。希望这可以帮助。


0

您还可以将条件格式应用于一行。再次突出显示该行,然后双击“格式刷”将其锁定。使用向下箭头键将条件向下应用于其他行。

因为我的公司通常会阻止Excel中的宏,所以这对我有用。希望对您有帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.