找回密码
 立即注册

QQ登录

只需一步,快速开始

carl_chen 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-18 10:54  /   查看:4050  /  回复:25
200金币
本帖最后由 carl_chen 于 2023-9-18 16:08 编辑

demo ->  

在页面设置如下if公式和求和:


调试运行开始时,第二个if公式出错,如下:

调试运行后,修改两个输入框为30, 第一个if公式 出错,如下图。第二个if公式正确,不管输入怎样修改。


我的问题是:
问题1 为什么调试运行时,第二个if公式 出错?
问题2 为什么修改输入框后, 第二个if公式变为正确了,第一个if公式确出错了?
问题3 为什么 =B3+B4 这个公式,总是正确?
问题4 为什么 =D3+D4 这个公式,会提示 #VALUE!错误?

补充:
我隐约觉得这确实是一个和数据类型有关的问题。
不过,数据类型是在什么时候确定的?  数据类型在哪些公式中会有作用? 空字符串和0字符串有什么区别? 这些问题没有明确解释,导致现在很容易混淆!!!
当然,这不仅只是活字格的问题,Excel也有这样的问题。



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

25 个回复

正序浏览
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-27 16:07:15
25#
David.Zhong 发表于 2023-9-19 10:53
好的,明白大佬的担忧了,我尽量~以上问题我会挨个去问问开发~
辛苦大佬等一下~

版主大大, 请问这个问题可有回复。
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-9-19 10:53:28
24#
好的,明白大佬的担忧了,我尽量~以上问题我会挨个去问问开发~
辛苦大佬等一下~
回复 使用道具 举报
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-19 10:17:35
23#
本帖最后由 carl_chen 于 2023-9-19 10:48 编辑
David.Zhong 发表于 2023-9-19 08:53
构建复杂、大型的系统的时候,最佳实践是不要使用这些隐式转换,显示的使用数字和数字比较大小,没有人会去 ...


首先感谢版主大大能帮我追问此问题。



我的担忧请见22楼的回复。


我觉得目前的问题可能需要转为: 活字格是何时何地确定数据类型的,是由单元格类型还是由单元格格式确定的,还是由数据表的字段类型确定的,还是会“随机应变”的


“最佳实践是不要使用这些隐式转换”  <-- 非常乐意学习最佳实践,有没有清单可否贴出来!





-----------------------补充新的情况-----------------------
请见demo - >   ,公式显示A2单元格,既是文本也是数字,这是什么情况?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-19 10:01:32
22#
没事测着玩 发表于 2023-9-19 08:43
第一句话,这句话在编程中全适用,无论你是用低代码平台开发,还是直接敲C、JAVA甚至于汇编代码来开发, ...



第一句话,这句话在编程中全适用,无论你是用低代码平台开发,还是直接敲C、JAVA甚至于汇编代码来开发,数字和文本就是不能比较。总而言之就是,不同类型的数据在哪儿都是无法直接比较的,只需要记住这一点就行。
<--- 咱也是从代码开发过来的,您说的这些静态类型的语言,定义清晰、逻辑明确,对我来说都是比较好理解的。
但是,活字格(或者说Excel)里面的类型把我搞糊涂了。比如:您说不同类型的数据不能直接比较,按理说也不能直接相加,但是,请见15楼demo的B6单元格,它们是可以相加的。
按微软官方关于VALUE函数的解释如下,“Excel会根据需要自动将文本转换为数字”,我对这样的解释不太满意,想搞清楚一些。


另外,关于15楼demo的 B3 和 B4 单元格,您能快速判断出哪个是文本类型?哪个是数字类型吗? 为什么D3 和 D4 单元格的结果会不一样?

至少目前我是没办法快速判断出来,而且像这种不可预知的结果,会影响我对构建大型系统的信心。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-9-19 08:53:08
21#
构建复杂、大型的系统的时候,最佳实践是不要使用这些隐式转换,显示的使用数字和数字比较大小,没有人会去期望使用一个错误的设计方式,哪怕最后结果是对的。大佬觉得呢?

大佬最后一个demo,单元格格式的问题,不好意思,昨天理解错了,这个我问下开发。
回复 使用道具 举报
没事测着玩
高级会员   /  发表于:2023-9-19 08:43:44
20#
本帖最后由 没事测着玩 于 2023-9-19 08:46 编辑
carl_chen 发表于 2023-9-18 21:02
本质是文本和数字无法比较大小,这个事情本身是没有意义的,所以也不存在所谓的底层机理,对也好,错也好 ...

第一句话,这句话在编程中全适用,无论你是用低代码平台开发,还是直接敲C、JAVA甚至于汇编代码来开发,数字和文本就是不能比较。总而言之就是,不同类型的数据在哪儿都是无法直接比较的,只需要记住这一点就行。
当你构建复杂、大型的系统时,遇到不同类型的数据比较的需求,不是业务逻辑有问题,就是开发逻辑有问题。如果实在想比较,只能够想偏方去绕一绕,但从一般的开发思维考虑,这个问题就不应该存在。
回复 使用道具 举报
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-18 21:02:07
19#
David.Zhong 发表于 2023-9-18 17:14
本质是文本和数字无法比较大小,这个事情本身是没有意义的,所以也不存在所谓的底层机理,对也好,错也好, ...

本质是文本和数字无法比较大小,这个事情本身是没有意义的,所以也不存在所谓的底层机理,对也好,错也好,均不在控制和考虑之内
<-- 这话,让人很是气馁啊...   如果这些看似细小的问题都不能做到心中有数的话,我如何才能用活字格去构建复杂、大型的系统呢!?



至于大佬反馈的第二个问题,是因为设置了单元格格式。 <-- 愿闻其详。

回复 使用道具 举报
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2023-9-18 20:49:55
18#
VVANVI 发表于 2023-9-18 19:50
我也是使用者,  具体解释需要官方给

非常感谢您的热心帮助
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2023-9-18 19:50:19
17#

我也是使用者,  具体解释需要官方给
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-9-18 17:14:32
16#
本帖最后由 David.Zhong 于 2023-9-18 17:19 编辑

本质是文本和数字无法比较大小,这个事情本身是没有意义的,所以也不存在所谓的底层机理,对也好,错也好,均不在控制和考虑之内。

至于大佬反馈的第二个问题,是因为设置了单元格格式。

不打算用数字单元格,因为相比文本框,它太难用。

关于数字框本身的问题,大佬可以说说看具体是哪比较难用,可以提需求修改。


如果一定需要文本框,可以用公式显示的把文本转化为数字,再参与比较和计算。
VALUE 函数 - Microsoft 支持

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部