Excel中求解匹配给定资本损益的x、y值:B、D列公式及思路
Excel B列、D列公式设置及匹配解决思路
核心约束与逻辑
要同时满足两个硬性要求:
- 买入总数量 = 卖出总数量
- 给定的E列资本损益严格符合公式:
资本损益 = 卖出总金额 - 买入总金额
解决思路
- 先锁定数量匹配规则:要么逐行买入数量等于卖出数量(当日买卖),要么所有行的买入总量等于卖出总量(跨期买卖),这是基础前提。
- 用损益反向推导数量:结合已知的买入/卖出单价、给定的E列损益值,通过资本损益公式反向计算B/D列的数量。
具体公式设置
假设表格列结构为:A=交易日期,B=买入数量,C=买入单价(已知),D=卖出数量,E=资本损益(给定),F=卖出单价(已知)
场景1:逐行买卖对应(当日买当日卖)
- D列公式(保证逐行数量匹配):
=B2 - B列公式(根据给定损益推导):
由E2 = (D2*F2) - (B2*C2),代入D2=B2整理得:=E2/(F2-C2)
如果交易要求数量为整数(比如股票),可加取整函数调整:=ROUND(E2/(F2-C2),0)注意:如果F2=C2但E2≠0,属于逻辑矛盾,必须修正E列数值或单价。
场景2:跨期累计匹配(多笔买对应多笔卖)
- 先手动输入或导入B列的所有买入数量,计算总买入量:
=SUM(B:B) - D列卖出数量总和需等于总买入量,可按买入金额占比分配,最后一行用总买入量减去前面已分配的卖出量:
=SUM($B$2:$B$100)-SUM($D$2:$D99) - 验证总损益:如果给定的E列合计与
SUM(D:D*F:F)-SUM(B:B*C:C)不符,调整B/D列的数量分配直到匹配。
内容的提问来源于stack exchange,提问作者user836087
相关产品推荐
相关产品推荐

