簡體   English   中英

Excel-了解SUMPRODUCT公式

[英]Excel - Understanding a SUMPRODUCT formula

我有一個別人沒有文檔就創建的excel公式,我正努力理解它。

=SUMPRODUCT(-MID(TEXT(MID(TEXT(F2,REPT(0,15)),ROW(INDIRECT("1:15")),1)*{2;1;2;1;2;1;2;1;2;1;2;1;2;1;2},"00"),{1,2},1))

看起來它從另一個數字創建了一個“隨機”數字。 我正在努力解決的幾個關鍵問題:
*為什么給MID()函數一個數組( {1,2} )?
*由於有一個SUMPRODUCT() ,它需要一個數組,所以我假設-MID()函數的結果是某種數組,我如何看待它呢?
*通過數組{2; 1; 2; 1; 2; 1; 2; 1; 2; 1; 2; 1; 2; 1; 2}進行乘法運算會做什么?
* INDIRECT()函數似乎總是返回1?

任何幫助都會得到應用。

EXCEL中有一個名為“ 評估公式”的功能,它是逐步檢查公式的好工具。

假設F2為123

  1. REPT(0,15)

    生成帶有15個“ 0”的字符串,即"000000000000000"

  2. TEXT(F2,[1])

    將F2轉換為15個字符的字符串。 例如。 123 > "000000000000123"

  3. ROW(INDIRECT("1:15"))

    返回數組{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}

  4. MID([2],[3],1)

    將[2]分隔成一個數組,每個元素都是一個char {"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"1";"2";"3"}

  5. [4]*{2;1;2;1;2;1;2;1;2;1;2;1;2;1;2}

    由於{A;B} * {C;D} = {A*C;B*D}

    {"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"0";"1";"2";"3"}*{2;1;2;1;2;1;2;1;2;1;2;1;2;1;2} ={0*2;0*1;0*2;....}={0;0;0;0;0;0;0;0;0;0;0;0;2;2;6}

  6. TEXT([5],"00")

    通過在前面添加“ 0”,將數組中的元素轉換為兩個字符。 數組轉到{"00";"00";"00";"00";"00";"00";"00";"00";"00";"00";"00";"00";"02";"02";"06"}

  7. MID([6],{1,2},1)

    請注意,{A,B}和{A; B}是不同的。 {A,B}是具有1行2列的數組; {A; B}是具有2行1列的數組。

    在此公式中,您可以想象兩次執行MID,第一次使用1作為第二個參數,第二次使用2。

    結果是一個二維數組: {"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","0";"0","2";"0","2";"0","6"}

  8. SUMPRODUCT(-[7])

    [7]之前的減號將強制數組中的所有元素轉換為具有相反符號的數字。 在此示例中,其總和為0+0+0+...+(-2)+0+(-2)+0+(-6) = -10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM