我想要对单元格进行以下检查:
- 检查数字是否 >= 零
- 检查它是否小于同一列第 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()
)