在我的工作表中,AI 列中有一个公式引用了另一张工作表中的值。在同一张工作表的 G 列中,我有一个公式引用了 A 列中的单元格。我本质上想让 G 列中的公式查看 A 列中的单元格是否有值,如果有,则在 G 列单元格中输入 1,如果 A 列单元格中没有值,则将其留空。我为此尝试的公式是:=IF(ISBLANK(A1), 1, "") & IF(A1<>"",1, "")
该公式返回“1”全部G 列中的单元格,无论 A 列单元格中是否有值。换句话说,我希望 G 列中的公式查看 A 列中的单元格,如果 A 列中的单元格已满足其中的公式,则在 G 列单元格中输入 1,否则,保留空白。但是,如果 A 列单元格已经有公式,则显示 A 列单元格中有值,但实际上没有。
有办法解决这个问题吗?
答案1
公式的第一部分检查 A 列中是否存在空白单元格,如果找到,则在 G 列中放置 1。
第二部分检查非-空白单元格,如果找到,则在 G 列中放置 1。因此,您总是在 G 列中得到 1。
您不需要两个部分。只需保留第一部分,将 1 和“”互换。或者只保留第二部分。
编辑:在对您的数据进行建模后,我能够重现您的问题。在下图中,A 列具有基于 B 列的计算结果。C 列中的 ISBLANK() 函数表示 A 列中的所有内容都不为空。D 列中的 =A<>"" 测试正确运行,基于该测试的 E 列中的公式也正确运行。此公式
=IF(A1<>"",1,"")
是您应该在 G 列中使用的内容。
我将进一步深入研究 ISBLANK() 看看是否有对此的解释。
EDIT2:看起来是这样的ISBLANK() 的预期行为。它测试单元格是否完全为空,如果单元格包含公式,即使公式的结果为空,也会返回 FALSE。链接的网站建议我们应该将该函数视为 ISEMPTY()。很高兴知道,虽然很烦人。也许 MS 可以更改函数的名称。@teylyn?:-)