范围内的逆行索引作为公式中的变量

范围内的逆行索引作为公式中的变量

我有一张包含每一天的条目的表格。单元格 B(n) 应包含前几天 (n1 - nn) 的中间计算总和,其中一个参数是 n 和 nx 之间的天数差值。

例如,给定表

Day  A  B
1    3  0
2    5  3
3    7  11
4    8  26
5    9  49

n=4 和 n=5 天的值计算如下:

B4 = A1*3 + A2*2 + A3*1 + A4*0
B5 = A1*4 + A2*3 + A3*2 + A4*1 + A5*0

右侧的乘数是 n 和 nx 之间的天数差值。我想象这是范围内的逆位置。

ipos(A2,A1:A5)=3

也许是类似

B(n) = SUM(A1:An * ipos())

有什么想法可以写出这个公式吗?谢谢。

编辑: 谢谢您的回答。我可能没有充分描述问题。实际上,我试图计算每天给药的近似峰值浓度、给定每天的剂量和药物的半衰期。

Day Dosage Peak
1   2,50   2,50
2   3,17   5,67
3   4,00   9,67
4   4,00   13,67
5   5,00   17,906

半衰期(小时):

hl = 80

已过的半衰期数:

he(days_ago) = days_ago * 24 / 80

半衰期过后剩余的数量:

q_n(dosage, he(days_ago)) = MIN(1; 1 / MAX(1; he(days_ago))^2) * dosage

最后,第 n 天的总峰浓度:

q(n) = q_1(dosage_1, he(n-1)) + q_2(dosage_2, he(n-2)) + .. q_n(dosage_n, he(0))

例如,第 n = 5 天:

q(5) = q_1(2,50, he(4)) + q_2(3,17, he(3)) + q_3(4,00, he(2)) + q_4(4,00, he(1)) + q_5(5,00, he(0))

q(5) = q_1(2,50, 1.2) + q_2(3,17, 0.9) + q_3(4,00, 0.6) + q_4(4,00, 0.3) + q_5(5,00, 0)

q(5) = MIN(1; 1 / MAX(1; 1.2)^2) * 2,50 + MIN(1; 1 / MAX(1; 0.9)^2) * 3,17 

    + MIN(1; 1 / MAX(1; 0.6)^2) * 4,00 + MIN(1; 1 / MAX(1; 0.3)^2) * 4,00 

    + MIN(1; 1 / MAX(1; 0)^2) * 5,00

q(5) = 0.6944 * 2,50 + 1 * 3,17 + 1 * 4,00 + 1 * 4,00 + 1 * 5,00
q(5) = 17.906

答案1

尝试混合引用的威力。

=IF(ISNUMBER(C1),C1+SUM($B$1:B1),0)

抄下来。

在此处输入图片描述

答案2

这是一个 Visual Basic 用户定义函数(UDF)

Public Function iSum(rng As Range) As Long
    Dim K As Long
    K = rng.Count - 1

    For Each r In rng
        iSum = iSum + K * r
        K = K - 1
    Next r
End Function

在此处输入图片描述

也许可以这样做SUMPRODUCT(),但我不知道如何进行乘法运算。

答案3

  1. 突出显示单元格,包括列标题
  2. 插入表格(检查是否有标题行)
  3. 将表格名称更改为“MyTable”或其他名称。(当您的选择在表格内时,表格名称应位于表格工具设计功能区的左端。)
  4. 对于 B 中的每个单元格,将公式更改为=IF(ROW()-ROW(MyTable[#Headers])=1,0,OFFSET([@B],-1,0)+SUM(OFFSET(MyTable[[#Headers],[A]],1,0,ROW()-ROW(MyTable[#Headers])-1)))

编辑:我应该解释一下这个公式。翻译成英文是这样的...

  • 如果我是表中的第一个数据行,则仅返回 0
  • 否则,返回我上方的单元格加上我上方 A 中的值的总和。

相关内容