Excel - 如何执行以下操作?

问题描述 投票:0回答:2

我有一个与 EXCEL 相关的问题:

由于我有以下不同时期的价格,我如何以自动方式计算,例如6月10日至7月15日之间的价格?

enter image description here

编辑-->预期输出: 50欧元+50欧元(6月10日至11日)+ 58欧元x13(6月12日至6月25日期间)+ 75欧元x13(6月26日至7月9日期间)+ 92欧元x5(7月10日至7月15日期间)= 2289欧元

这和excel单元格是一样的图片,请不要考虑“时段价格”,只考虑每日价格

enter image description here

excel vba interpolation
2个回答
0
投票

您可以通过(冗长的)计算来完成此操作:

考虑:

  1. A8 包含起始日期 (10-06-2021)
  2. B8 包含起始日期 (17-07-2021)
=(MIN($B$8,D3)-MAX($A$8,C3)+1)*C5+(MIN($B$8,F3)-MAX($A$8,E3)+1)*E5+(MIN($B$8,H3)-MAX($A$8,G3)+1)*G5+(MIN($B$8,J3)-MAX($A$8,I3)+1)*I5

这将考虑从

10-06
-
11-06
的一段时间为 2 天。还有
12-06
-
25-06
14 天的周期,依此类推。

结果是:

2514.00


0
投票

一种方法是创建一个查找表并使用公式。

根据您的数据,您的查找表可能如下所示:

NAME

priceTable

然后您可以使用公式:

=SUM(VLOOKUP(SEQUENCE(End-Start+1,,Start,1),priceTable,2))

如果由于某种原因您无法轻松创建

priceTable
,您可以使用公式创建它(取决于您的 Excel 版本):

=INDEX($C$4:$I$6,{1,3},{1;3;5;7})

注意: 所有公式都假设您的日期是真实日期而不是字符串。

enter image description here

如果您的Excel版本没有

SEQUENCE
功能,您可以将其替换为:

=SUM(VLOOKUP(ROW(INDEX($A:$A,Start):INDEX($A:$A,End)),priceTable,2))
© www.soinside.com 2019 - 2024. All rights reserved.