我對這個 StackExchange 風格很陌生,所以如果它屬於其他地方,請移動它;不過我想這會是最好的地方。
我正在製作一個 Excel 工作表,它僅將基本財務資料儲存在 5 列(Check Number
、Date of Transaction
、Description
、Profit from Transaction
和Balance After Transaction
)和不定行中。每個工作表代表一個月,每個工作簿代表一年。當我進行或接收付款時,我將其儲存為新行,這本質上使每月的行數不確定。每個事務的Balance
儲存格是Balance
其上方行的儲存格與其Profit
行的儲存格總和。我希望每個月都以一個特殊的行(列標題後的第一個行)開始,顯示該行的摘要最後的月的交易。例如,Balance After Transaction
儲存格將顯示最後一行的餘額,Profit from Transaction
儲存格將顯示當月的總體利潤)
我知道,如果我知道每個月正好有 100 項支出,我可以分別使用以下利潤和餘額公式在 3 月實現這一目標:
=February!E2 - February!E102
=February!E102
然而,我確實不是知道每個月的表中有多少行,並且我想盡可能地自動執行此操作(例如,如果我發現一月份遺漏或重複的費用,我不想更新所有公式指向一月份末的餘額)。如何讓 Excel 自動使用列中、任何給定 Excel 電子表格中或公式中最後輸入的值?
答案1
我的第一個建議是將此範圍轉換為表格(插入 -> 表),然後您可以添加總計行,您可以透過其名稱從不同的工作表/工作簿中引用該行,然後無需擔心行數。
如果這不是一個選項,那麼您可以這樣做:
要獲取上個月的利潤摘要,您應該使用
=SUM(Month!$D:$D)
(這假設利潤一欄除了利潤之外沒有其他數字)。
對於上個月的餘額,@Jesse 公式應該有效,但前提是您的表格從第一行開始,如果不是,您可以嘗試以下操作:
=INDEX(Month!$E:$E,MATCH(TRUE,ISBLANK(Month!$E:$E),0)-1)
輸入時,請確保使用CTRL+SHIFT+ENTER
.這將ISBLANK
在整個列上找到第一個空白單元格,然後檢索其上方的值(這將是最後一行)。
為了使其更加動態且面向未來,我建議使用命名範圍,因此如果需要,您不必更改對列的所有參考。
答案2
不要使用間接,這種等級的計算會很痛苦。間接是不穩定的,每次更改任何內容時都會導致工作表中的每個公式重新計算。
您可以使用索引代替。看起來像:
=INDEX(Month!A:E,COUNTA(Month!A:A),COLUMN())
您僅引用整個列,並使用該函數自動計算列偏移COLUMN()
。
答案3
另一種簡單的方法是將名稱插入工作簿中。一月、二月等。
例如,插入名稱“Jan”和 RefersTo =COUNT(January!A:A)+2 這將為您提供行數,您可以在公式中間接使用它來建立範圍引用。
該行中的最後一個儲存格將為 =INDIRECT("E"&Jan),如果您願意,您也可以在其他地方的摘要表中使用這些參考。
假設 A 列中有數字(日期)。