ARTICLE · 1319439
EXCEL函数---核对两表数据差异---GROUPBY函数才是王者---VLOOKUP靠边站
EXCEL函数---核对两表数据差异---GROUPBY函数才是王者---VLOOKUP靠边站核对两个表的数据差异,一直以来都很让人头疼,很多人也从网上搜了很多种方法,用起来也不是很顺心,很多情况达不到我们的预期效果 尤其是两个之前的顺序和行数都不一致的情况下,我们能想到的经常用的VLOOKUP函数根本就骑不上作用了 小白志在让办公变得人人都容易,如果有哪里不明白或者需要修改的地方,欢迎留言,感恩相遇,希望能帮到你 针对上面的情况,小白发现了一个有意思的函数,那就是GROUPBY函数,恰巧这个函数咱们在之前已经介绍过他的基础用法,如果对基础用法不太明白的小伙伴,可以去看一下小白前两期的内容。 小白会将方法和原理都与大家讲明白,我们来看一下数据源 一、数据源 我们刚经历了月末,月末需要进行的一件事儿就是库存盘点,现在我们将盘点表根据各个库存商品的存放位置进行了盘点,得到了一张盘点表 这时候我们还有一个库存表,库存表是各个库存商品的汇总表,现在我们需要比对实际库存与理论库存的差异,由于两个表的顺序和行数都不一致,这时候我们就无所事事了,不知道该怎么办,主要还是数据量特别大,该怎么做呢? 
二、解决方案 其实这时候,我们仅仅需要用GROUPBY+VSTACK函数来组合一下,就瞬间解决了这个问题了应该怎么做呢?我们先来看一下公式 

小白志在让办公变得人人都容易,如果有哪里不明白或者需要修改的地方,欢迎留言,感恩相遇,希望能帮到你

=GROUPBY(VSTACK(A3:A8,E3:E23),VSTACK(B3:B8,-F3:F23),SUM)
通过这个函数组合,我们发现盘点与实际的差异瞬间就解决了,正数代表库存多,负数代表库存少

我们在H3单元格直接录入公式,商品名称和数量差异直接自动列出,根本不需要我们再去做其他任何多余的动作
三、公式原理
如果看过咱们关于GROUPBY的讲解,上面的公式就很好记住,但是难得就是公式的工作原理,下面小白来讲解一下
VATACK函数其实就是纵向拼接函数,他的语法就是
=VATACK(区域1,区域2,。。。。)
语法看起来很简单,用起来也简单,他就是把不同的列进行纵向拼接,跟HSTACK是孪生兄弟,HSTACK是横向拼接
咱们上面的公式用了两个VSTACK,第一个VSTACK函数VSTACK(A3:A8,E3:E23)也就是把库存里的商品名称和盘点表里的库存名称纵向连接了起来
关键是第二个VSTACK函数的连接,不知道大家看到了没有
VSTACK(B3:B8 , -F3:F23),名义上他是把库存表里的数量和盘点表里的数量连接了起来,但是咱们这里针对盘点表的数量前面加了一个符号-
这是什么意思呢?这其实就是在新组合的数据里,正数就代表库存表的数据,负数就代表盘点表里的数据,如下图

接下来咱们用用GROUPBY函数的特性,将新组合的两组区域进行求和,就可以瞬间得到两组数据的差异了,并且随着数据的更新而更新














































































