2016-09-22 98 views
1

我想知道如何從Excel中的二維數組中獲取行和列總計。這是一件相當常見的事情,但我無法通過搜索行和列總數來找到答案,所以我認爲將它作爲問題發佈是值得的。從Excel中的二維數組中獲取行和列總數

假如我想找到最低的列總數和最高的行總計以下數組是在單元格A1在:D3: -

1 2 3 4 
5 6 7 8 
9 10 11 12 

我最初的想法是沿

=min(A1:D3*(column(A1:D3)={1,2,3,4})) 

但這種簡單的方法不起作用。我記得讀過你在這些情況下必須使用mmult,並且看到使用它們的高級公式,但是不太清楚如何。我會嘗試回答我自己的問題,但其他建議更值得歡迎。

回答

1

你可以用你提到的MMULT來做到這一點。在下列情況應設置工作:

最小列

=MIN(MMULT({1,1,1},A1:D3)) 

最大行:

=MAX(MMULT(A1:D3,{1;1;1;1})) 

注數組中的許多1S如何 - 對於行calc下,你需要一個各1個列(即3)和列相反。還要注意陣列的順序 - 它不會以其他方式工作

0

是的,你必須mmult提供包含所需總數的列數組或行數組,然後使用可以使用MAX,MIN或任何其他集合函數來獲得你需要的值。

列總計

=MIN(MMULT(TRANSPOSE(ROW(A1:D3))^0,A1:D3)) 

行總計

=MAX(MMULT(A1:D3,TRANSPOSE(COLUMN(A1:D3))^0)) 

這樣的想法是,你創建一個單排陣{1,1,1}並通過乘以二維數組最後得到一個數組{15,18,21,24}並從中取最小值。

或者創建一個單列數組{1; 1; 1; 1},並用它乘以原始數組,最後得到最大值的數組{10; 26; 42}。

請記住,mmult與您在大學時可能學到的矩陣乘法一樣,對於每個單元格,它在第一個數組的相應行中的單元格中工作,並在第二個數組中的相應列的單元格下方乘以每對並將其添加到總數中。所以第一個數組中的列數必須總是等於第二個數組中的行數。

這些,作爲@Scott克拉納提醒我,要與

進入有數組公式按Ctrl輸入

+1

FWIW:不是需要證實這些數組公式用Ctrl-shift-Enter。 –