用于匹配数据范围内的日期的相关函数

时间:2013-01-09 09:19:58

标签: excel function

我有一个包含四列的电子表格,其中B列和D列包含过去30天内使用各种道路的汽车数量。宏已处理这些范围内的数据并将异常值更改为“坏”,因此以下相关公式忽略它们:

{=IFERROR(CORREL(IF(B4:B33<>"Bad";IF(D4:D33<>"Bad";B4:B33));IF(B4:B33<>"Bad";IF(D4:D33<>"Bad";D4:D33)));"0")}

列A和C包含计数的日期。不幸的是,有时候这些日期不一样,某些地区的圣诞节没有数据,其他地方的节礼日等等。显然这会破坏相关性,因为它会使日期不同步,相关性也会分崩离析。

我有什么方法可以调整公式来检查相关之前的日期是否相同?它几乎就像vlookup,找到日期,如果匹配,添加到计算,如果没有,则转到下一个日期。如果有很多冲突,我很高兴只关联30天中的26天。

例如,在12月28日进行的最后六天,查看六个日历日,但不包括第28日:

        A         B        C         D
    22/12/2012    9    22/12/2012   Bad
    23/12/2012   10    23/12/2012   22
    24/12/2012    3    24/12/2012   21
    25/12/2012    7    26/12/2012   18
    26/12/2012    8    27/12/2012   15
    27/12/2012   15

C列和D列的最后一个单元格是空白的。

我希望公式只关联四天,23日,24日,26日和27日,以匹配适当的计数。

鉴于我将把这些信息与多个地点相关联,每个地点都有不同的报告日期,在关联和删除不匹配的日期之前过滤日期不是一个很好的选择,但如果没有,我会考虑它其他方式。

1 个答案:

答案 0 :(得分:2)

我不认为只使用单细胞数组公式就可以做到这一点。

然而,借助辅助柱,可以完成。数组 - 在E4:E33范围内输入以下公式:

{=(IF(COUNTIF(C4:C33;A4:A33);INDEX(D4:D33;MATCH(A4:A33;C4:C33;0));""))}

这应该导致以下结果:

        A         B        C         D    E
    22/12/2012    9    22/12/2012   Bad  Bad
    23/12/2012   10    23/12/2012   22   22
    24/12/2012    3    24/12/2012   21   21
    25/12/2012    7    26/12/2012   18
    26/12/2012    8    27/12/2012   15   18
    27/12/2012   15                      15

现在可以使用非数组公式计算相关性:

=IFERROR(CORREL(B4:B13;E4:E13);0)

注意: CORREL忽略其中一个或两个不是数字的值对,即文本,逻辑或空(但不是0)。因此,没有必要明确检查和排除“错误”或缺失值。