计算 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()))
在 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()))