excel 跨工作表引用在原数据更改后失效报错

匿名
2022-06-23T06:26:03+00:00

Hello

公式如下:

=IF(LOOKUP(1,0/((Tipdressdata!$B$3:$B$85=Sheet2!$A84)*(Tipdressdata!$F$3:$F$85=Sheet2!$B84)*(Tipdressdata!$G$3:$G$85=Sheet2!$C84)),Tipdressdata!I$3:I$85)=LOOKUP(1,0/(('test list'!$B$3:$B$84=$A84)*('test list'!$F$3:$F$84=$B84)*('test list'!$G$3:$G$84=$C84)),'test list'!I$3:I$89), "OK", "NOK")

数据表tipdressdata 是原数据,此处称为表A

testlist 是要比对的数据,此处成为表B

在表表C中比较

表A,表B,表C均包含三个关键字

作用:

在表B,表A中分别找到同时满足三个关键字条件的值,做对比。

状态:

初次计算后结果ok

按需求对表B行顺序进行复制,粘贴,删除后计算结果为#N/A

经验证,重新引用表B索引范围(即:'test list'!$B$3:$B$84 等四处索引行) 后,结果正常。

问题:

怎样使公式在表A,表B可以任意调整行序,增减,编辑而不会影响输出结果?

例表如下:

controller name,module, name 均为需要匹配的关键字。

其中 controller name,module, name需要同时满足,然后再在对应的列中找到对应值。

Microsoft 365 和 Office | Excel | 其他 | Windows

锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。

0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. 匿名
    2022-06-24T05:54:43+00:00

    wuyan119,您好!

    感谢您联系我们微软社区支持平台!

    了解到您目前遇到excel 跨工作表引用在原数据更改后失效报错的问题,

    根据您提供的函数公式,您是一共有用到4个工作表么?分别为:Tipdressdata,Sheet2,test list和当前使用的工作表。

    这边进行了测试,公式和您提供的一样,涉及到函数检测的内容也设置成一样,但为了方便测试,把公式里的范围85列改为8列,84也改成了8,excel里数据内容也对应一样的范围,然后尝试复制,粘贴,删除,数据都没有发生变化。

    建议您举例详细说明下您具体修改步骤后出现这种情况,以便我们和您同步进行操作测试查看结果。

    您可以把数据也缩减为第8行截至,方便进行测试。

    此外,以防是excel本身出现的问题,您可以分别尝试以下的步骤看看效果:

    1.取消加载项

    点击文档左上角的文件—选项—加载项—管理的地方改成COM加载项,然后选择“转到”,取消勾选所有加载项,点击确定,重启Excel文档,看看效果。

    2.注册表重置office

    按Windows + R ,在打开的运行框里输入:regedit,按回车键,

    定位到以下键值,将Office文件夹重命名(右击它,选择重命名,比如将Office重命名为Officeold)

     HKEY_CURRENT_USER\Software\Microsoft\Office

    由于涉及注册表修改,建议您在修改前,先右键该位置进行导出备份,再进行操作。(如何在 Windows 中备份和还原注册表

    然后重新打开Excel文档尝试效果。

    希望以上步骤能够帮助到您,如有不明白或任何疑问,欢迎随时联系我们!

    Yujun Fu |微软社区支持专员

    此答案是否有帮助?

    0 个注释 无注释