Excel 索引/匹配两个条件(包括一个日期范围)的查找率
在我们的咨询业务中,我们根据个人账单费率向客户收费。这些利率会随着时间的推移而变化。为了能够及时向客户开具任何服务的发票,我想构建一个Excel表格,以促进此过程Excel 索引/匹配两个条件(包括一个日期范围)的查找率,excel,date,excel-formula,Excel,Date,Excel Formula,在我们的咨询业务中,我们根据个人账单费率向客户收费。这些利率会随着时间的推移而变化。为了能够及时向客户开具任何服务的发票,我想构建一个Excel表格,以促进此过程 +--------------+------------+------------+-----------+ | Name | Begin | End | Rate | +--------------+------------+------------+-----------+ | P
+--------------+------------+------------+-----------+
| Name | Begin | End | Rate |
+--------------+------------+------------+-----------+
| Paul Brown | 2016-01-01 | 2016-01-31 | $10.00 |
| Paul Brown | 2016-02-01 | 2016-03-02 | $20.00 |
| Paul Brown | 2016-03-03 | 2016-04-02 | $30.00 |
| Paul Brown | 2016-04-03 | 2016-05-03 | $40.00 |
| Anna Red | 2016-02-15 | 2016-03-16 | $100.00 |
| Anna Red | 2016-03-17 | 2016-04-16 | $127.00 |
| Anna Red | 2016-04-17 | 2016-05-17 | $145.00 |
| Martin Blue | 2016-01-01 | 2016-04-30 | $300.00 |
| Martin Blue | 2016-05-01 | 2017-02-25 | $400.00 |
| Susan Yellow | 2014-01-03 | 2014-12-29 | $10.00 |
| Susan Yellow | 2014-12-30 | 2016-08-21 | $30.00 |
| Susan Yellow | 2016-08-22 | 2016-09-21 | $50.00 |
| Susan Yellow | 2016-09-22 | 2016-10-22 | $190.00 |
| Susan Yellow | 2016-10-23 | 2016-11-22 | $200.00 |
| Susan Yellow | 2016-11-23 | 2016-12-23 | $210.00 |
+--------------+------------+------------+-----------+
在我的Excel工作表中,我希望能够输入此人的姓名和任何日期,并且它应该为我提供正确的账单费率
例如,键入Susan Yellow和08/26/16应该返回50美元,因为它属于此日期范围
+-------------+------------+----------+
| Susan Yellow | 2016-08-26 | $50.00 |
+-------------+------------+----------+
第一个计费费率之前的日期应默认为第一个已知日期,没有当前计费费率的日期应默认为最后一个已知日期(例如2018年2月1日)
通常情况下,我只会使用索引/匹配公式,但我的问题是我无法组合条件/构建辅助列,因为这会破坏日期范围函数。我可以定义自定义表数组,但我不知道每个搜索区域有多长,因为有些顾问可能有相当长的历史,而另一些可能很短
有人知道我可以在Excel/Google工作表中用什么公式解决这个问题吗
谢谢大家! 编辑:
SottCraner的公式非常简洁
=SUMIFS(D:D,A:A,F3,B:B,"<=" & G3,C:C,">=" & G3)
=SUMIFS(D:D,A:A,F3,B:B,“=”和G3)
这应该有效:
{=SUM(如果(F3=$A$2:$A$16,如果((G3>=$B$2:$B$16)*(G3编辑:
SottCraner的公式非常简洁
=SUMIFS(D:D,A:A,F3,B:B,"<=" & G3,C:C,">=" & G3)
=SUMIFS(D:D,A:A,F3,B:B,“=”和G3)
这应该有效:{=SUM(如果(F3=$A$2:$A$16,如果((G3>=$B$2:$B$16)*)(G3这将处理日期不在要求范围内的两种情况:
这是一个数组公式,所以在G1中输入必需的名称,在H1中输入必需的日期,然后在I1中输入
Ctrl-Shift-Enter
=索引($D:$D,MAX(MAX(如果($A$2:$A$16=$G$1,如果($H$1>=$B$2:$B$16,行($C$2:$C$16))),匹配($G$1,$A:$A,0))
这将处理日期不在要求范围内的两种情况:
这是一个数组公式,所以在G1中输入必需的名称,在H1中输入必需的日期,然后在I1中输入
Ctrl-Shift-Enter
=索引($D:$D,MAX(MAX)(如果($A$2:$A$16=$G$1,如果($H$1>=$B$2:$B$16,行($C$2:$C$16))),匹配($G$1,$A:$A,0))
标准的SUMIFS()不起作用吗?=SUMIFS(D:D,A:A,F3,B:B,“==”
@ScottCraner耶,.SUM+IF符合旧版本。只是:*SUMIFS.)
解决方案是完美的**我甚至没有想到过SUMIFS!非常感谢!标准的SUMIFS()会不会工作?=SUMIFS(D:D,a:a,F3,B:B,“=”&G3)
@ScottCraner是的,.SUM+IF与旧版本兼容。只是开个玩笑而已。*SUMIFS()
解决方案是完美的**我甚至没有想到过SUMIFS!非常感谢!