![837f58573bd6cd9f8c1eb168e7f1cb6d.png](https://i-blog.csdnimg.cn/blog_migrate/7d280a459f2721b1661211d5e3e95b41.jpeg)
![6c2ab08484b6ac8aead03103f7df5fce.png](https://i-blog.csdnimg.cn/blog_migrate/ec20d24708d112b93824d9bb05ef7f66.jpeg)
“数据校验也是我们在工作中常会遇到的问题。火箭君也曾和大家一起讨论过如何使用条件格式进行数据校验(
[Excel]对比不同表格的数据差异,条件格式也能帮你搞定
)。事实上,如果你只需要知道某两张表格是否完全一致,还有一个最简单的方法:SUMPRODUCT函数。
比较两个表格
![3fc732c4e8f3801b380d28601ab37426.png](https://i-blog.csdnimg.cn/blog_migrate/a9999d443655181e598c4db4bb1e9771.jpeg)
假设这里有表1和表2两张表格,在工作表的任意位置键入:
=SUMPRODUCT((表1=表2)-1)=0
如果答案是TRUE(也就是正确的意思),就意味着表1和表2完全相同。而如果答案是FALSE(也就是错误的意思),也就证明表1和表2不完全一样。在以上案列中,由于D4的值与D12的值并不相等,因此显然两张表格并不完全相同。
>>>解析公式
使用SUMPRODUCT函数,可以将表格转化成矩阵进行比较,再将比较的结果转化成矩阵的值。但是SUMPRODUCT函数还有一个特点,它会将非数值型的数组元素作为0处理。因此如果没有“-1”,你会得到这么一个类似的计算过程:
![6d96f30eaba7cec50e0175936258fe76.png](https://i-blog.csdnimg.cn/blog_migrate/0f9a900e9673668f8325d473f6da3452.jpeg)
罗辑值显然是属于非数值型的数组元素,因此如果没有减1,那么无论两个表格的比较结果是什么,SUMPRODUCT函数的结果都是0。
如果公式中有了”-1“之后,整个比较结果会被强制转换为数字,再和”-1“进行计算。
![9bffb53281c52d7cc1f2cae6bd79b1c6.png](https://i-blog.csdnimg.cn/blog_migrate/e33dde706209ef834b4ee917db44ff1d.jpeg)
因而:
- 原先的TRUE,变成了0
- 原先的FALSE,变成了-1
这样,所有的比较结果就不再是永远为0了。
原文链接:
http://xlrocket.com/20190320a/