gpt4 book ai didi

Excel - 递归 VLookup

转载 作者:行者123 更新时间:2023-12-02 14:55:42 24 4
gpt4 key购买 nike

最近了解了Excel的Ctrl+Shift+Enter数组公式,目前还在学习中。说到我的问题,

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 的总缩进,

  • 在SheetA上Vlookup,获取代码19875
  • 在 SheetB 上执行 vlookup,获取缩进 40
  • 接下来在工作表 A 上进行 Vlookup,获取代码 13575
  • 使用13575在SheetB上查找,得到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

最佳答案

{=SUM(NOT(ISNA(MATCH((($A$2:$A$6="S1")*(B2:B6)),Sheet2!$A$2:$A$6,FALSE)))*(Sheet2!$B$2:$B$6))}

MATCH 的第一个参数解析为

{19875;0;13575;35675;0}

比赛结果为

{1;#N/A;3;4;#N/A}

您必须确保 SheetB 中没有零。 NOT ISNA 将这些转变为 TRUE 和 FALSE,并决定

{TRUE;FALSE;TRUE;TRUE;FALSE}

最终的 SUM 如下所示

=SUM({TRUE;FALSE;TRUE;TRUE;FALSE}*{40;15;22;25;20})

更新

当列表的顺序不同时,我无法找出单数组解决方案。我对 OFFSET 和 TRANSPOSE 的尝试要么给出了错误的答案,要么导致 Excel 崩溃。如果您可以忍受使用辅助列,则可以将此公式放在第一个工作表的第三列中

=VLOOKUP(B2,Sheet2!$A$2:$B$6,2,FALSE)

然后使用这个数组公式将它们相加

{=SUM(($A$2:$A$6=A2)*($C$2:$C$6))}

关于Excel - 递归 VLookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com