2017-08-24 107 views
0

我已經繼承了一個生產日誌,其中包含一個工作表,每個月有多個列和大約8k行。我期待構建一個統計數據選項卡,並計算特定時間範圍內針對代理記錄多少個唯一日期。幫助修改excel數組公式?

工作表 「日誌」:

Column A contains agents initials 
Column E contains case completion date 

工作表 「統計」:

C2 contains a dropdown of agent initials 
C5 and D5 contain dates to generate a date range 

我寫了下面的陣列標識的日期期間的唯一日期。

=SUM(IF(FREQUENCY(IF(Log!E:E>=CC1,IF(Log!E:E<=DD1,IF(Log!E:E<>"",MATCH(Log!E:E,Log!E:E,0)))),ROW(Log!E:E)-ROW(Log!E3)+1),1))

我只是不能紮在登錄代理縮寫答:A和它匹配C2。

+0

我建議這是從excel文件中取出並放入數據庫,這是它們的用途,然後可以執行這些類型的任務更容易 – jimmy8ball

回答

0

使用數組公式時,請避免使用整列引用。否則,你會發現它很慢。或者Excel將耗盡資源。嘗試...

=SUM(IF(FREQUENCY(IF(Log!$A$2:$A$100=C2,IF(Log!$E$2:$E$100>=CC1,IF(Log!$E$2:$E$100<=DD1,IF(Log!$E$2:$E$100<>"",MATCH(Log!$E$2:$E$100,Log!$E$2:$E$100,0))))),ROW(Log!$E$2:$E$100)-ROW(Log!$E$2)+1),1)) 

...用CONTROL + SHIFT + ENTER確認。雖然,我覺得沒有必要測試E欄空白/空單元格,因爲你已經是一個日期範圍測試它...

=SUM(IF(FREQUENCY(IF(Log!$A$2:$A$100=C2,IF(Log!$E$2:$E$100>=CC1,IF(Log!$E$2:$E$100<=DD1,MATCH(Log!$E$2:$E$100,Log!$E$2:$E$100,0)))),ROW(Log!$E$2:$E$100)-ROW(Log!$E$2)+1),1)) 

...還與控制+ Shift + Enter確認。無論哪種情況,都要相應地調整範圍。

希望這會有所幫助!

0

謝謝Domenic工作。感謝您對列引用的評論,因爲我今天因爲資源耗盡而崩潰了兩次。

如果我想反轉該公式以計算特定時間範圍內記錄了多少個唯一日期,但是我想忽略C2中的代理。這將是

= SUM(IF(FREQUENCY(IF(登錄$ A $ 2:$ A $ 300 <> C2,IF(登錄$ E $ 2:!$ E $ 300> = C5,IF(登錄$ E $ 2:$ E $ 300 < = D5,MATCH(Log!$ E $ 2:$ E $ 300,Log!$ E $ 2:$ E $ 300,0)))),ROW(Log!$ E $ 2:$ E $ 300) - ROW(Log!$ E $ 2)+1),1))