请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew
金牌服务用户   /  发表于:2025-3-11 16:57  /   查看:140  /  回复:13
image.png495362243.png
image.png950965270.png
如图所示,第二张表,是保存后,重新进来的,就正常,怎么解决这个问题? 希望保持一致,都报错,或者都不报错。

状态列是根据公式来处理。=IF(OR(ISERROR([@数据集名称]),ISERROR([@数据集字段]),ISERROR([@位置]),ISERROR([@父格]),ISERROR([@数据填充结束位置])),"0","1")

13 个回复

倒序浏览
Matthew.Xue
超级版主   /  发表于:2025-3-11 17:17:15
沙发
您好,图1中,N11单元格的公式为C1*D2,图2中,N10的公式是C11*B13,是否可以看一下这四个单元格的值分别都是多少呢?您说的重新进来,我理解就是导出后再导入,同一个单元格的值发生变化了吗?
最好可以将您的这个模板上传,我在本地帮您看一下。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-3-11 18:06:22
板凳
Matthew.Xue 发表于 2025-3-11 17:17
您好,图1中,N11单元格的公式为C1*D2,图2中,N10的公式是C11*B13,是否可以看一下这四个单元格的值分别都 ...

排查了下, 问题出在 C11*B13, 这两个单元格的值当为字符串的时候, 会显示#VALUE!,
这个没问题,是正常的, 我的状态列目前的公式校验,怎么能排除掉这种情况?排除掉 #VALUE! 只判断这个公式是否正确?
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-12 09:20:12
地板
eyAndrew 发表于 2025-3-11 18:06
排查了下, 问题出在 C11*B13, 这两个单元格的值当为字符串的时候, 会显示#VALUE!,
这个没问题,是正 ...

这个取决于您如何定义一个公式是否正确,是说这个公式计算的结果是对的,还是说公式字符串本身是对的?如果是后者,哪种公式字符串符合预期?
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-3-12 10:10:27
5#
Matthew.Xue 发表于 2025-3-12 09:20
这个取决于您如何定义一个公式是否正确,是说这个公式计算的结果是对的,还是说公式字符串本身是对的?如 ...

后者,只需要保证公式字符串正确就可以,不需要校验值是否正确。 标准字符串是 Sheet1!C3*Sheet1!B13, (这个公式字符串是为了gc上数 存的父格 原则上所有GC上数的父格 用到的公式都是可以的 都不需要校验值, 只需要校验公式字符串是否正确,gc上数会用到), 怎么修改呢?
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-12 11:09:17
6#
eyAndrew 发表于 2025-3-12 10:10
后者,只需要保证公式字符串正确就可以,不需要校验值是否正确。 标准字符串是 Sheet1!C3*Sheet1!B13, ( ...

您可以尝试一下FORMULATEXT这个函数,此函数能返回引用单元格的公式文本。有这个公式字符串的文本之后,你们就可以利用文本和您希望得到的值比较了。
image.png566784362.png
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-3-12 12:17:53
7#
Matthew.Xue 发表于 2025-3-12 11:09
您可以尝试一下FORMULATEXT这个函数,此函数能返回引用单元格的公式文本。有这个公式字符串的文本之后, ...

好的 现在父格的状态改成这样,IF(ISBLANK([@父格]),FALSE,ISERROR(FORMULATEXT([@父格]))),
如果[@父格]为空,返回FALSE(表示不视为错误)
如果[@父格]不为空,则检查FORMULATEXT是否返回错误(FORMULATEXT 这个公式能校验公式字符串是否正确,对不?)
这个公式的判断逻辑是这样的吧?
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-12 12:58:07
8#
eyAndrew 发表于 2025-3-12 12:17
好的 现在父格的状态改成这样,IF(ISBLANK([@父格]),FALSE,ISERROR(FORMULATEXT([@父格]))),
如果[@父 ...

FORMULATEXT函数只是返回单元格的公式而已,并不会检查公式是否错误,检查的逻辑需要您自己实现。
您之前说标准的字符串是Sheet1!C3*Sheet1!B13,如果您说的标准字符串就代表了预期的公式,那么就应该写成FORMULATEXT([@父格])="Sheet1!C3*Sheet1!B13"
如果不是的话,请您再介绍一下您的需求
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-3-12 14:08:46
9#
Matthew.Xue 发表于 2025-3-12 12:58
FORMULATEXT函数只是返回单元格的公式而已,并不会检查公式是否错误,检查的逻辑需要您自己实现。
您之 ...

这个父格,只存在两种情况空值 或者 使用公式, 公式也可能是任意公式,状态判断, 当有值的时候 检测这个公式字符串是否正确, 有函数能检测公式字符串是否正确么? 或者排除掉#Value!的情况?
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-12 14:46:22
10#
eyAndrew 发表于 2025-3-12 14:08
这个父格,只存在两种情况空值 或者 使用公式, 公式也可能是任意公式,状态判断, 当有值的时候 检测这 ...

我强调一下,这取决于您对于“正确”的定义是什么,一开始我以为您说的正确就是公式字符串等于Sheet1!C3*Sheet1!B13,但貌似不是这样,您好像是希望知道这个公式字符串在运算后是否能有一个正确的结果,如果我猜测正确,那么您可以直接使用ISERROR公式:
  1. IF(ISBLANK([@父格]),FALSE,ISERROR([@父格]))
复制代码

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