簡體   English   中英

簡單現金簿中總計的數組公式

[英]Arrayformula for total in simple cashbook

我正在嘗試創建一個簡單的arrayformula來保持現金簿中的運行記錄。 很簡單,但讓我難住了。 這是一個基本表:

一個 C
1 出去 全部的
2
3 10 10
4 1 9
5 7 16
6 5 21
7 4 17

因此,例如要在單元格 C3 中生成總數,我使用公式offset(C3,-1,0)-B3+A3但我想我可以將它包裝在arrayformula中,所以它變成arrayformula(offset(C3:C,-1,0)-B3:B+A3:A)但它會出錯並且需要一個額外的行,這會無休止地進行。

任何幫助都會很棒。

  • 使用兩個運行總計: INOUT並從IN中減去OUT

  • 創建運行總計的經典數組公式解決方案是使用帶有可變字符串(相對於range參數)的 SUMIF 作為criterion

     =ARRAYFORMULA(SUMIF(ROW(A2:A7),"<="&ROW(A2:A7),A2:A7)-SUMIF(ROW(A2:A7),"<="&ROW(A2:A7),B2:B7))
  • 開放范圍版本:

     =ARRAY_CONSTRAIN(ARRAYFORMULA(SUMIF(ROW(A2:A),"<="&ROW(A2:A),A2:A)-SUMIF(ROW(A2:A),"<="&ROW(A2:A),B2:B)),ARRAYFORMULA(LOOKUP(2,1/(A2:A<>""),ROW(A2:A))),1)

利用:

=ARRAYFORMULA(IF((A2:A<>"")+(B2:B<>""),
 MMULT(TRANSPOSE((ROW(B2:B)<=
 TRANSPOSE(ROW(B2:B)))*IF(A2:A="", -B2:B, A2:A)), 
 SIGN(IF(A2:A="", -B2:B, A2:A))^0), ))

在此處輸入圖像描述


或者:

=ARRAYFORMULA(IF((A2:A<>"")+(B2:B<>""),
 MMULT(TRANSPOSE((ROW(B2:B)<=TRANSPOSE(ROW(B2:B)))*
 IF(A2:A="", A2:A-B2:B, A2:A-B2:B)), 
 SIGN(IF(A2:A="", B2:B, A2:A))^0), ))

在此處輸入圖像描述


更新:

=ARRAYFORMULA(IF(A2:A="",,MMULT(
 TRANSPOSE((ROW(INDIRECT("2:"&MAX((A2:A<>"")*ROW(A2:A))))<=
 TRANSPOSE( ROW(INDIRECT("2:"&MAX((A2:A<>"")*ROW(A2:A))))))*
 (INDIRECT("C2:C"&MAX((A2:A<>"")*ROW(A2:A)))-
  INDIRECT("D2:D"&MAX((A2:A<>"")*ROW(A2:A))))), 
 SEQUENCE(MAX((A2:A<>"")*ROW(A2:A))-1)^0)))

在此處輸入圖像描述

多謝你們。 我嘗試了@player0 方法並得到一個關於數組變大的錯誤。 出於某種原因,@TheMaster 版本卡在了進度條上。 無論如何在谷歌幫助論壇上找到了這個

=ArrayFormula(if(len(A4:A),(SUMIF(ROW(D4:D),"<="&ROW(D4:D),D4:D)+SUMIF(ROW(C4:C),"<="&ROW(C4:C),C4:C)),))

並且似乎有效(我現在在 A4:A 中有一個約會)。 但是,如果您發現任何潛在問題,請告訴我

更新:我看到我從@MattKing 改編的答案與@TheMaster 早期的答案非常相似,只是我們如何強制arrayformula 循環通過單元格的一種變化。

答:除了player0的解決方案,我發現了一個相關的問題(其中player0也有答案)。 並改編了@MattKing 的公式答案。 在 C1 中嘗試以下操作。

={"Total";
ARRAYFORMULA(SUMIF(SEQUENCE(ROWS(A2:A),1),"<="&SEQUENCE(ROWS(A2:A),1,1,1),A2:A) -
             SUMIF(SEQUENCE(ROWS(B2:B),1),"<="&SEQUENCE(ROWS(B2:B),1,1,1),B2:B) )}

由於它最初設計為對多列求和,因此對於您的單列實現,我不確定我是否已盡可能地減少它。

暫無
暫無

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

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