如何为水平时间序列数据集创建条件SUMPRODUCT公式

时间:2016-03-08 16:27:25

标签: arrays excel excel-formula

我正在尝试在以下列方式格式化的2组时间序列数据中使用sumproduct:

数组1

       | 01/01/2016 | 02/01/2016 | ...
Stock1 | Price1a    | Price1b    |
Stock2 | Price2a    | Price2b    |

数组2

       | 01/01/2016 | 02/01/2016 | ...
Stock1 | Volume1a   | Volume1b   |
Stock2 | Volume2a   | Volume2b   |

对于给定日期,sumproduct公式将为该日期的所有股票执行价格*交易量。

示例: 2016年1月1日,公式将返回Price1a * Volume1a + Price2a * Volume2a。

如果不清楚,请提供任何帮助或问题。

1 个答案:

答案 0 :(得分:0)

我将范围放在两张不同的纸张上并使用了这个公式:

=SUMPRODUCT((INDEX($A:$C,2,MATCH(E1,$1:$1,0)):INDEX($A:$C,MATCH("ZZZZ",A:A),MATCH(E1,$1:$1,0)))*(INDEX(Sheet3!$A:$C,2,MATCH(E1,Sheet3!$1:$1,0)):INDEX(Sheet3!$A:$C,MATCH("ZZZZ",Sheet3!A:A),MATCH(E1,Sheet3!$1:$1,0))))

索引/匹配定义数组的范围。这些表必须具有相同的行数才能生效,而“卷到卷”的顺序必须相同。

在第一个和第三个INDEX中有,2,2是起始行。如果您的起始行不同,请将其更改为起始行号。

Match("ZZZ"...会找到包含文字的最后一行,因此请确保表格下方没有任何内容。

所有$C引用都需要更改为数据范围。它可能比你的数据更大而没有损害,所以如果你只是想把它设置为像$CC这样的话就可以了。

![enter image description here