【发布时间】:2015-01-15 01:36:17
【问题描述】:
我正在尝试开发一个公式,该公式根据两个单元格的地址动态设置的范围对列中的单元格求和,其中特定文本会根据两个单元格之间的行数而改变地址。
示例:工作表red_fruit
| A | B | C
1 | Fruit store | |
2 | | apples | 5
3 | | apples | 5
4 | | oranges | 1
5 | Fruit store branches (text) | |
在名为“summary”的第二张工作表中,使用工作表“red_fruit”中的数据,我想根据从“水果店”行到“水果店分店”行的范围设置在 C 列中添加苹果的数量,并且忽略橙子的数量。
但是,我不想使用绝对单元格地址(A1、B2 等),因为我知道“水果店”和“水果店分店”之间的列在以后的工作表中会发生变化。
我还需要将 C 值限制在“水果店分支”的深度,因为我知道将来该行之后会有更多数据。
过去我可以通过以下公式做到这一点:
=SUMIF( 'red_fruit'!$B$1:B, "apples*", 'red_fruit'!$C$1:C )
但这仅适用于 B 列的绝对值,并且对于 B 列和 C 列都没有动态限制。
所以现在我需要想办法用动态公式替换 B 值,如果我在“水果店”和“水果店分支”之间添加更多行,该公式会自动调整。
我能够使用以下公式动态获取 B 列的地址:
对于“水果店”行:
=ADDRESS((MATCH("fruit store",A1:A,1)),2,4)
结果是B1
对于“水果店分店”行:
=ADDRESS((MATCH("fruit store branches",A1:A,1)),2,4)
结果是B5
这就是我卡住的地方。我一直无法混合公式来创建动态范围。最好的我能想出以下公式,但它返回一个错误:
=SUMIF( indirect"&(ADDRESS((MATCH("fruit store",A1:A,1)),2,4):"&(ADDRESS((MATCH("fruit store branches",A1:A,1)),2,4) , "apples*", c1:c ))
我正在寻找的内容如下所示:
=SUMIF( 'red_fruit'!dynamic_cell_address_formula1:'red_fruit'!dynamic_cell_address_formula2 , "apples", 'red_fruit'!$C$1:C )
【问题讨论】:
-
你喜欢这些动态范围,不是吗?
-
是不是我喜欢动态范围。我需要使用它们才能通过添加数据来获得特定的结果。我的 excel 标签不好。我删了。
标签: google-sheets sum google-sheets-formula