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

关于在Excel动态区域计算剂量反应动力学函数f(n)的技术咨询

动态计算剂量反应动力学函数f(n)的Excel方案

针对你需要在动态扩展的工作表E列计算剂量反应动力学函数f(n)的需求,我整理了直接可用的Excel公式方案,完美适配新行输入后自动计算的场景:

核心逻辑回顾

先明确函数f(n)的计算规则(对应第n天的数值):

  • 第1天(n=1):f(1) = w(1)(无求和项,直接取当日的w值)
  • 第n天(n>1):f(n) = w(n) + Σ(i=1到n-1)w(i) * e^(-(n-i)),其中指数项-(n-i)会让越近的历史w(i)权重越高(比如n=3时,i=2的权重是e(-1),i=1的权重是e(-2))

Excel公式实现(适配动态扩展)

假设:

  • A列是天数(A1=1, A2=2,...,新行自动递增)
  • B列是每日的w值(B1对应第1天的w(1),B2对应w(2),以此类推)
  • E列是要计算的f(n)值(E1对应f(1),E2对应f(2))

方法1:Excel 365/2021 动态数组公式(推荐)

在E1单元格输入以下公式,下拉后会自动适配新添加的行:

=IF(A1=1,B1,B1+SUMPRODUCT(B$1:INDEX(B:B,A1-1),EXP(-(A1-ROW(B$1:INDEX(B:B,A1-1))))))

公式拆解:

  • IF(A1=1,B1,...):处理第1天的特殊情况,直接返回B1
  • B1+SUMPRODUCT(...):计算当日w值加上历史加权求和
  • B$1:INDEX(B:B,A1-1):动态获取从第1天到前一天的所有w值范围(新行添加时自动扩展)
  • EXP(-(A1-ROW(B$1:INDEX(B:B,A1-1)))):计算每个历史w(i)的权重,A1-ROW(...)就是n-i,取负指数后实现近高远低的权重

方法2:兼容旧版Excel的公式

如果使用的是Excel 2019及更早版本,可在E1输入,然后下拉填充:

=IF(A1=1,B1,B1+SUMPRODUCT(B$1:B(A1-1),EXP(-(A1-ROW(B$1:B(A1-1))))))

注:旧版Excel中B(A1-1)需要确保A列的天数是连续的整数,否则可替换为INDEX(B:B,A1-1)来稳定获取范围。

动态扩展验证

当你在表格底部添加新行(比如第5行,A5=5,B5输入新的w值),只需把E列的公式下拉到E5,公式会自动识别并计算前4天的加权求和,完全无需手动调整范围。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:21:33