首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据不同定价期的日期计算的累计价格

根据不同定价期的日期计算的累计价格
EN

Stack Overflow用户
提问于 2019-12-06 15:25:12
回答 1查看 57关注 0票数 0

我正试图计算出有人需要给我多少钱,在那里票价定在一定时期内。

客人姓名:抵达日期

J.Bloggs - 14/11/2019 - 18/11/2019

价格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 GB2.50 2晚(14和15),然后GB1.90 3晚(16,17和18)=GB10.70*7人=£74.90

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

这是我目前在价格栏中的公式,但要知道,当门票涵盖多个时段时,这是行不通的。

代码语言:javascript
运行
复制
{=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))}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 15:35:47

在索引/匹配中使用SUMPRODUCT:

代码语言:javascript
运行
复制
=SUMPRODUCT(INDEX($C$8:$C$10,MATCH(ROW(INDEX($ZZ:$ZZ,A2):INDEX($ZZ:$ZZ,B2)),$A$8:$A$10)))*E2

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

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

MATCH(...,$A$8:$A$10)接受这个数组并找到它落在查找表中的位置。注意:查找表必须按升序排序。

INDEX($C$8:$C$10,...)依次获取其中的每一个匹配,并创建一个输出价格数组。

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

然后我们简单地把它乘以客人的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59215935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档