背景
最近刷信用卡薅银行羊毛,担心银行薅我,所以自己记账本。
- 为了可视化效果好,我一定要用Excel
- 即使会Python,但是用Python来处理其中的计算微妙太奇怪+非原生的舍近求远
- 看Excel自带的计算公式和函数
Excel 中的公式
Excel 函数(按字母顺序)IF
ISBLANK
踩坑点
如果在 ISBLANK 函数中判断的单元格包含数值或其他非空值,则函数将返回 FALSE,因为这个单元格不为空。 请确保单元格中不含有任何数据或公式,这样 ISBLANK 函数才会正确地返回 TRUE。如果单元格中有数值或公式,即使数值或公式的结果为空,ISBLANK 函数也会返回 FALSE。 如果您要判断一个单元格是否包含数值或公式的结果,请使用其他函数,例如 IF 函数、IFERROR 函数等。
使用
- 判断是否是消费(使用“ISBLANK”判断消费列)
- 不是:是还款,不计算返利
- 是,判断消费渠道,根据消费渠道进行返利计算:
- 电影院:50%返现
- 超市/餐饮:5%返现
- 普通:2%返现
- 账单周期总额未满15000:1%返现
- 使用“返现金额.初始”进行佣金计算
- 公共事业(慈善机构、政府服务、账单支付、学校、教育、交通、运输、电信、房地产、加油站):0.25%返现
OFFSET
用法
OFFSET(reference, rows, cols, [height], [width]) The OFFSET function syntax has the following arguments:
- Reference Required. The reference from which you want to base the offset. Reference must refer to a cell or range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value.
- Rows Required. The number of rows, up or down, that you want the upper-left cell to refer to. Using 5 as the rows argument specifies that the upper-left cell in the reference is five rows below reference. Rows can be positive (which means below the starting reference) or negative (which means above the starting reference).
- Cols Required. The number of columns, to the left or right, that you want the upper-left cell of the result to refer to. Using 5 as the cols argument specifies that the upper-left cell in the reference is five columns to the right of reference. Cols can be positive (which means to the right of the starting reference) or negative (which means to the left of the starting reference).
- Height Optional. The height, in number of rows, that you want the returned reference to be. Height must be a positive number.
- Width Optional. The width, in number of columns, that you want the returned reference to be. Width must be a positive number.
具体例子
如果目标单元格为空,则使用 OFFSET 函数获取目标单元格上一行的值。公式如下:
=OFFSET(A1,-1,0)
具体用法
当某行消费的上一行为还款时,还款无返现(返现列为空),此时返现余额(总额-返现金额)需要往上列取值,直到(While)非空的单元格。
可惜Excel没有While函数,IF函数要做While效果很累赘,语雀的函数使用还爆炸卡。最后只用IF取上一行的代码,不能While直到有数值:
=IF(ISBLANK(D5),"",IF(ISBLANK(M4),(OFFSET(M4,-1,0)-L5),(M3-L5))))
INT
这个银行的返现不精确,是取整的。而且不是四舍五入(ROUND),是向下取整(INT)。
到9.99也是9,不会是10。
总结
只需要填写消费金额和消费渠道,返现比例和返现金额均会自动调用公式计算。