2015-01-26 41 views
0
工作表INDIRECT函數

我希望通過這樣的事情來創建一個二維矩陣與Excel中的間接功能可按:在Excel

的想法是,如果你有A12:A14控股工作表名稱,其中每個工作表中的C3:C11都包含一些數據,您可以使用此簡單函數輕鬆將其收集到另一個工作表中的矩陣中進行處理。

在此之後,你可以使用=MMULT()或其他功能使用,如B12數組:B14,例如做一個矩陣乘法:

=MMULT(B12:B14*INDIRECT(A12:A14 & "!C3:C11")

有沒有一種簡單的方法來做到這一點,我很想念?例如用圓括號重新放置它或在某處放置一個SUM?

回答

3

陣列式**

=MMULT(TRANSPOSE(B12:B14),N(OFFSET(INDIRECT("'"&A12:A14&"'!C3"),TRANSPOSE(ROW($C$3:$C$11)-MIN(ROW($C$3:$C$11))),)))

問候

**數組公式不以同樣的方式爲「標準」公式輸入。您只需按住CTRL和SHIFT鍵,而不是按下ENTER鍵,然後按ENTER鍵。如果你做得對,你會注意到Excel在公式周圍放置了大括號(儘管不要試圖自己手動插入這些)。

+0

這是一個夢幻般的答案!非常感謝你,它的工作非常好,我只是在前面添加了一個轉置以將其轉換爲列形式。 – chase 2015-01-27 19:15:53

+0

不客氣! – 2015-01-27 22:00:33

1

如果您使用的建設

不創建一個矩陣,但它創建了一個「範圍的陣列」。 AFAIK只能用於某些功能,例如的「如果」型功能,如SUMIF,這樣就可以得到正值的總數在這些3個範圍與此式

=SUMPRODUCT(SUMIF(INDIRECT(A12:A14 & "!C3:C11"),">0"))

可以處理這一安排是SUBTOTAL另一個功能,因此該公式將總結在這些2個範圍中的所有值

=SUMPRODUCT(SUBTOTAL(9,INDIRECT(A12:A14 & "!C3:C11")))

+0

嗯,所以沒有辦法模擬矩陣乘法呢? – chase 2015-01-26 23:01:45

+0

我不知道一個簡單的方法來做到這一點 - 你的意思是你想要乘以B12的整個第一範圍,整個第二個由B13等?據推測,你可能有超過3張工作表? – 2015-01-26 23:14:41

+0

對,然後將它們沿軸求和,如矩陣乘法 – chase 2015-01-26 23:16:35