【问题标题】:Conditional formatting, entire row based条件格式,基于整行
【发布时间】:2012-05-29 04:04:33
【问题描述】:

我已经搜索并阅读了与条件格式相关的答案,但我似乎无法让我的工作,所以也许我做错了什么。

我有一个工作表。它包含我们避难所中的动物列表。我正在尝试做的是,如果它们已被采用,则将整行涂成绿色(在“G”列中用“X”表示)。我有=$G$2="X"=$G2="X",但都没有工作。它只会在我设置规则时为活动的一行着色,当我在另一行输入“X”时,它什么也不做。我错过了什么?

【问题讨论】:

    标签: excel-2010 conditional-formatting


    【解决方案1】:

    使用 RC 寻址。因此,如果我希望 Col B 的背景颜色取决于 Col C 中的值并从第 2 行到第 20 行应用它:

    步骤:

    1. 选择 R2C2 到 R20C2

    2. 点击条件格式

    3. 选择“使用公式确定要格式化的单元格”

    4. 输入公式:=RC[1] > 25

    5. 创建您想要的格式(即背景颜色“黄色”)

    6. 适用于:确保上面写着:=R2C2:R20C2

    ** 请注意,“魔术”发生在第 4 步中……使用 RC 寻址来查看正在格式化的单元格右侧一列的值。 在此示例中,我正在检查正在格式化的单元格右侧一列的单元格的值是否包含大于 25 的值(请注意,您可以在此处放置几乎任何返回 T/F 值的公式)

    【讨论】:

      【解决方案2】:

      对条件格式使用“间接”功能。

      1. 选择条件格式
      2. 选择新规则
      3. 选择“使用公式确定要设置格式的单元格”
      4. 输入公式,=INDIRECT("g"&ROW())="X"
      5. 输入所需的格式(文本颜色、填充颜色等)。
      6. 选择确定保存新格式
      7. 在条件格式中打开“管理规则”
      8. 如果您看不到新规则,请选择“此工作表”。
      9. 在新规则的“适用于”框中,输入 =$A$1:$Z$1500(或者根据您的工作表,您希望条件格式扩展的宽度/长度)

      对于 G 列中带有 X 的每一行,它现在将转换为您指定的格式。如果列中没有 X,则不会格式化该行。

      您可以重复此操作以根据列值进行多行格式化。只需更改公式中的g 列或x 特定文本并设置不同的格式。

      例如,如果您使用公式 =INDIRECT("h"&ROW())="CAR" 添加新规则,则它将在 H 列中将具有 CAR 的每一行格式化为您指定的格式。

      【讨论】:

      • 这可能是一个新手错误,但如果您的列包含一个数字(不是 X 之类的字母),那么您需要删除数字周围的引号以使其正常工作 - 例如=INDIRECT("T"&ROW())=5
      • 我见过的突出显示行的最简单和最好的答案之一。
      • 这个答案对我使用 Excel 2013 有效。接受的答案没有意义,因此我找不到任何方法让它工作。有了这个答案,我什至添加了 MAX 函数,以便它突出显示 g 列中最大值的整行(在我的情况下为 b )。如果值发生变化,高亮将跟随最大值。
      • 你是天才。
      【解决方案3】:
      =$G1="X"
      

      将是正确(也是最简单)的方法。只需先选择整个工作表,因为条件格式仅适用于选定的单元格。我刚试了一下,效果很好。您必须从 G1 而不是 G2 开始,否则它将使条件格式偏移一行。

      【讨论】:

      • 这句话让一切变得不同:Just select the entire sheet first, as conditional formatting only works on selected cells.
      • @pnuts:我认为那是Select "Use a Formula to determine which cells to format" 行,它对许多来自外面的人有不同的影响。 OP 仍然有这个,但不是我们所有人 :)
      • 实际上,您只需选择 a 即可。您可以将 CF 应用于工作表中的小表格。相对设置适用于选择的顶行,例如如果顶行是 5 并且您想测试当前行中的 G 列进行着色,它将是 $G5
      • 这个为我修好了You must start at G1 rather than G2 otherwise it will offset the conditional formatting by a row
      • 但这仅适用于单行,如果我有 200 条……我需要 200 条规则吗?
      【解决方案4】:

      要基于单个单元格为整行设置条件格式,您必须用“$”锚定该单个单元格的列地址,否则 Excel 只会正确获取第一列。为什么?

      因为 Excel 会根据列的偏移量为行的第二列设置条件格式。对于第二列,Excel 现在已将一列移动到您想要的规则单元格的右侧,检查了该单元格,并根据您从未想要的单元格正确格式化了第二列。

      只需用“$”锚定规则单元格地址的 COLUMN 部分,您就会很高兴

      例如: 如果该行的最后一个单元格不等于 1,您希望表格的任何行都以红色突出显示。

      选择整个表格(但不选择标题) “主页” > “条件格式” > “管理规则...” > “新规则” > "使用公式确定要格式化的单元格"

      输入:“=$T31”(没有引号...“T”是规则单元格的列,“3”是它的行) 设置格式 点击应用。

      确保 Excel 没有在公式的任何部分插入引号...如果有,请退格/删除它们(请不要使用箭头键)。

      应为整个表格设置条件格式。

      【讨论】:

        【解决方案5】:

        就我而言,我想将 E 列的单元格中的值与 G 列中的单元格进行比较

        在 E 列中突出显示要检查的单元格的选择。

        选择条件格式:突出显示单元格规则 在我的情况下选择它大于的选项之一。 在弹出窗口的左侧字段中使用 =indirect("g"&row()) 其中 g 是我要比较的行。

        现在,您正在格式化的行将根据它是否大于 G 行中的选择来突出显示

        与您为 E 列所做的选择的 G 列中的单元格相比,这适用于 E 列中的每个单元格。

        如果 G2 大于 E2 它格式化

        G3 大于 E3 它格式化等

        【讨论】:

          【解决方案6】:

          您想应用自定义格式规则。 “适用于”字段应该是您的整行(如果要格式化第 5 行,请输入=$5:$5。自定义公式应为=IF($B$5="X", TRUE, FALSE),如下例所示。

          【讨论】:

          • 那么这对工作表中的每一行都有效吗?此外,我可以将其限制为列(例如 A5:G5)吗?
          • 是的,是的,我认为,尽管您必须为每一行设置单独的规则。尝试使用一条规则使每一行突出显示会变得非常复杂,此时我建议使用一些 VBScript 来实现您想要的。我认为如果您复制并粘贴带有规则的行,规则也会被粘贴,因此您可以随时尝试。
          猜你喜欢
          • 2023-03-08
          • 1970-01-01
          • 2017-08-13
          • 1970-01-01
          • 1970-01-01
          • 2014-12-27
          • 2021-07-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多