如何在条件格式自定义公式中引用当前单元格?

93

我需要使用自定义公式编写一个条件格式规则,当特定单元格的值为"TODAY()"且当前单元格为空时,应该触发该规则。我知道如何检查其他单元格,但是否有办法在同一规则中检查当前单元格的值?

正如您在这张图片上看到的那样,一个列由于其第三行包含当前日期而具有不同的颜色。并且只有空单元格被着色。

以下是我的规则:

=and($3:$3=TODAY(), ????)

它应适用于范围A4:M10中的所有单元格。

我需要它成为一个规则,而不是多个规则的组合。我需要在????的位置放置描述为“单元格为空”的值作为其一部分的自定义公式。

以下是示例电子表格:https://docs.google.com/spreadsheets/d/1vpNrX2aUg8vY5WGDDuBnLfPuL-UyrjFvzjdATS73aq8/edit?usp=sharing


你的例子中的两个表格在我的Google电子表格Android应用程序上看起来完全一样,不确定问题出在哪里。 - Aprillion
我有一个问题,不是关于Android的,抱歉。区别在于一列的颜色。 - Vladimir Mikhaylovskiy
啊,我现在甚至可以在安卓上看到它了。当时的问题是关于所有非空单元格都相同的情况...稍后再看一下。 - Aprillion
6个回答

93

当前单元格由条件格式中范围的第一个单元格确定。在您的示例中,范围是A4:M10,因此您可以使用A4作为“当前单元格”。

  • 检查内容是否为空:

=A4=""


在条件格式中,相对引用和绝对引用的工作方式就像复制公式一样

  • 检查当前列第2行的单元格是否为今天:

=A$2=TODAY()
  • 使用AND运算符组合:

    =AND(A$2=TODAY(), A4="")
    
  • 我已经更新了你提供的示例电子表格的一个副本 - https://docs.google.com/spreadsheets/d/1MY9Jn2xpoVoBeJOa2rkZgv5HXKyQ9I8SM3kiUPR9oXU/edit#gid=0


    1
    您的 Google 表格没有读取条件格式的权限,所以我无法看到公式 :( - moobi
    @moobi 不知道如何为人们添加直接查看权限,请下载文件和/或将其复制到您自己的Google Drive中。 - Aprillion

    60

    如果我想要检查当前单元格是否为空,以下方法适用于我:

    =ISBLANK(INDIRECT(ADDRESS(ROW(),COLUMN())))
    

    在同一列中的上一行单元格将会

    =ISBLANK(INDIRECT(ADDRESS(ROW() - 1,COLUMN()))) 等等。


    4
    您还需要启用“迭代计算”。请转到“文件”>“电子表格设置”,并在“计算”选项卡上启用“迭代计算”。 - alexopoulos7
    1
    我使用了分号 ; 而不是逗号 , 来分隔参数。 - piertoni

    44

    这是我找到的在条件格式跨越范围时引用当前单元格的最短方法:

    INDIRECT("RC",FALSE)

    文档在这里


    4
    这似乎是在条件格式中使用“此单元格”的最优雅方式,我很喜欢。不过我找不到任何地方说使用没有数字的“RC”将做出你预测的效果。它确实有效,但我没有在文档中看到过这种用法,包括你在这里提供的链接!你是怎么尝试出来的呢? - jay613
    3
    我记不清了,R1C1的起源很古老,所以我没有找到任何正式规范。我可能是在搜索网络时找到的,这是一个提到“RC”方法的文章示例:https://powerspreadsheets.com/r1c1-formular1c1-vba/ ['……最后,如果您要引用单元格本身(创建循环引用),单元格引用的第一部分只需为“R”……'] - Markus Amalthea Magnuson

    6

    好的,我自己找到了答案。正确的完整公式是:

    =and($2:$2=TODAY(),INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)="")
    

    这个规则:

    INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)=""
    

    检查当前单元格是否为空。


    0

    尝试应用于范围:

    A3:M10
    

    自定义公式为:

    =$2:$2=TODAY()
    

    不,3:3 只会检查一个单元格,我需要检查范围内的所有单元格。 - Vladimir Mikhaylovskiy

    0
    在您的自定义函数中重写原始条件格式化范围。电子表格应用程序将使用当前单元格。因此,您的公式将类似于以下内容。
    =function(A4:M10)
    

    根据需要应用转换以使结果为真/假。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接