Ash*_*hok 3 excel excel-2007 worksheet-function 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
Run Code Online (Sandbox Code Playgroud)
我需要做一个给定产品名称的所有缩进的总和.
例如:我需要S1的Total Indent,
我可以通过VBA实现这一点,但我想知道在使用CSE/Array公式的excel函数中是否可行.
编辑:
Sheet2中的值与Sheet1的顺序不同.它们是完全随机的.我的SheetB将是随机的,如下所示:
SheetB:
Code Indent
19834 40
19875 15
47875 22
13575 25
35675 20
Run Code Online (Sandbox Code Playgroud)
{=SUM(NOT(ISNA(MATCH((($A$2:$A$6="S1")*(B2:B6)),Sheet2!$A$2:$A$6,FALSE)))*(Sheet2!$B$2:$B$6))}
Run Code Online (Sandbox Code Playgroud)
MATCH的第一个参数解决了
{19875;0;13575;35675;0}
Run Code Online (Sandbox Code Playgroud)
MATCH解决了
{1;#N/A;3;4;#N/A}
Run Code Online (Sandbox Code Playgroud)
你必须确保SheetB中没有零.NOT ISNA将这些转换为TRUE和FALSE并解析为
{TRUE;FALSE;TRUE;TRUE;FALSE}
Run Code Online (Sandbox Code Playgroud)
最终的SUM看起来像这样
=SUM({TRUE;FALSE;TRUE;TRUE;FALSE}*{40;15;22;25;20})
Run Code Online (Sandbox Code Playgroud)
更新
当列表的顺序不同时,我无法找出单阵列解决方案.我对OFFSET和TRANSPOSE的尝试给出了错误的答案或崩溃的Excel.如果您可以使用辅助列,则可以将此公式放在第一张表的第三列中
=VLOOKUP(B2,Sheet2!$A$2:$B$6,2,FALSE)
Run Code Online (Sandbox Code Playgroud)
然后使用此数组公式来总结它们
{=SUM(($A$2:$A$6=A2)*($C$2:$C$6))}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9306 次 |
| 最近记录: |