【问题标题】:Excel conditional formatting row if cell starts with如果单元格以 Excel 条件格式行开头
【发布时间】:2019-09-11 08:08:49
【问题描述】:

我正在尝试根据其中的单元格格式化一行。

我的表格从 A6 运行到 K207,如果 B6 中的单元格以 SA 开头,我想以粗体突出显示该行。

我测试了我的公式

=IF(LEFT(TRIM(B26),2)="SA","YES","NO") 

在另一个单元格中可以正常工作 - 但由于某种原因我无法使格式正常工作...

我删除了是/否,并将其放入适用于我的整个表格的条件格式规则中,但它不起作用。即使我将它应用于一行也不起作用。

我在条件格式中使用 if 语句对吗?我查看了 Google 和此处,发现了类似的问题,但不是同一个问题,它们都使用了设定值/范围,但不是“开始于”条件。

【问题讨论】:

    标签: excel excel-formula conditional-formatting


    【解决方案1】:

    条件格式默认为IF 语句,格式取决于公式是TRUE 还是FALSE,因此不需要额外的IF 语句:

    =LEFT($A6,2)="SA"
    

    这可以解决问题,根据需要将其应用于整个范围。

    它将测试a列中的所有单元格是否以“SA”开头并突出显示该单元格。如果将其应用于包含更多列的范围,则 $ 符号将该列固定为 A 以便测试该单元格并基于该单元格突出显示每个单元格,从而有效地突出显示整行。

    您还可以使用OR 语句来传递多个参数,如下所示:

    =OR(LEFT($A6,2)="SA",LEFT($A6,2)="BO")
    

    【讨论】:

    • 完美,谢谢! OR 语句对于理解条件格式中的多个“if”也有很大帮助——这是一个非常大的帮助,因为这实际上是我要解决的下一个棘手步骤:)
    【解决方案2】:

    欢迎来到 SO。在公式中进行条件格式 (CF) 时,您需要应用引用。

    Switch between relative, absolute, and mixed references

    现在你的公式是=IF(LEFT(TRIM(B26),2)="SA","YES","NO")。您正在使用相对引用,因此 CF 规则将根据它们的位置进行检查。在 A6 中,它将检查 A6 的值,我猜您希望规则检查 B 列中的值 always

    所以你的公式中需要的第一个修复将是(它需要更多,等等)

    =IF(LEFT(TRIM($B26),2)="SA","YES","NO") 
    

    现在,它将始终检查 B 列中的值。但我们需要修复其他问题。要基于公式制作 CF,您需要制定返回 booleanTrueFalse 的内容。您的值 YesNO 是字符串(文本),而不是布尔值,因此它们不起作用。

    所以试试这个公式,看看它是否有效:

    =IF(LEFT(TRIM($B26),2)="SA",TRUE,FALSE) 
    

    IF 函数允许您提出一个问题,其中答案必须为是/否(真/假),并且根据答案,Excel 将做一个或另一个选项。

    使用基于公式的 CF 规则,您只需要问题本身,无需选择选项。因此,正如@Plutian 在他的回答中所说,这个公式的简短版本只是在做:

    =LEFT(TRIM($B26),2)="SA"
    

    尝试根据您的需要进行调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多