Excel:跨工作簿数据挖掘

时间:2016-08-03 00:36:32

标签: excel

在工作中,我们会跟踪收集的付款,以达到每日目标。因此,我们的付款会在我们各自的Excel工作簿中进行跟踪。所述工作簿的一个例子如下:

Google Docs Payment Log (modified)

我们在工作中使用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的行是跟踪器日志填充的行。 (查看Sheet2以查看不良行为。)

我需要使用什么公式来实现所需的行为?

修改

偷偷带回信息(并修改所以没有发布帐户信息)后,我发现所选答案根本不起作用。请参阅上面的(已修改的)Google电子表格,以了解正在发生的事情。

1 个答案:

答案 0 :(得分:1)

为了让它成功,我需要在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 + 输入确认。

编辑其中只有一个小错误: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 + 输入确认。

我错过了部分来抵消MATCH(TRUE,...,0)的结果,所以上面的索引不会从第1行算起来。抱歉这个。

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

编辑2

理论COUNTIF无法返回TRUE。我建议一些不同的错误,它不会弹出我的Excel(也是谷歌表)。请尝试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 + 输入确认。