數組公式語法

數組公式語法

我想知道如何在 Excel 工作表中為以下長公式給出簡潔的公式:

= (A1*A6)+(B1*B6)+(C1*C6)...

我是否使用求和函數還是有其他函數可以實現此目的?我認為將冒號與SUM函數一起使用應該會有所幫助,但我不知道如何使用它。

答案1

您正在尋找求和功能。

=SUMPRODUCT(A1:C1,A6:C6)

這將傳回兩個(或更多)範圍內相應項目的乘積總和。

在此輸入影像描述

正如您從我連結到的 Microsoft 文件中看到的,範圍不需要是單行或單列(儘管它們必須具有相同的維度)。

SUMPRODUCT 最多可將 255 個不同範圍的數值相乘。例如=SUMPRODUCT(A1:C1,A6:C6,A11:C11)與 相同=A1*A6*A11+B1*B6*B11+C1*C6*C11

答案2

SUM函數將不起作用,因為它只是添加元素。您需要將這些值相乘傳遞給 SUM 就像=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)

當然,您也可以使用=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6它,其打字效果與SUM

有很多更好的解決方案。布萊克伍德已經建議其中之一。另一種替代方法是使用數組公式。您可以從 Microsoft 看到與您的範例完全相同的範例:

數組公式語法

一般來說,數組公式使用標準公式語法。它們都以等號 (=) 開頭,您可以在陣列公式中使用大多數內建 Excel 函數。主要差異在於,使用陣列公式時,按Ctrl+ Shift+Enter輸入公式。當您執行此操作時,Excel 會用大括號將陣列公式括起來 - 如果您手動鍵入大括號,您的公式將轉換為文字字串,並且它將不起作用。

數組函數是建立複雜公式的一種非常有效的方法。數組公式=SUM(C2:C11*D2:D11)與此相同:

=SUM(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).

要在您的情況下使用數組公式,您可以輸入(當然您需要相應地更改數組的最後一個元素)

=SUM(A1:E1*A6:E6)

然後按Ctrl+ Shift+Enter

一旦掌握了數組公式的思想,它就可以應用於大多數其他公式,甚至可以忘記SUMPRODUCT

更新:

較新的 Excel 版本在許多情況下甚至會自動使用陣列公式

從 Office 365 2018 年 9 月更新開始,任何可以傳回多個結果的公式都會自動將它們向下溢出或跨到相鄰儲存格。這種行為變化也伴隨著幾個新的動態數組函數。動態數組公式,無論是使用現有函數或動態數組函數,只需要輸入到單一儲存格中,然後按 Enter 確認即可。早些時候,遺留數組公式需要先選擇整個輸出範圍,然後使用Ctrl+ Shift+確認公式Enter。它們通常稱為 CSE 公式。

數組公式的指南和範例


數組公式是一個非常強大的工具。但請小心使用。每次需要編輯時,一定不要忘記按Ctrl+ Shift+Enter

為什麼要使用數組公式?

如果您有在 Excel 中使用公式的經驗,您就會知道您可以執行一些相當複雜的操作。例如,您可以計算任意給定年限內的貸款總成本。您可以使用陣列公式來執行複雜的任務,例如:

  • 計算單元格區域中包含的字元數。

  • 僅對滿足特定條件的數字求和,例如範圍中的最低值或介於上限和下限之間的數字。

  • 對一系列值中的每個第 n 個值求和。

數組公式還具有以下優點:

  • 一致性:如果您按一下從 E2 向下的任何儲存格,您會看到相同的公式。這種一致性有助於確保更高的準確性。

  • 安全:您無法覆蓋多單元格數組公式的組成部分。例如,按一下儲存格 E3 並按刪除。您必須選擇整個儲存格區域(E2 到 E11)並變更整個陣列的公式,或保持陣列不變。作為一項附加的安全措施,您必須按Ctrl+ Shift+Enter確認對公式的變更。

  • 較小的檔案大小:您通常可以使用單一陣列公式來取代多個中間公式。例如,工作簿使用一個陣列公式來計算 E 列中的結果。相同的結果。

由於訪問模式已知,因此速度也更快。現在,無需分別執行 11 種不同的計算,而是可以利用 CPU 中的多個核心和 SIMD 單元進行向量化並並行完成

答案3

另一種方法是在 A7 中放入表達式 =A1*A6 並向右複製到您想要的位置,然後對行 $7$ 求和以獲得最終答案。它不會像您想要的那樣在一個單元中完成此操作,但有時擁有中間產品很方便。兩個版本我都用過。對我來說,這個感覺更像 Excel,但你的品味可能會有所不同。

答案4

如果第 1 行和第 6 行中除了您想要的 for 之外沒有其他內容SUMPRODUCT(),您可以使用這個想法這篇評論中提到。在您的問題中概述的情況下,您將使用=SUMPRODUCT(1:1,6:6)

相關內容