簡體   English   中英

Excel:跨工作簿數據挖掘

[英]Excel: Cross-workbook data mining

在工作中,我們會跟蹤為實現每日目標而收取的款項。 因此,我們的付款會在我們各自的Excel工作簿中進行跟蹤。 所述工作簿的示例如下:

Google文件付款記錄(已修改)

我們在工作中使用Excel 2013。 我有一個“跟蹤器日志”,它是一個單獨的工作簿。 最初,我在現有工作簿中進行跟蹤,但是為了便於團隊領導進行復制/粘貼,將其移至外部工作簿中。

在“跟蹤器日志”中,我在A列中擁有當前可行的日期(日期發生在8月的星期一至星期五)。 每天應該列出收集的付款數量以及付款總和。 我從研究中發現了這一部分,並在付款日志中具有以下公式:

=IF(NOT(ISBLANK(A2)), COUNT(B2:INDEX(B2:$B$500,MATCH(TRUE,INDEX(B2:$B$500="",0),0))),"")

和SUM相似的。 它可以很好地達到目的,當我將它放在“付款日志”中時,我感到很高興。 但是,將其移至“跟蹤器日志”並不會產生預期的結果。 該公式有效; 它沒有壞。 但是,不希望出現的結果是,該公式導致它跳到了付款日志中的相應行,而不是每行都顯示當天的信息。 也就是說,第2行不是8/1,第3行是8/2的信息,第1行是8/1,支付日志中8/2位於的行是Tracker日志填充的行。 (查看Sheet2以查看不良行為。)

我需要為期望的行為使用什么公式?

編輯

偷偷帶回家的信息(並進行修改,以便不發布任何帳戶信息)后,我發現所選答案根本不起作用。 請參閱上面的(已修改)Google Spreadsheet,以顯示正在發生的事情。

為了使它起作用,我需要在B2中:

=IFERROR(COUNTIF(INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)):INDEX(Sheet1!B:B,MATCH(TRUE,INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)):INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)+100)=0,0)),"<>"),"")

在C2中:

=IFERROR(SUM(INDEX(Sheet1!C:C,MATCH(A2,Sheet1!A:A,0)):INDEX(Sheet1!C:C,MATCH(TRUE,INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)):INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)+100)=0,0))),"")

然后復制下來B2:C2。

這是數組公式,必須使用ctrl + shift + enter進行確認。

編輯中只有一個小錯誤:P

對於B2:

=IFERROR(COUNTIF(INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!B:B,MATCH(TRUE,INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)+100)=0,0)+MATCH(A2,'Sept 2016'!A:A,0)-2),"<>"),"")

對於C2:

=IFERROR(SUM(INDEX('Sept 2016'!C:C,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!C:C,MATCH(TRUE,INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)+100)=0,0)+MATCH(A2,'Sept 2016'!A:A,0)-2)),"")

這是數組公式,必須使用ctrl + shift + enter進行確認。

我錯過了抵消MATCH(TRUE,...,0)結果的部分MATCH(TRUE,...,0)因此高索引不會從第1行開始計數。對此很抱歉。

B2和C2中的公式可以向下復制。 還使用了工作表命名。 ;)

編輯2

理論上的COUNTIF無法返回TRUE 我建議一些不同的錯誤,這些錯誤根本不會在我的Excel中彈出(也是Google工作表)。 請為B2嘗試以下公式:

=IFERROR(SUM((INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!B:B,MATCH(TRUE,INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)):INDEX('Sept 2016'!B:B,MATCH(A2,'Sept 2016'!A:A,0)+100)=0,0)+MATCH(A2,'Sept 2016'!A:A,0)-2)<>"")*1),"")

這是一個數組公式,必須使用ctrl + shift + enter進行確認。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM