如何根據發票日期和付款條件,自動帶出應收款項到期日(Excel/Ragic 公式教學)?
B2B 交易時,為了方便客戶並提供週轉時間,通常不會在交易當下收款,而是將這筆款項列為應收帳款,並根據雙方議定的付款條件(如月結 30 天),定一個未來的收款日期。
對負責管理收款事宜的公司人員來說,掌握好每筆帳款的應收日期,知道什麼時候得催帳,才能避免延遲收款,影響公司的資金周轉和現金流穩定性。
然而,處理過這類帳款的人都知道,應收日期的計算,很多時候不是「出貨日期是 3 月 16 號,月結 30 天就是 4 月 15 日收款」這樣直接加 N 天的直線邏輯,而可能要搭配特定的基準,如公司固定的「結帳日」、「付款日」,做出更複雜的推算。
在這篇文章裡,我們會教你如何用 Excel 公式來計算應收日期,並加碼告訴你如何在 Ragic 裡套公式,讓應收日期的計算更有彈性。(Ragic 是一個跟 Excel 很類似,但在資料串連上能更節省時間的工具。它的子表格可以一目了然列出購買商品明細,還能設定帳款到期提醒,自動發信通知客戶繳款。如果你對於這樣的功能有興趣的話,可以試試看 Ragic,或者是你原來就是 Ragic 用戶的話,更可以參考這個教學。)
現在就讓我們一起看看,如何透過 Excel 和 Ragic 自動推算收款日期,減少手動作業及失誤,提升工作效率吧!
帳款到期日計算的相關名詞介紹
在開始撰寫公式之前,為了幫助你理解後續計算邏輯,這裡先介紹幾個計算應收日期時常用的重要名詞:
發票日期
發票日期指的是公司開立發票的日期,通常發生在商品出貨或服務完成時,也就是交易完成的日期。這是計算應收帳款到期日的重要依據,客戶的付款期限通常從這個日期開始計算。
結帳日
結帳日是公司每月定期結算貨款的日期,通常設定在每月的某一天(例如每月 25 日)。當發票日期在當月結帳日之前,該筆貨款會歸入當月帳款;若發票日期超過結帳日,則歸入下個月的帳款。
付款條件
買賣雙方通常會協議一個付款條件,並依此條件進行貨款的收付。常見的付款條件有月結 30 、60 、90 或 120 天,應收帳款的到期日將根據月結天數來計算。
收款日
為了便於帳務管理,公司通常會設定一個固定的每月收款日(例如每月月底)。若客戶同意,這個日期將作為應收款項的支付日期。
月結計算的三種常見邏輯
在計算應收帳款到期日時,常見的月結計算邏輯有以下三種:
1. 簡單版:發票日期直接加月結天數(結帳日 = 月底,沒有統一收款日)
這是最直觀的計算方式,只需根據發票日期和月結條件來計算。例如,若發票日期為 7/11,月結條件為 30 天,則到期日為 8/10。
2. 進階版:根據固定結帳日與收款日判斷應收日期(最常用)
為了簡化帳務處理,不少公司除了會設定固定的結帳日之外(常見為每月 25 日),也會設定一個固定的收款日,作為和大部分客戶往來的帳款到期日。這個固定的收款日可以是每月的某一天(例如每月 5 日)或是月底,這是一般比較常見的做法。
以上圖為例,假設 A 公司的結帳日為每月 25 日,收款日為每月月底。若發票日期為 7 月11 日,因日期落在結帳日 7 月 25 日 之前,因此這筆屬於 7 月貨款。根據月結條件(月結 60 天),從 7 月 25 日結帳日往後算 60 天為 9 月 23 日,而最接近的收款日為 9 月 30 日。因此,這筆帳款的到期日為 9 月 30 日。
3. 變化版:根據特定客戶改變結帳日和收款日
在計算應收日期時,一般是以賣方設定的收款日為基準,但有時在面對規模較大或知名度較高的客戶時,因為對方議價能力較強,賣方通常需要根據對方要求的付款日來調整計算方式。
例如,若 B 客戶要求每月 10 日為固定付款日,即便 A 公司按照月結 30 天計算的收款日是 9/30,最終仍需調整為 10/10。這類收款日期依客戶付款日調整變化的情況通常是特例,僅適用於特定幾筆帳款。
此外,若公司的結帳日與收款日並非固定的 25 日與月底,可以將這些日期設成欄位,讓公式能根據不同的結帳日和收款日進行彈性計算。這種方式更有彈性,可以根據各公司不同的情況做調整。
月結公式計算教學
一、簡單版:發票日期直接加上月結天數
1. Excel 作法
(1) 如果你已經有一份記錄發票日期和付款條件的 Excel 表單,要計算應收日期時,可以在表單上加入一個「預計收款日」的欄位。
(2) 在計算預計收款日時,可以依照付款條件,將發票日期加上相對應的天數。假設發票日期儲存在 A 欄,付款條件儲存在 I 欄,則可以設定如下公式來計算預計收款日:
=IF(I2="月結 30", A2+30, IF(I2="月結 60", A2+60, IF(I2="月結 90", A2+90, IF(I2="月結 120", A2+120,""))))
設定完成後,Excel 會根據付款條件自動計算並顯示預計收款日。
2. Ragic 作法
在接下來的教學中,我們將以「應收帳款」快速範本作為範例,但你也可以將這些步驟應用到自己建立的發票表單上。
(1) 在範本中,開立日期位於 A2 欄位,收款條件則位於 A4 欄位。因此在設計模式中,我們可以使用條件公式來根據付款條件,將發票開立日期加上相應的天數,來計算「應收日期」:
IF(A4.RAW="月結 30 (Net 30)", A2+30, IF(A4.RAW="月結 60 (Net 60)", A2+60, IF(A4.RAW="月結 90 (Net 90)", A2+90, IF(A4.RAW="月結 120 (Net 120)", A2+120,""))))
(2) 公式設定完成後,只需在表單中填入發票日期和收款條件,系統即可自動計算出對應的應收日期。
二、進階版:固定結帳日與收款日
如果公司結帳日是每月 25 日,收款日為每月月底,如何依據發票日期和付款條件來計算應收帳款到期日?
我們可以用條件公式和日期公式 DAY () 來判斷發票日期是否已超過結帳日(25 日)。如果超過,則屬於下月帳款,帳款到期日將延後一個月,再依照付款條件推算(例如月結 30 天則加一個月,60 天則加兩個月,以此類推),並讓到期日落在月底。若發票日期在 25 日或之前,則該款項仍歸屬於當月帳款,並依據付款條件推算到期日,使其落在月底。
舉例來說,假設有兩張發票,付款條件皆為月結 30 天:
為了確保到期日落在月底,我們可以用 Excel 和 Ragic 都支援的 EOMONTH 函數。這個函數可根據指定的日期和相隔的月份數,計算並傳回該月的最後一天作為到期日。
1. Excel 作法
(1) 我們可以在「預計收款日」欄位上,將公式設定為:
=IF(DAY(A2)>25,EOMONTH(A2, IF(I2="月結 30", 2, IF(I2="月結 60", 3, IF(I2="月結 90", 4, IF(I2="月結 120", 5, 0))))), EOMONTH(A2, IF(I2="月結 30", 1, IF(I2="月結 60", 2, IF(I2="月結 90", 3, IF(I2="月結 120", 4, 0))))))
這個公式會先檢查發票日期是否超過 25 日。如果超過 25 日,則會依照月結條件(如月結 30 天、60 天等)額外加上一個月,並將到期日設為該月的月底。如果發票日期是 25 日或之前,則直接依據月結條件計算到期日,並確保到期日落在該月的月底。
(2) 設定完成後,系統就能自動計算出預計收款日。
2. Ragic 作法
(1) 我們一樣以「應收帳款」快速範本作為範例,並將應收日期欄位的公式設定為:
IF(DAY(A2)>25,EOMONTH(D2, IF(D4.RAW="月結 30 (Net 30)", 2, IF(D4.RAW="月結 60 (Net 60)", 3, IF(D4.RAW="月結 90 (Net 90)", 4, IF(D4.RAW="月結 120 (Net 120)", 5, 0))))), EOMONTH(D2, IF(D4.RAW="月結 30 (Net 30)", 1, IF(D4.RAW="月結 60 (Net 60)", 2, IF(D4.RAW="月結 90 (Net 90)", 3, IF(D4.RAW="月結 120 (Net 120)", 4, 0))))))
公式邏輯和 Excel 類似,在判斷發票日期是否超過 25 日後,再依據月結條件來推算應收日期。
(2) 設定完成後,只要輸入發票日期和付款條件後,系統就會自動計算出應收日期。
三、變化版:根據特定客戶改變結帳日和收款日
1. 依據客戶改變付款日
在面對規模較大或知名度較高的客戶時,可能會需要依照對方指定的付款日作為應收款項的到期日。那麼,該如何讓系統自動計算應收日期呢?
通常這類客戶的付款日會晚於公司原本設定的應收日期,因此關鍵在於判斷新的應收日期應該落在原本設定的月份,還是順延至下個月。可以依照以下步驟進行設定:
(1) 新增一個數值欄位 「客戶付款日」(A5),用來設定客戶的付款日。
(2) 新增一個「原應收日期推算」欄位(G2),並設定以下公式(與上一階段進階常用版的「應收日期」公式相同):
IF(DAY(A2)>25,EOMONTH(D2, IF(D4.RAW="月結 30 (Net 30)", 2, IF(D4.RAW="月結 60 (Net 60)", 3, IF(D4.RAW="月結 90 (Net 90)", 4, IF(D4.RAW="月結 120 (Net 120)", 5, 0))))), EOMONTH(D2, IF(D4.RAW="月結 30 (Net 30)", 1, IF(D4.RAW="月結 60 (Net 60)", 2, IF(D4.RAW="月結 90 (Net 90)", 3, IF(D4.RAW="月結 120 (Net 120)", 4, 0))))))
(3) 新增一個數值欄位「取原應收日的日期」(G3),並設定公式 DAY(G2),用來擷取應收日期的日數部分。
(4) 在「應收日期」欄位設定以下公式:
IF(A5>=G3, DATE(YEAR(G2), MONTH(G2),A5), DATE(YEAR(G2), MONTH(G2)+1,A5))
這個公式的邏輯是:
• 若「客戶付款日」的日數較小,應收日期則自動推遲至下個月。
這樣的設定下,即使「客戶付款日」未輸入,系統仍能正確計算應收日期。
(5) 公式設定完成後,只要輸入發票的開立日期、月結條件以及客戶指定的付款日,即可自動推算出應收日期。
2. 自行設定結帳日、收款日
如果公司的結帳日不在每月 25 日,且收款日也不是一般常見的月底,你可以將結帳日和收款日分別設為欄位,並新增幾個欄位來判斷在每個條件下,應收日期的月份數應增加多少,從而推算出應收日期。具體判斷條件如下:
• 根據月結條件,計算需要增加的月份數
• 判斷收款日是否小於結帳日:若小於,則計算為下月收款(應收日期加一個月)
你可以參考以下步驟來設計表單:
(1) 在表單上新增結帳日(A5)、收款日(D5)兩個數值欄位。
(2) 新增一個「超過當月結帳日?」的數值欄位(G2),並將公式設定為:
IF(DAY(A2)>A5,1,0)
這樣的設定代表當發票日期超過結帳日時,將會顯示為 1,表示為下月帳款,月份數要加 1;若未超過,則顯示為 0,表示為當月帳款。
(3) 再新增一個「收款條件加月數」的數值欄位(G3),用來判斷應收日期要根據月結條件多加幾個月。比如,月結 30 天需多加一個月,月結 60 天多加兩個月,依此類推。公式可以設定為:
IF(A4.RAW="月結 30 (Net 30)", 1, IF(A4.RAW="月結 60 (Net 60)", 2, IF(A4.RAW="月結 90 (Net 90)", 3, IF(A4.RAW="月結 120 (Net 120)", 4, 0))))
(4) 新增一個名為「收款日小於結帳日?」的數值欄位(G4),用來判斷如果收款日早於結帳日,則應收日期需要多加一個月,否則為 0。公式可以設定為:
IF(D5 < A5,1,0)
(5) 在應收日期欄位,將公式設定為:
DATE(YEAR(A2),MONTH(A2)+G2+G3+G4,D5)
這個公式會依據前面三個條件判斷欄位所增加的月份數,計算出應收日期應該落在發票開立日期後的幾個月,並將日期設為收款日。
(6) 公式設定完成後,便能依據公司的結帳日、收款日自動計算應收日期。