2013-01-09 74 views
0

我有一个电子表格,其中包含四列,其中列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的最后一个单元格为空。

我想公式只关联四天,二十三天,二十四天,二十六天和二十七天,匹配相应的计数。

鉴于我将把这些信息与多个位置相关联,每个位置都有不同的报告日期,因此在关联和删除不匹配的日期之前过滤日期并不是一个好的选择,但是我会考虑如果存在别无退路。

回答

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)的值对。因此,没有必要明确检查并排除“不良”或缺失值。