Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 索引/匹配两个条件(包括一个日期范围)的查找率_Excel_Date_Excel Formula - Fatal编程技术网

Excel 索引/匹配两个条件(包括一个日期范围)的查找率

Excel 索引/匹配两个条件(包括一个日期范围)的查找率,excel,date,excel-formula,Excel,Date,Excel Formula,在我们的咨询业务中,我们根据个人账单费率向客户收费。这些利率会随着时间的推移而变化。为了能够及时向客户开具任何服务的发票,我想构建一个Excel表格,以促进此过程 +--------------+------------+------------+-----------+ | Name | Begin | End | Rate | +--------------+------------+------------+-----------+ | P

在我们的咨询业务中,我们根据个人账单费率向客户收费。这些利率会随着时间的推移而变化。为了能够及时向客户开具任何服务的发票,我想构建一个Excel表格,以促进此过程

+--------------+------------+------------+-----------+
|     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!非常感谢!