Excel 条件格式行,如果单元格以

Excel conditional formatting row if cell starts with

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

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

我测试了我的公式

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

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

我删除了 yes/no 并放入了适用于我的整个 table 的条件格式规则,但它不起作用。即使我只将它应用于一行,它也不起作用。

我在条件格式中使用 if 语句对吗?我查看了 Google 和此处,发现了类似但不相同的问题,它们都使用了 set values/ranges 而不是 'starts with' 条件。

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

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

这就可以了,根据需要将其应用于整个范围。

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

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

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

欢迎来到 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,您需要制定 returns 一个 布尔值 值,TrueFalse。您的值 YesNO 是字符串(文本),而不是布尔值,因此它们不起作用。

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

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

IF 函数允许您提出一个答案必须是 yes/no(true/false)的问题,并且根据答案,Excel 将执行一个选项或另一个选项。

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

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

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