从两列中找到Excel索引/匹配项中的最近日期

时间:2018-10-05 13:20:39

标签: excel excel-formula array-formulas

我正在尝试根据另一列的日期和ID获取一列的最近日期。例如:

01-001  1/5/2017
01-002  12/28/2016
01-003  1/5/2017
01-001  8/21/2017

第二组数据为:

01-002  11/4/2016
01-002  6/24/2016
01-002  12/25/2016
01-003  1/14/2017

对于01-002,我想从第二组数据返回12/25/2016。必须与Max进行某种数组索引匹配才能做到这一点,我只是不能将它们全部放在一起。

1 个答案:

答案 0 :(得分:2)

这些工作!见下面的照片。不幸的是,如果不输入公式栏就无法看到突出显示的范围...这将删除数组公式括号{}

您可能忘记了使用数组公式设置公式。您可以通过按CTRL SHIFT ENTER而不是Enter来做到这一点。没关系,因为公式被打破了!有时修补会惹上麻烦!

新方程式。

{=INDEX(C7:C10,MATCH(1,(MIN(IF(C7:C10-E6>0,C7:C10-E6,(C7:C10-E6)*-1))=IF(C7:C10-E6>0,C7:C10-E6,(C7:C10-E6)*-1))*1,0))}

我正在确定匹配日期,以免使该公式变得太大。

方程本身很简单: 我们取一个范围,然后用另一个单元格值减去该范围内的每个单元格。如果这些计算之一的输出为负,则将其乘以-1使其为正。我们这样做两次。对于这些数组之一,我们应用MIN函数,从而使该数组中的数字最小。然后,我们将剩余数组中的每个单元格与此最小值进行比较。结果是一个数组,该数组具有与我们刚才在比较中使用的数组相同的项,并填充有对与错,等于或不等于最小值。然后,我们采用数组并将其中的每个项目乘以1,从而将true / false值转换为二进制0和1s。然后,我们将此数组与1匹配。第一个匹配(数组中的1与1)将获得我们的行。

enter image description here

enter image description here