如何根据 Excel 中先前的单元格是否为空白来更改单元格的颜色?

如何根据 Excel 中先前的单元格是否为空白来更改单元格的颜色?

我有一张电子表格,A 列中有姓名。当人员出席时,我会在随后的每一列中放置一个“X”(每周),以记录出勤情况。

我希望当单元格及其前两个单元格为空白时,Excel 能够自动将单元格范围更改为红色,即当某人连续三周缺勤时显示红色。

如何使用 Excel 2010 实现此目的?

答案1

正如 chuff 在他们的评论中所说,您可以使用条件格式来实现这一点。实际上,构建必要的公式相当棘手,因为 Excel 并不容易引用要格式化的单元格来直接引用。这里有一个解决这个困难的解决方案,尽管我确信它远非最优雅的解决方案:

=3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+62)&ROW()&":"&CHAR(COLUMN()+64)&ROW()))

此处的思路是使用 ROW() 和 COLUMN() 构建一个包含所需范围(要格式化的单元格及其左侧的两个邻居)的字符串,然后 INDIRECT() 将其转换为对该范围的引用。COUNTBLANK() 的功能希望显而易见。

编辑:正如下面的评论中指出的那样,您的请求中有一些含糊不清的地方。上面的公式应该可以工作,如果你想从第三次缺失开始突出显示。也就是说,如果连续出现 3 次缺失,则只会突出显示第三次。也许您想要的是突出显示长度为 3 或更大的任何连续缺失。

它甚至不那么漂亮,但我的解决方案肯定可以扩展来做到这一点。上面我们检查一个单元格是否是三个运行中的最后一个。我们还可以检查它是否位于此类运行的中间或开头,然后将整个内容进行或运算:

=OR(  
    3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+62)&ROW()&":"&CHAR(COLUMN()+64)&ROW())),
    3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+63)&ROW()&":"&CHAR(COLUMN()+65)&ROW())),
    3=COUNTBLANK(INDIRECT(CHAR(COLUMN()+64)&ROW()&":"&CHAR(COLUMN()+66)&ROW())),
   )

答案2

我无法让 COUNTBLANK 或 IF(OR({Cell}="x")) 类型检查正常工作,所以我只是这样做:

  1. 从第一位学生的第三列出勤日期开始
  2. 单击“条件格式”->“新规则...”
  3. 选择“使用公式确定要格式化的单元格”
  4. =COUNTBLANK(B1:D1)>2格式化此公式为真的值“ 盒子
  5. 单击“格式化...”
  6. 转到“填充”选项卡,选择红色,单击“确定”
  7. 单击“确定”。

然后,您只需单击单元格右下角的十字线,然后将格式复制到整行即可。再次单击十字线,将格式复制到下面的行,然后对这些行重复此操作(出于某种原因,我无法将此条件的格式复制到大量单元格范围)

相关内容