Excel - 递归VLookup
我最近了解了Ctrl + Shift +输入Excel的数组公式,目前仍在学习它们。来我的问题,
SheetA:
Product Code
S1 19875
S2 19834
S1 13575
S1 35675
S2 47875
SheetB:
Code Indent
19875 40
19834 15
13575 22
35675 25
47875 20
我需要做一个给定产品名称的所有缩进的总和。
例如:我需要S1的Total Indent,
在SheetA上查找Vlookup,获取代码19875
在SheetB上执行vlookup,获得40的缩进
在表A上的下一个Vlookup,获取代码13575
在SheetB上使用13575到Vlookup,获得22的缩进
在表A上的下一个Vlookup,获取代码35675
在SheetB上使用35675到Vlookup,得到缩进25
总和40 + 22 + 25,返回87
我可以通过VBA实现这一点,但我想知道在使用CSE / Array公式的excel函数中是否可行。
编辑:
Sheet2中的值与Sheet1的顺序不同。它们是完全随机的。我的SheetB将是随机的,如下所示:
SheetB:
Code Indent
19834 40
19875 15
47875 22
13575 25
35675 20
没有找到相关结果
已邀请:
5 个回复
械怒等
MATCH的第一个参数解决了
MATCH解决了
你必须确保SheetB中没有零。 NOT ISNA将这些转换为TRUE和FALSE并解析为
最终的SUM看起来像这样
更新 当列表的顺序不同时,我无法找出单阵列解决方案。我对OFFSET和TRANSPOSE的尝试给出了错误的答案或崩溃的Excel。如果您可以使用辅助列,则可以将此公式放在第一个工作表的第三列中
然后使用此数组公式来总结它们
锹缄
眠皇
辽躺
疾很毋悲
数组已输入 哪里 Code1 = SheetA上的代码的动态范围,从Row2开始 Code2 =从Row2开始的SheetB上的代码的动态范围