在列中格式化单元格,如果匹配公式,并且相邻单元格为空白
如果条件匹配一个公式并且它们相邻的行是空的,是否可以有条件地格式化单元格?
我的表格如下。 B列以date格式保存单元格,P列也包含date格式。
我有条件地格式化B列中的单元格,只要它们符合以下公式;
=NOW()-30
(如果他们是30天或更长的时间,填入细胞)
这工作正常,但是,我想input另一个条件,所以格式只适用于同一行中列P中的单元格是空白的。
所以我希望看起来像这样,但似乎并不奏效。
=AND((ISBLANK($P)),((NOW()-30)))
感谢您的帮助提前。
如果您使用公式进行条件格式化,那么如果公式结果为true
则单元格将被格式化。
这里的问题是=NOW()-30
结果如2017-06-21 13:31
如果转换为布尔值,则始终为 true
。
所以如果你想格式化一个单元格,只有当它的date早于30天,那么你需要检查该单元格。 例如。 对于单元格B1使用: =(B1<=NOW()-30)
。
或者相应地为单元格B1提供=AND(ISBLANK($P1), ($B1<=NOW()-30))
,然后将格式复制到其他单元格中。
我会build议做一个VBAmacros(在我看来,更简单和更清晰)。 只要做一个for循环,并使用cell.value
遍历整个列比较值或cell.formula
获得公式。 通过这种方式,您也可以通过在variant
表中复制值来加快速度,从而以最less的时间损失(很适合处理大型数据库)执行所有操作。 至于有双重条件的有条件合并,它会给出这样的东西:
if(range(cells(2,1), cells(2,bottomrow)).formula = "formulahere" AND range(cells(16,1), cells(16,bottomrow)).value = "") Then '--your actions-- end if
你的代码中缺less的就是行号!
假设您的条件格式从第一行开始:
=AND(NOT(ISBLANK($P1)),($B1 <= (NOW()-30)))
$
字符将确保列(或行)保持不变,而不pipe执行条件格式的单元格。
通过在行号之前不包括$
,条件格式将会为每一行dynamic地改变。
我设法通过在条件格式化窗口中将以下公式应用于列B来使其工作。
=($B1<=NOW()-365)*($P1="")
此公式仅在确认date后格式化单元格,单元格B1 …大于365天,列P中的相邻单元格为空白。 因此满足我所需的参数。