基于涵盖不同定价期的日期的累计价格

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

我试图计算某人需要付给我多少钱,而票价是在一定时期内确定的。

来宾姓名|到达日期出发日期|成人|儿童|总计|

J.Bloggs | 14/11/2019 | 18/11/2019 | 5 | 2 | 7 |

价格01/11/2019〜04/11/2019 =£3.40

价格05/11/2019〜15/11/2019 = 2.50英镑

价格16/11/2019〜30/11/2019 = 1.90英镑

我需要锻炼如何向J.Bloggs收取2晚(14日和15日)2.50英镑,然后3晚(16日,17日和18日)1.90英镑= 10.70英镑* 7人= 74.90英镑

[蓝色列是原始数据,绿色列是基于公式的(我不需要价格列,我只是用来计算费用的。)

Raw Data Pricing Table

这是我目前在价格栏中使用的公式,但是知道当票涵盖多个期间时,该公式将不起作用。

{=INDEX(Pricing!$C:$C,MATCH(1,(Pricing!$A:$A<=IF(ISTEXT($A2),DATEVALUE($A2),$A2))*(Pricing!$B:$B>=IF(ISTEXT($A2),DATEVALUE($A2),$A2)),0))}
excel-formula date-range
1个回答
0
投票

将SUMPRODUCT与INDEX / MATCH一起使用:

=SUMPRODUCT(INDEX($C$8:$C$10,MATCH(ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2)),$A$8:$A$10)))*E2

这是一个数组公式,退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter。

ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2))创建日期数组。

MATCH(...,$A$8:$A$10)获取该数组并找到它在查找表中的位置。注意:查询表必须升序排列。

INDEX($C$8:$C$10,...)依次进行这些匹配,并创建输出价格数组。

[SUMPRODUCT(...)将所有值加在一起。

然后我们简单地乘以客人人数。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.