2015-01-15 56 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