找回密码
 立即注册

QQ登录

只需一步,快速开始

希希xixi

注册会员

8

主题

20

帖子

88

积分

注册会员

积分
88
最新发帖
希希xixi
注册会员   /  发表于:2022-6-24 09:02  /   查看:1102  /  回复:1
1金币
数据验证实现多条件校验


举例说明:
在A1单元格可输入数字,要求数字最多为两位小数,且A1单元格的值需大于等于B1单元格的值加上C1单元格的值


在A1单元格设置该公式验证,代码如下:
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createFormulaValidator(`IF((LOG10(SUBSTITUTE(A1,\".\",)/A1)<=2)*(A1>=B1+C1),TRUE,FALSE)`);
dv.showInputMessage(true);
dv.inputMessage("保留两位小数,A1>=B1+C1");
dv.inputTitle("Tip");
sheet.setDataValidator(0, 0, 1,1,dv,GC.Spread.Sheets.SheetArea.viewport);


问题:
为什么A1、B1、C1单元格都输入0,还会提示错误,按理说0>=0+0这个应该是成立的啊?A1单元格输入1就没问题。
image.png218314513.png

image.png707423095.png

最佳答案

查看完整内容

你可以用这个公式输入单元格测试一下,在A1为空时,是计算不出结果的,所以会报错 具体错误是出现在Log10,底数不能为0 你可以根据需要在公式里加一些判断来避免这个问题

1 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-24 09:02:30
来自 2#
本帖最后由 Richard.Ma 于 2022-6-24 10:05 编辑

你可以用这个公式输入单元格测试一下,在A1为空时,是计算不出结果的,所以会报错
具体错误是出现在Log10,底数不能为0

image.png317834166.png
你可以根据需要在公式里加一些判断来避免这个问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部