2013-01-09 71 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)的值對。因此,沒有必要明確檢查並排除「不良」或缺失值。