答案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()
来计算总值。