2016-07-30 59 views
0

我想引用我的excel表格中可變範圍內的一系列數據。意味着本月的數據有80行,但下個月可能有100行。所以我只想要一個方法來引用一個範圍的變量範圍。所以我可以在下面的公式中使用該方法: -如何引用一個變量範圍

=SUMPRODUCT(Allocation_Updt!$J$2:$J$83*((RIGHT(Allocation_Updt!$F$2:$F$83,6)+0)=$E62))/100 

這裏83是數據手冊的最後一行。但下次可以更改。將它設置爲10000(我的數據幾乎是最大限制)會給我錯誤。

回答

1

使用,

match(1e99, Allocation_Updt!$J:$J) 

...找到一列中的最後一個數字或日期的行數。隨着J83的最後一個值都以下三個區域引用的都是一樣的東西

Allocation_Updt!$J$2:$J$83 
Allocation_Updt!$J$2:index(Allocation_Updt!J:J, match(1e99, Allocation_Updt!$J:$J)) 
index(Allocation_Updt!J:J, 2)):index(Allocation_Updt!J:J, match(1e99, Allocation_Updt!$J:$J)) 

所以你SUMPRODUCT function可以動態地限制到需要的正是用,

=SUMPRODUCT(Allocation_Updt!$J$2:index(Allocation_Updt!$J:$J, match(1e99, Allocation_Updt!$J:$J))*((RIGHT(Allocation_Updt!$F$2:index(Allocation_Updt!$F:$F, match(1e99, Allocation_Updt!$J:$J)),6)+0)=$E62))/100 

注意,最後一行J列中的數字用於獲得F列和J列中的最後一個有效條目。

考慮到SUMPRODUCT的持續性,我可能會執行一些測試,其中

=sumifs(Allocation_Updt!$J:$J, Allocation_Updt!$F:$F, "*"&$E62)/100 

這並不是特定的'最右邊的6個字符匹配';這是一個'與E62'結尾的比賽。對自己的數據進行一些測試將很快證明這是否可行。它更高效,更寬容,您可以使用完整的列引用而不會受到懲罰。

+0

我可能實際上將E62值轉換爲文本而不是RIGHT(...,56)轉換爲數字。 SUMPRODUCT很容易在無法轉換爲數字的文本上扼制,但實際上沒有任何數字無法轉換爲文本。 – Jeeped

+0

噸upvotes和喜歡你。這兩個解決方案對我來說都很好。 –

2

嘗試將數據範圍轉換爲表格。它會自動爲每個列應用一個名稱。這些列名稱可用於引用列中的數據,並且該數據範圍將動態前進。

+0

我很抱歉,但我無法對數據佈局進行任何更改 –