2017-04-03 90 views
1

我試圖用這個公式:使用在SUMPRODUCT和VLOOKUP公式列變量

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{4,5},0)) 

它工作正常,但我想嘗試使用一個變量的公式{4,5}部分(數組中的列進行求和),因爲公式需要根據此公式之前的圖紙輸入進行更改。

我在工作表上有單元格用於設置要搜索的初始和最終列(可能是10列,但10列將不得不從90個可用列中選擇)。列是種羣與每個年齡有關。所以,如果我需要10到15歲的人口,我需要總結5列。如果20-25,需要總結5個不同的列。

我試圖使用列功能,但它似乎並沒有爲我工作。

用戶通過在單元格中輸入搜索範圍的上限和下限來選擇列,然後將這些值轉換爲相應的數字列值。因此,如果他們選擇5作爲較低和10作爲上限,我知道我必須添加7才能在數據頁(第12列)上得到正確的數據列,對於上部(第17列)也是如此。

整個可能的搜索區域是$D$4:$DC$4623。因此,在公式中,如果我寫出來很長的路要走這將是:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{12,13,14,15,16,17},0)) 

我寧願使用變量,這樣的事情寫出來:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{L:U},0)) 

當變量L會是12和變量U將是17.

任何人都可以提出一種方法來寫公式?

回答

1

使用這種陣列式:

=SUM(VLOOKUP(B$4778,$D$4:$DC$4623,ROW(INDIRECT(D5 & ":" & E5)),FALSE)) 

凡D5是下和E5將上部。

作爲一個數組公式,它必須在退出編輯模式時用Ctrl-Shift-Enter而不是Enter來確認。如果正確完成,那麼Excel將在公式周圍放置{}

enter image description here


或更好,但使用這種非數組公式:

=SUM(INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),D5):INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),E5)) 

enter image description here

+0

輝煌!他們在英國的工作就像一種享受!你爲我節省了一大堆時間和挫折。我將使用n0n數組公式。謝謝! – Bob22