2015-04-30 38 views
2

我有一些數據在Excel中,並希望訪問某些行與偏移功能,但該函數返回#VALUE!我的小數據集。偏移量函數返回#VALUE!與小數據集

使用此,OFFSET(A2;0;0;COUNTA(A2:A99999);1)我得到#VALUE!。將公式更改爲OFFSET(A2;0;0;100;1)時,我得到一個值。

enter image description here

任何建議,我在做什麼錯?

我很感謝你的回覆!

+1

什麼是完整公式?你似乎省略了像SUM或類似的包裝函數。 – Jeeped

+0

@Jeped Thx爲您的答案!但是,這是我的公式。我在一個非常複雜的vba腳本中使用這部分,它返回''VALUE' – mrquad

+1

@mrquad [Offset函數文檔](https://support.office.com/zh-cn/article/OFFSET-function-b3958b36- C30B-4fc3-979e-9b9bbfdcf592)。正如MissPalmer回答的那樣,它返回一個範圍。您需要以某種方式使用該範圍。順便說一句,如果你把你的公式中的任何一行與數據,你可以看到它會返回該行的數據。 –

回答

2

如果=OFFSET(A2;0;0;COUNTA(A2:A99999);1)是完整的公式你得到的結果與硬編碼數由於推斷位置(我希望這是正確的術語)。這意味着當你參考一個範圍但沒有處理全部範圍時,操作單元是相對於當前位置的單元。

如果你把=$A$2:$A$11在D2並填寫下你會根據你的行位置匹配列A.保持充絨即得到持續性的結果,當你走過去排11

此您將得到#VALUE!錯誤爲什麼=OFFSET(A2; 0; 0; 100; 1)返回零並且=OFFSET(A2; 0; 0; COUNTA(A2:A99999); 1)返回#VALUE!錯誤。第一個公式與0123'相同,因爲您將公式放在101行之上的單元格中(引用A列中返回值爲的空白單元格),它將返回零。第二個(與COUNTA function一樣)就像是說=$A$2:$A$11,並且您將它放入第13行(在第11行下方)的單元格中。

Addndum:

在一個相關的說明,INDEX functionMATCH function的這些變化是非易失性的,比OFFSET function更多的功能,同時提供一個單元格區域引用等同於你達到什麼用偏移和COUNTA function

'for text in a column 
=$A$2:INDEX($A:$A, MATCH("zzz", $A:$A)) 

'for numbers in a column 
=$A$2:INDEX($A:$A, MATCH(1e99, $A:$A)) 

'for unknown in a column 
=$A$2:INDEX($A:$A, IFERROR(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A))) 

'for combined in a column 
=$A$2:INDEX($A:$A, MAX(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A))) 

'I don't like COUNTA but it works as long as there are no blanks 
=$A$2:INDEX($A:$A, COUNTA($A:$A)) 

這種方法有許多變化。也許你可以爲你的目的使用上述之一。

2

OFFSET(A2;0;0;(range > 1);1)將返回一個數組而不是單個單元格的值。這隻有在你將總和或其他聚合函數放在它周圍時纔有意義。 (你想用公式來達到什麼目的?)

例如

=SUM(OFFSET(A2;0;0;COUNTA(A2:A99999);1))