2015-01-15 60 views
1

我正在尝试开发一个公式,根据两个单元格的地址动态地设置列中的单元格,并根据具体的文本更改地址许多行在两个单元之间。如何将地址匹配公式转换为Google Spreadsheets中的动态范围

实施例:
red_fruit

|  A      |  B   |  C 
______________________________________________________________________________ 
1 |  Fruit store    |   |  
2 |         | apples |  5 
3 |         | apples |  5 
4 |         | oranges |  1 
5 | Fruit store branches (text) |   | 

在称为“摘要”的第二片,使用来自表“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) 

结果iss 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

为什么[excel]标签? – pnuts

+0

是不是我喜欢动态范围。我需要使用它们才能通过添加数据来获得特定结果。我对excel标签不满意。我删了它。 – ramenmath

回答

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"))

+0

没有工作。我有一个#REF!错误。此外,我认为公式不应仅限于“水果店分支”之前的行,还应该由“水果店”后的行定义,因为我将多次应用相同的公式到数据的不同部分在表单中。所以将有一个由“水果店”定义的部分:“水果店分店”和另一个由“果汁吧”定义的:“果汁店分店”。 – ramenmath

+0

您是否尝试过调整公式以适应您的需求?你是否尝试过只使用Filter()部分,直到它返回你想要的行? SO是一个帮助网站,而不是我们为你工作... – user3616725

+0

是的,我调整了它,我仍然有一个错误。不,我不是在寻找某人为我解决问题,因为您可以从我自己的问题中看到使用过渡表和3个公式来创建范围,然后是最终添加的问题。 – ramenmath

0

我无法找到解决此问题,以单一的式,但我能够在过渡片使用3-公式来解决它。

首先,我创建了一个名为“AppleData”的工作表。在AppleData,B2单元格后,就进入下面的公式:

=IFERROR(MATCH("Fruit Store",'red_fruit'!$A$1:$A,0), "") 

这会给我第一个从“水果商店”到“水果商店分支”的范围内协调。如果没有数据,则IFERROR公式将简单地将单元格留空。

然后,在下面的单元,B3,就进入此公式:

=IFERROR(MATCH("*Fruit Store Branches*",'red_fruit'!$A$1:$A,0)-1, B2) 

再一次,如果没有数据,则细胞将匹配单元格B2,这将是任一空白,或与有效坐标号码。

接下来,在B4中,我添加了一个公式,该公式使用单元格B2和B3的内容创建“Fruit Store”和“Frui Store Branches”之间的范围,查找“Apple”,然后仅添加苹果条目:

=SUMIF(indirect("red_fruit!A"&AppleData!B2&":A"&AppleData!B3), "*apples*", indirect("red_fruit!C"&AppleData!B2&":C"&AppleData!B3)) 

然后,我创造了一年中每个月的类似系统,因为每个月我会得到不同的数据的新的电子表格进行排序,并插入一个汇总表。

所以现在我需要做的就是去一个汇总表,并添加了“B4”细胞,从而解决了这个场景创建动态范围的问题。

就个人而言,我会一直喜欢在汇总表使用单一的公式,但因为这也适用,它解决了同样的问题,我可以住在一起。

感谢你们谁给了它一个真诚的射击在解决这个问题。

+0

我忘了提及:此解决方案适用于Google Spreadsheets,如果您将电子表格下载到Excel格式,则它工作正常。但是,如果您在Open Office 4.1中打开它的.xlsx文件,它将无法工作,因为Open Office 4.1不处理IFERROR公式。不过,它将在Libre Office的最新版本中运行。我还注意到由于某些原因,Google Spreadsheet将A打开的值更改为Excel的A1024。这可能会导致问题,但可以通过在公式中找到从A1024到A的替换来解决。 – ramenmath