基于涵盖不同定价期的日期的累积价格
Cumulative prices based on dates that cover different pricing periods
我正在尝试计算某人需要付给我多少钱,票价是为特定时期设定的。
客人姓名 |到达日期 |出发日期 |成人 | Child |总计 |
J.Bloggs | 2019 年 11 月 14 日 | 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 英镑
蓝色列是原始数据,绿色列是基于公式的(我不需要价格列,我只是用来计算费用)。
这是我目前在价格栏中的公式,但知道当票证涵盖多个时期时它不起作用。
{=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))}
将 SUMPRODUCT 与 INDEX/MATCH 一起使用:
=SUMPRODUCT(INDEX($C:$C,MATCH(ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2)),$A:$A)))*E2
这是一个数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter。
ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2))
创建日期数组。
MATCH(...,$A:$A)
获取该数组并找到它在查找中的位置 table。注意:查找 table 必须按升序排序。
INDEX($C:$C,...)
依次获取每个匹配项并创建一个输出价格数组。
SUMPRODUCT(...)
将所有值相加。
然后我们简单地将它乘以客人的数量。
我正在尝试计算某人需要付给我多少钱,票价是为特定时期设定的。
客人姓名 |到达日期 |出发日期 |成人 | Child |总计 |
J.Bloggs | 2019 年 11 月 14 日 | 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 英镑
蓝色列是原始数据,绿色列是基于公式的(我不需要价格列,我只是用来计算费用)。
这是我目前在价格栏中的公式,但知道当票证涵盖多个时期时它不起作用。
{=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))}
将 SUMPRODUCT 与 INDEX/MATCH 一起使用:
=SUMPRODUCT(INDEX($C:$C,MATCH(ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2)),$A:$A)))*E2
这是一个数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter。
ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2))
创建日期数组。
MATCH(...,$A:$A)
获取该数组并找到它在查找中的位置 table。注意:查找 table 必须按升序排序。
INDEX($C:$C,...)
依次获取每个匹配项并创建一个输出价格数组。
SUMPRODUCT(...)
将所有值相加。
然后我们简单地将它乘以客人的数量。