Excel - 使用 AND 时数据验证公式中断

Excel - 使用 AND 时数据验证公式中断

我想要对单元格进行以下检查:

  • 检查数字是否 >= 零
  • 检查它是否小于同一列第 33 行另一个单元格中的数字。

因此我创建了以下数据验证公式:

AND(
    NUMBERVALUE(CELL("contents"))>=0;
    NUMBERVALUE(CELL("contents"))<=NUMBERVALUE(INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);"1";"")&""&33))
)

但是,当我尝试将上述函数导入数据验证的自定义公式(DATA->DATA VALIDATION->ALLOW.CUSTOM)时,它会给出一条消息:

The Formula currently evaluates to an error. Do you want to continue?

单独使用NUMBERVALUE(CELL("contents"))>=0;作品。

单独使用NUMBERVALUE(CELL("contents"))<=NUMBERVALUE(INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);"1";"")&""&33))也有效。

我已将问题确定为函数问题NUMBERVALUE(CELL("contents"))<=NUMBERVALUE(INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);"1";"")&""&33)),因为即使我尝试执行以下操作:

AND(
    NUMBERVALUE(CELL("contents"))<=NUMBERVALUE(INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);"1";"")&""&33));
    TRUE()
)

它给出了相同的错误消息。这是否意味着在 AND 情况下使用此公式存在错误/限制/功能,或者还有其他问题?

有灯吗?

答案1

我最终解决了这个问题,通过INDIRECT用函数代替发生在中的连接,CONCAT而不是...&""&33

AND(
    NUMBERVALUE(CELL("contents"))<=NUMBERVALUE(INDIRECT(CONCAT(SUBSTITUTE(ADDRESS(1;COLUMN();4);"1";"");33)));
    TRUE()
)

相关内容