计算 2 列对之间的差异 (product/stock)

calculate difference between 2 column pairs (product/stock)

在 google 电子表格中,我有 2 列对,EAN + 库存数量

有些 EAN 同时出现在 A 列和 C 列中,有些仅出现在 A 列中,有些仅出现在 B 列中。

示例:

A               B   C               D  E              F
8573489753888   1   8729029847359   2  
8789026119040   1   8434234872389   1
8789026118692   3   8789026118609   2
8729029847359   1   8789026118692   1

我需要在 A 列和 C 列中找到 EAN,并计算库存差异(B 列和 D 列)。结果应列在 E 和 F 栏中。 我创建了一个执行此操作的脚本,但由于我一直在达到最大执行时间(列表越来越长),我希望这也可以在没有脚本的情况下完成。

结果应该如下:

A               B   C               D  E              F
8573489753888   1   8729029847359   2  8789026118692  2
8789026119040   1   8434234872389   1  8729029847359  -1
8789026118692   3   8789026118609   2
8729029847359   1   8789026118692   1

完全不同:

=ARRAYFORMULA(QUERY({A1:B; C1:C, D1:D*-1}, 
 "select Col1,sum(Col2) 
  where Col1 is not null 
  group by Col1 
  label sum(Col2)''", 0))

  • 反转:


相关差异:

=ARRAYFORMULA(QUERY({A1:B, IFERROR(VLOOKUP(A1:A, C1:D, 2, 0))}, 
 "select Col1,Col2-Col3 
  where Col3 is not null 
  label Col2-Col3''", 0))

  • 反转:

不错的解决方案。我只尝试使用 vlookup,它变得非常复杂:=IF(ISNA(VLOOKUP(E1;A:B;2;FALSE()));IF(ISNA(VLOOKUP(E1;C:D;2;FALSE()));0;VLOOKUP(E1;C:D;2;FALSE()));VLOOKUP(E1;A:B;2;FALSE())-IF(ISNA(VLOOKUP(E1;C:D;2;FALSE()));0;VLOOKUP(E1;C:D;2;FALSE()))