You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助构建Excel公式:基于购股日期与金额计算平均持股年限

分批投资股票的加权平均持股年限Excel计算方案

核心逻辑

你需要的是按投资金额加权的平均持股年限——简单说,投资金额越高的笔数,对平均年限的影响越大。计算公式本质是:
加权平均持股年限 = (每笔投资的持股时长 × 对应金额的总和) ÷ 总投资金额

假设你的数据结构

先假设Excel里的基础数据排布:

  • A列:每笔投资的购股日期(比如A2到A6是5次买入的日期)
  • B列:对应每笔的投资金额(B2到B6是每次投的钱)
  • D1单元格:设置计算基准日期(就是你要算到哪一天的平均年限,比如当前日期可以用=TODAY())

分步计算(新手友好,方便验证)

  1. 计算每笔投资的持股天数:在C2单元格输入公式,下拉填充到所有投资行
    =DATEDIF(A2, $D$1, "D")
    这个公式会算出从买入日到基准日的总天数。

  2. 计算每笔的加权天数:在E2单元格输入公式,下拉填充
    =C2 * B2
    得到“天数×金额”的乘积,用来体现这笔投资的权重。

  3. 计算总加权天数:在F1单元格输入
    =SUM(E2:E6)

  4. 计算总投资金额:在F2单元格输入
    =SUM(B2:B6)

  5. 转成“年+月”格式的平均年限:在F3单元格输入
    =INT(F1/F2/365) & "年零" & INT(MOD(F1/F2,365)/30) & "个月"
    (注:用30天近似1个月,日常使用足够;如果要更精确的月数,可以用DATEDIF计算月数加权,不过复杂度会高一些)

一步到位的合并公式

如果不想分步计算,直接用下面的数组公式(Excel 365/2021直接回车,旧版本按Ctrl+Shift+Enter确认):
=INT(SUM(DATEDIF(A2:A6, D1, "D")*B2:B6)/SUM(B2:B6)/365)&"年零"&INT(MOD(SUM(DATEDIF(A2:A6, D1, "D")*B2:B6)/SUM(B2:B6),365)/30)&"个月"
如果只需要年数的小数形式,用这个:
=SUM(DATEDIF(A2:A6, D1, "D")*B2:B6)/SUM(B2:B6)/365

验证你的示例

示例1:每年等额投资

2019-2023年每年1月投10000美元,基准日期设为2023年5月1日:
总加权天数=10000×(1581+1219+855+490+120)=42650000,总金额50000,平均天数=853天,换算后就是2年零4个月,和你说的一致。

示例2:早期大额+后续小额投资

2019年1月投10000,2020-2023年每年1月投2000,基准日期2023年5月1日:
总加权天数=10000×1581 + 2000×(1219+855+490+120)=21178000,总金额18000,平均天数≈1176天,换算后约3年零3个月,确实超过2年。

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:00:25