根据您在链接中提供的文件,其中 TOTALS 中的值从第 10 行(而不是所述的 11)开始,价格位于 S 列(而不是所述的 W),TOTALS2 中的值将出现在第 10 行之后(而不是所述的第 11 行)以下方法有效:
将 5 列添加到工作表 TOTALS。这 5 列在第 9 行有一个标题,在第 10、11、12 行等有公式。使用 X、Y、Z 和 AA 列,X9:AB9 中的标题值为
Period, Int.To, Int.From, Proportion1, Proportion2
(其中Int.
是中间体的缩写。)
在 X10 到 AB10 单元格中使用的公式是:
X10:=N10-M10+1
计算从日期 M10 到日期 N10 的天数,包括日期。
Y10:=M10+59
计算从日期 M10 开始的 60 天周期的结束日期(即计算第一个“半周期”的最后日期)
Z10:=1+Y10
计算 Y10 中的后天(第二个“半周期”的开始日期)
AA10:=60/X10
上半年占全期比例
AB10:=1-AA10
下半年占全期比例
X10:AB10 中的公式可以复制到与工作表 TOTALS 中包含的数据一样多的行,以获得类似...
TOTALS 中的附加列现在提供了您需要将每个四边形分成两个“半”的信息。M、N、Y 和 Z 列提供日期信息,S、AA 和 AB 列提供用于拆分每个四学期成本的值。要使其在 TOTALS2 中按需要显示,您还需要向 TOTALS2 添加几列。我在 L9 和 M9 中使用了带有以下标题的 L 和 M 列:
Source, Part
在 L10 和 L11 中插入值 1,而在 M10 和 M11 中分别插入值 1 和 2。现在将以下公式添加到 L12 和 M12
L12:=1+L10
M12:=M10
向下复制 L12 和 M12 中的公式,以便 L 和 M 列包含的值至少是您希望拆分为前半段和后半段的行数(总计)的两倍。您应该最终得到1,1,2,2,3,3,4,4 etc
L 列和1,2,1,2,1,2,1,2 etc
M 列中的序列。
源列 (L) 指示 TOTALS 中的哪个数据行(1=第一、2=第二、3=第三等)作为要拆分为“一半”的值的源,部分列 (M) 指示哪个数据行“一半”是(1=第一,2=第二)。
剩下的就是使用 TOTALS2 的 A、B 和 G 列中的适当公式将它们放在一起。插入 A10、B10 和 M10 的公式是:
A10:=OFFSET(IF(M10=1,TOTALS!M$9,TOTALS!Z$9),L10,0)
B10:=OFFSET(IF(M10=1,TOTALS!Y$9,TOTALS!N$9),L10,0)
G10:=OFFSET(TOTALS!S$9,L10,0)*OFFSET(TOTALS!Z$9,TOTALS2!L10,M10)
将这些公式复制到 TOTALS2 的行中,它应该看起来像......
根据 Part 值是 1 还是 2,col A 中的公式使用来自 TOTALS 中正确 Source 行的 col M 或 col Z 选择“半”期间的开始日期。类似地,col B 中的公式选择使用 TOTALS 的 Y 和 N 列结束日期。G 中的公式将成本值(TOTALS 的 col S)乘以来自 TOTALS 中的 col AA 或 col AB 的正确比例,再次根据 Part 是 1 还是 2。
我没有包括以下改进:
防止 TOTALS 中太短(或太长)的期间被拆分(提示:您可以使用工作表 TOTALS 中的 Length 列检测到这一点)或
控制在 TOTALS2 中显示的行数,使其恰好是在 TOTALS 中输入的数据行数的两倍(不太困难,并且可以通过多种方式接近)或
将两个“半”的计算成本四舍五入到小数点后 2 位,并确保它们加回原始的四边形成本(它在工作表中的格式导致仅显示 2 个小数,并且不能保证显示的值将精确地与其原始源成本相加 - 选择的示例恰好具有此属性。同样也不太难解决。)
但是,以上是您可以构建的基本解决方案。