子arrays内的近似匹配

我有一个表格如下:

Name Quota-Date Quota Ami 5/1/2010 75000 Ami 1/1/2012 100000 Ami 6/1/2014 150000 John 8/1/2014 0 John 4/1/2015 50000 Rick 5/1/2011 100000 

(date以美式格式显示:m / d / yyyy)。 “配额date”是旁边有效的新“配额”的第一个月份。 例如,2010年5月至2011年12 期间,阿美的每个月的配额为75000。

我需要一个公式来获取给定人员和特定月份的配额:每月一个人的主动配额。 这个需要的公式是计算这个表的第三列:

 Name Month Quota Ami 6/1/2010 75000 Ami 12/1/2011 75000 Ami 1/1/2012 100000 Ami 7/1/2014 150000 John 10/1/2014 0 John 4/1/2015 50000 

我宁愿不保持sorting的第一个表,但如果它会使事情变得简单,我会的。

第二张桌子上“配额”的正确公式是什么?

如果您的新数据在AC列中,并且原始数据也是Sheet1中的AC列,请在B2中input此公式:

=SUMIFS(Sheet1!C:C,Sheet1!A:A,A2,Sheet1!B:B,MAX(IF((Sheet1!A:A=A2)*(Sheet1!B:B<=B2),Sheet1!B:B,"")))

如果你的第三列中只有数字,那么这个公式就行得通,但是在文本上处理也会比较复杂。

谢谢,MátéJuhász! 我刚刚为此制定了另一个解决scheme,而不是一个数组公式,但我更喜欢你的解决scheme – 更优雅,我会用它!

我的解决scheme是:

= INDEX(INDIRECT(“Quota!$ E $”&MATCH([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers])&“:$ E $”&MATCH ,PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers])+ COUNTIF(PMQuotaTable [PM],[@ PM]) – 1),MATCH([@月],INDIRECT( “配额$ d $!” (MAT)([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers])& [#Headers])+ COUNTIF(PMQuotaTable [PM],[@ PM]) – 1),1))

我正在运行匹配types= 1的常规索引/匹配来查找最大的date行,但是我dynamic构造目标范围以仅限当前人员(PM)的行。 我用这部分标识了PM的第一行:MATCH([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers])

…和PM的最后一行,通过添加他在表中的行数,所以使用这个检索:MATCH([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers] )+ COUNTIF(PMQuotaTable [PM],[@ PM]) – 1

dynamic范围然后使用INDIRECT构build。 因此,完整的范围是由这个部分决定的(对于最终需要的列来说):INDIRECT(“Quota!$ E $”&MATCH([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [ #Headers])&“:$ E $”&MATCH([@ PM],PMQuotaTable [PM],0)+ ROW(PMQuotaTable [#Headers])+ COUNTIF(PMQuotaTable [PM],[@PM]) – 1 )

莫尔