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 列的最后一个单元格是空白的。

我希望该公式仅关联 23 日、24 日、26 日和 27 日这四天,并匹配适当的计数。

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

4

1 回答 1

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

于 2013-01-09T17:26:08.493 回答