簡體   English   中英

Arrayformula-將動態生成的范圍列表加在一起

[英]Arrayformula - Adding together a dynamically generated list of ranges

我正在尋找一種使用(我猜) ARRAYFORMULA將動態生成的范圍列表加在一起的ARRAYFORMULA

如果存在已知的范圍列表,則攻擊此問題的常規方法很好,我想要的結果示例可以使用以下方法工作:

=ARRAYFORMULA( A1:A10 + B1:B10 ) 

在這種情況下,我想將多個表中的范圍加在一起。 我不希望用戶每次添加要計算的新工作表時都必須手動調整數組公式,我也希望能夠添加一些邏輯以從計算中包括或刪除特定工作表,但是對於現在我很樂意忽略它,只專注於將單元格加在一起。

我的方法是創建一列帶有名稱列表的列,每個名稱都與文檔中的一張紙匹配,然后使用該列表通過INDIRECT動態地構建要加在一起的范圍列表。

.------------.
| sheet1     |     <---- SheetListNamedRange
|------------|
| sheet2     |
`------------'

這是一個簡單的例子

=ARRAYFORMULA( INDIRECT("'" & SheetListNamedRange & "'!D4:75") )

有許多故障模式取決於完成的方式,但是這個特定的公式僅放入第一張紙的值,而忽略其他任何值,我認為這是有道理的。

我所追求的與普通編碼語言中的循環中的i++類似。 有什么辦法可以使這項工作嗎?

如果我對您的理解正確,則希望獲得一個基於不同工作表中不同范圍生成的列表。 如果您的案例很簡單,就像您在帖子開頭提到的那樣,那么下面的案例就可以了。

={Sheet1!A1:A2; Sheet2!B1:B2}

如果要所有這些值的總和,可以使用SUM

=SUM({Sheet1!A1:A2; Sheet2!B1:B2})

如果這不是您想要的內容,請告訴我,以便我相應地更改答案。

您不能在INDIRECT引用數組的數組。 您將需要INDIRECT每個包含數組的工作表。

=SUMPRODUCT(ARRAYFORMULA(INDIRECT(A1&"!"&"D:D")+
                         INDIRECT(A2&"!"&"D:D")+
                         INDIRECT(A3&"!"&"D:D")+
                         INDIRECT(A4&"!"&"D:D")))

注意1:在這種情況下,結果是25 + 10 + 15。

  • 10是工作表1的總和sheet1!D:D
  • 15sheet2!D:D總和

注意2:INDIRECT沒有sheet3和sheet4等於0

注意3:您具有工作表列表的工作表的D:D必須為空

暫無
暫無

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

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