我尝试开发一个公式,根据两个单元格的地址动态设置的范围对列中的单元格求和,该单元格具有根据两个单元格之间的行数改变地址的特定文本。
例:
表red_fruit
| A | B | C
______________________________________________________________________________
1 | Fruit store | |
2 | | apples | 5
3 | | apples | 5
4 | | oranges | 1
5 | Fruit store branches (text) | |
在名为"摘要"的第二张表格中,使用表格中的数据" red_fruit"我想根据行#34;水果店"中设置的范围添加C列中的苹果数量。排水"水果店分店"而忽略了橘子的数量。
但是,我不想使用绝对单元格地址(A1,B2等),因为我知道" fruit store"之间的列。和"水果店分店"将在未来的表格中改变。
我还需要将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 )
提前谢谢。
答案 0 :(得分:0)
=sum(filter(red_fruit!C:C,row(red_fruit!C:C)<MATCH("fruit store branches",red_fruit!A1:A,1),red_fruit!B:B="apples"))
答案 1 :(得分:0)
我无法使用单个公式找到解决此问题的方法,但我能够使用过渡表中的3个公式来解决它。
首先,我创建了一个名为&#34; AppleData&#34;的工作表。在AppleData,单元格B2中,我输入了以下公式:
=IFERROR(MATCH("Fruit Store",'red_fruit'!$A$1:$A,0), "")
这会给我第一个坐标来自&#34;水果店&#34;到&#34;水果店分店&#34;。如果没有数据,那么IFERROR公式只会将单元格留空。
然后,在下面的单元格B3中,我输入了这个公式:
=IFERROR(MATCH("*Fruit Store Branches*",'red_fruit'!$A$1:$A,0)-1, B2)
同样,如果没有数据,则单元格将匹配单元格B2,该单元格可以是空白的,也可以是有效的坐标编号。
接下来,在B4中,我添加了一个公式,该公式使用了单元格B2和B3的内容来创建&#34; Fruit Store&#34;和&#34; Frui Store分店&#34;,寻找&#34;苹果&#34;然后仅为apple条目添加数量:
=SUMIF( indirect("red_fruit!A"&AppleData!B2&":A"&AppleData!B3), "*apples*", indirect("red_fruit!C"&AppleData!B2&":C"&AppleData!B3) )
然后我为一年中的每个月创建了一个类似的系统,因为每个月我都会得到一个包含不同数据的新电子表格,以便对其进行排序并插入摘要表。
所以现在我所要做的就是去一个摘要表并加上&#34; B4&#34;单元格,从而解决了为此场景创建动态范围的问题。
就个人而言,我宁愿在摘要表中使用单一的公式,但由于这也有效并且它解决了同样的问题,我可以忍受它。
感谢那些真诚地解决这个问题的人。
答案 2 :(得分:0)
这可以做你想要的=)
=SUMIFS(
OFFSET(red_fruit!$A$1,
MATCH("Fruit Store",red_fruit!$A:$A,),2,
MATCH("Fruit store branches (text)",red_fruit!$A:$A,),1),
OFFSET(red_fruit!$A$1,MATCH("Fruit Store",red_fruit!$A:$A,),1,
MATCH("Fruit store branches (text)",red_fruit!$A:$A,),1),"apples")