在Excel中的两个表之间将SUMIFS转换为SUBTOTAL

时间:2018-10-27 13:07:12

标签: excel-formula

我一直在用Excel创建房屋预算文件,但遇到了一个麻烦事,希望有人可以帮助我解决这个问题。我在这个论坛上看到了几个答案,但没有将这些答案合并到我的电子表格中的运气。

我在单独的工作表上有两个表,需要访问另一个表中一个表的值:

Sheet(1)的表名为INCDATA

Sheet(2)的表名为IEINC

表IEINC具有要在表INCDATA中查找的源(搜索)条件。

我有以下公式可以正确地将两个表之间的数据求和;

OBJECT

我现在想要做的是将其添加到“ SUBTOTAL”函数中,或将其更改为“ SUBTOTAL”函数,以便在过滤表INCDATA中的日期时仅计算可见行

我尝试过这个公式,但是得到了错误的结果;

=SUMIFS(INDEX(INCDATA,,MATCH(C$10,INCDATA[#Headers],0)),INCDATA[[Details]:[Details]],$B11)

该公式将显示所有值的总计:
60.00(显示在搜索条件的每一行中)

但是我要做的是在过滤后根据显示的行添加并显示各个搜索条件。

Income01 10.00
收入02 20.00
收入03 30.00

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

也许这就是您想要的。

小计从109更改为9。

=SUBTOTAL(9, .... 

Function of Subtotal:

“ Function_num必需。数字1-11或101-111,用于指定要用于小计的函数。1-11包括 manuallyhid (已过滤)行,而101-111排除了它们(隐藏/过滤的行);总是排除过滤出的单元格。”


因此,转换此公式以进行过滤应从以下位置进行:

=SUMIFS(INDEX(INCDATA,,MATCH(C$10,INCDATA[#Headers],0)),INCDATA[[Details]:[Details]],$B11)

为此,应用于“收入和支出”工作表单元格:H11

=SUMPRODUCT(SUBTOTAL(9, OFFSET('Income(Data)'!$C$5:$C$10,ROW('Income(Data)'!$C$5:C9)-MIN(ROW('Income(Data)'!$C$5:C9)),,1)),--('Income(Data)'!$B$5:B9=$B$11))

因此,当您在工作表“收入(数据)”上应用过滤器时:

enter image description here

它将仅对“收入和支出”中应用的过滤器求和:

enter image description here