根据负面趋势格式化单元格

根据负面趋势格式化单元格

我正在创建一个习惯追踪器,记录每天花在习惯上的时间(见下面的截图)。如果最后三个单元格为 0,我想用红色突出显示习惯的名称。如果我在连续记录后添加一个非零值(比如 5 月 19 日),名称单元格应该恢复为正常填充颜色。有人知道怎么做吗?

这是我想要完成的任务的屏幕截图。

答案1

您可以使用 worksheet_change 宏或条件格式来执行此操作。

对于条件格式,您需要在主页 -> 条件格式 -> 新规则中添加新规则。
然后选择最后一个选项,使用公式。

现在您所需要的只是一个公式来检查行中的最后三个单元格,并评估它们是否全部为 0。

我不擅长公式,但我确实设法制作了一个似乎可以解决问题的公式:

=SUM(OFFSET(INDIRECT(ADDRESS(ROW(A2),LOOKUP(999,1/(B2:I2<>""),COLUMN(B2:I2)))),0,-2,1,3))=0

如果您查看范围,您会发现这是针对“阅读”行的。但是,如果您将此规则应用于A2并将格式复制到 A3,则应该会创建一个包含更新引用的新规则。

我使用此功能进行了测试,并且还使用使其<>0变为绿色的函数进行了测试,结果如下: 在此处输入图片描述

功能分解

首先,我找到了一个函数来获取最后一个非空单元格卓越喷气他们可能可以更好地解释这一点。我修改了它以搜索最后一列,结果如下:
LOOKUP(999,1/(B2:I2<>"",COLUMN(B2:I2))其中“999”应该大于范围内的任何可能数字。
这将返回最后一个单元格的值,这很好,但我需要最后三个值。我认为OFFSET()这是一种简单的方法,但OFFSET()需要参考。

所以我把LOOKUP()里面的一个ADDRESS(),现在它返回单元格地址而不是值(我只将行放在里面ROW(),以便在将公式复制到新行时它会正确更新)
但是,它以字符串的形式显示,这仍然不适用于OFFSET(),因此我继续将整个内容放入 中INDIRECT()。我
OFFSET()其设置为停留在同一行,后退两列,然后包含 3 列。您也可以将其写,0,0,1,-3为 而不是,0,-2,1,3

现在它应该从技术上返回最后三个单元格的值,但这并不奏效。所以我们改用 aSUM()来计算总值。

相关内容