我有下面的公式,我會在下面解釋:加快數組公式
{=SUM(IF(($G$1:$L$1=$O$1)*($G$2:$L$2=$O$2)*($G$3:$L$3=$O$3)*($G$4:$L$4=$O$4)*($G$5:$L$5=$O$5)*($G$6:$L$6=$O$6)*($G$7:$L$7=$O$7);G21:L21))}
這裏是工作的樣子:
在列摹L -我們有一個所有數據的「數據庫」。這些列將每季度累計增加(每季度約30列)。所以幾年後,我們最終得到了一堆數據庫列(1000 +列的原始數據)。爲了演示,我只包含了這6列。
正如您所見,每列包含特定參數,行1 - 7,允許識別特定的CountryCode +項目代碼+類別+會計年度,+ ...(等)。這使我們能夠追蹤一個獨特的特定項目並檢索其數據。
我們事後對列Ø什麼是我們想要檢索值(你可以看到行1一個具體的項目 - 7是一樣的下G列(我們正在努力檢索值這個特定的項目)。
這裏談到我們的公式。我在上面附着。這裏是什麼樣子,當我按下F2 。正如你所看到的IF陳述首先簡單地檢查特定列是否符合列O下的預定義標準,並且它將與行1-7之間的所有標準相匹配的所有列相加。
現在是這個問題。我們有一個工作表,其中包含20個項目(如O列),我們正在使用此數組公式來檢索值。問題是用這種方式檢索數據需要很多時間。我們還通過VBA採用了一種通過遍歷所有單元格的原理,然後插入一個公式,計算數組單元格,然後我們複製&將結果值粘貼到裏面(這樣我們就不會結束整列數組公式)。然而,它仍然需要長時間計算(1分鐘左右)。
我想知道,如果有更好的解決方案如何檢索已經提到的格式的數據(這意味着我們有一個特定的標準,我們試圖找到)? SUMIFS可能會更好嗎?或者是產品?甚至是完全不同的解決方案?
我願意接受任何可以加快流程的提案。
O列中有多少行包含此公式? – BrakNicku
你綁定了標準的SUMIFS(); '= SUMIFS(G21:L21; $ G $ 1:$ L $ 1; $ø$ 1,$ G $ 2:$ L $ 2; $ö$ 2; $ G $ 3:$ L $ 3; $ö$ 3; $ G $ 4:$ L $ 4; $ O $ 4; $ G $ 5:$ L $ 5; $ O $ 5; $ G $ 6:$ L $ 6; $ O $ 6; $ G $ 7:$ L $ 7; $ O $ 7)' –