2025年1月22日 星期三

[Excel VBA]如何製作買三送一優惠條件的POS結帳介面?

因應商品特賣活動,結帳介面需整合特定優惠條件,如買三送一,買五送二等等優惠條件。本文封面影片以買三送一為範例,並搭配VBA和對應按鈕,而實現銷售訂單紀錄和即時更新庫存等等功能的初階POS結帳介面。另外,可視店家訂單管理需求,可進一步再新增訂單日期或訂單編號等等自動化功能,使其更加完整。

該POS結帳介面的核心在於具備特定優惠條件的自動計算功能。以買三送一並由最低價商品開始折扣的優惠條件為例,可至少拆解成下列幾條規則來定義。

1.在單筆訂單中,挑選出商品單位為"個"的所有商品,並依照單價排序。
2.在單筆訂單中,取得商品單位為"個"且不同價位的累計數量。
3.依照買三送一優惠條件,計算優惠數量對應的座落累計區間和優惠金額。(Note: 這個規則稍微複雜些,換言之,尚需考慮跨區間的優惠金額問題。)


另外,自動化計算使用下列主要的函數和對應功能,說明如下:

1.SORT(FILTER(D3:F22,F3:F22="個"),1,1)

利用FILTER將商品單位為"個"的array陣列篩選出來,接續用SORT進行排序,根據SORT的語法如下,第一個1為[sort_index],指的是根據D欄單價進行排序,第二個1為[sort_order],指的是遞增排序,若第二個1改為-1,則為遞減排列。
SORT(array,[sort_index],[sort_order])

2.ROUNDDOWN($P$2/4,0)

4指的即是買三送一的優惠條件,換言之,四個為一個基底作為整除的條件。若優惠條件為買五送二,則上述就要修改為七個為一個基底。另外,搭配ROUNDDOWN函數用意是將數字以趨近於零的方式無條件捨位。


買三送一自動化計算功能的Demo影片如下,供參考。


沒有留言:

張貼留言