我有两张excel的表格,我想采取sumproduct。
表1:
| A | B | C | D | E | F | G | H | I | J |
=========================================================================
1 | 1 | | | | | 2 | | | | |
2 | ABC | BAC | CDE | DSW | FSA | ABC | BAC | CDE | DSW | FSA |
3 | 3 | 2 | 4 | 1 | 3 | 2 | 5 | 2 | 4 | 3 |
...
n | f(1) | | | | | f(2) | | | | |
表2:
| X | Y |
================
10 | ABC | 10 |
11 | BAC | 15 |
12 | CDE | 12 |
13 | DSW | 8 |
14 | FSA | 17 |
表1是具有ABC等重复列的输入表,其中索引为第1行中当前部分的编号。表2是具有适用于ABC等下面的值的“费率”的参考。
在第n行中,我想应用一个只采用当前部分的sumproduct的通用公式,即A-E或F-J列。我有一个if语句,确保只在A和F列中适用以下公式:
=SUMPRODUCT(A3:ADDRESS(ROW(A3);MATCH(A$1+1;$1:$1;0)-1);Y10:Y14)
SUMPRODUCT收到产品的两个数组。第一个由已知的参考A3组成,并且应该延伸到同一部分和行中的最后一个字段(E3)。这是我无法工作的部分。
诀窍是最后可能会遗漏一些列。因此,完全相同的公式也适用于表1的下面(备选)案例。
| A | B | C | D | E | F | G | H |
===========================================================
1 | 1 | | | 2 | | | | |
2 | ABC | BAC | CDE | ABC | BAC | CDE | DSW | FSA |
3 | 3 | 2 | 4 | 2 | 5 | 2 | 4 | 3 |
...
n | f(1) | | | f(2) | | | | |
到目前为止的结果是我使用ADDRESS作为阵列的输入收到错误。
我确实尝试了INDIRECT,但到目前为止没有成功。
有什么建议吗?
答案 0 :(得分:0)
您可以使用INDEX/MATCH
来获取正确的范围.....但如果它可能不是5个单元格,您将无法将其乘以Y10:Y14
,所以也许试试这个版本:
=SUMPRODUCT(SUMIF(X10:X14;A2:INDEX(2:2;MATCH(A$1+1;$1:$1;0)-1);Y10:Y14);A3:INDEX(3:3;MATCH(A$1+1;$1:$1;0)-1))