【发布时间】:2019-03-21 14:03:54
【问题描述】:
利润
销售
费用
销货成本
您好,我有一系列财务数据需要转化为利润。我已经能够根据特定的日期范围成功地将所有财务汇总在一起,但是我遇到了销售商品成本的问题。使用 match 函数(如果格式荒谬,我很抱歉,我是 stackoverflow 的新手;该公式也出现在 google sheet 中):
=SUM(INDIRECT("'Sales'!"&SUBSTITUTE(ADDRESS(1,MATCH($C$1,Sales!$1:$1,0),4),1,"") &MATCH(A3,Sales!A:A,0)&":"&SUBSTITUTE(ADDRESS(1,MATCH($E$1,Sales!$1:$1,0),4),1,"")&MATCH(A3,Sales!A:A,0)))+SUM(INDIRECT("'Expenses'!"&SUBSTITUTE(ADDRESS(1,MATCH($C$1,Expenses!$1:$1,0),4),1,"")&MATCH(A3,Expenses!A:A,0)&":"&SUBSTITUTE(ADDRESS(1,MATCH($E$1,Expenses!$1:$1,0),4),1,"")&MATCH(A3,Expenses!A:A,0)))+SUM(INDIRECT("'COGS'!"&SUBSTITUTE(ADDRESS(1,MATCH($C$1,COGS!$1:$1,0),4),1,"")&MATCH(A3,COGS!A:A,0)&":"&SUBSTITUTE(ADDRESS(1,MATCH($E$1,COGS!$1:$1,0),4),1,"")&MATCH(A3,Expenses!A:A,0)))
当匹配一个在所有数据表中保持不变的 ID 列表时,我可以逐行对每个表上的每个值求和。我的问题是:只有在同一位置但在销售选项卡上有相应的销售价值时,我只想将销售成本表相加才能获利。我尝试用 sumif 替换 sum 无济于事,因为我刚刚掌握了这个间接函数的窍门。任何人都可以向我提供任何可以帮助我更好地理解这个问题的信息,我真的很感激。谢谢
【问题讨论】:
-
对不起,但我想我还需要进一步澄清。您有 4 个选项卡,因此您想在这些选项卡上找到相应 ID 的位置,并且只有在选项卡 Sales 上它实际上是除空之外的任何值时,您想对所有这些值求和?我只是感到困惑,因为在您添加的示例数据中,利润选项卡上的单元格 C3 似乎有所不同。
-
正确;因此对于样本数据,永远不会出现销售没有相应费用的情况;但是,无论是否有销售,都会有商品销售价值的成本。对于单元格 B3(从 2019 年 1 月 1 日到 2019 年 1 月 6 日,ID 123 的利润)如果我将该日期范围内三张纸上的所有值相加,则利润将为 1.6;但是,由于 ID123 在 1/3-1/6 没有销售,我不希望它添加 1/3-1/6 的 COGS,在这种情况下只添加 1/1 和 1/2。
标签: excel vba match substitution excel-indirect