CountIf()-来自不同工作簿的数据

CountIf()-来自不同工作簿的数据

我正在尝试从两个单独的工作簿中获取数据,如下所示:

picker  | lines
--------+------
zf      |    4
ag      |   22
jw      |    8
zf      |    7
cr      |   39
ag      |   10
ag      |   16
ag      |    1
cr      |    4
ag      |    2

...并计算首字母出现的次数,并将它们编译到完全不同的工作簿中。这是我迄今为止得到的公式:

=COUNTIF('\\Shipping\C\Agri-Pet Log\2013\November\December\[December 3, 2013.xls]Ag & Pet Shipping'!$B$4:$B$200,"CR")+COUNTIF('\\Foodcomp\c\Dog Food Log\2013\December\[(df) December 3, 2013.xls]Dog Food'!$B$4:$B$300,"CR")

只要原始工作簿在我的计算机上打开,这个功能就很好用,但如果它们关闭,我得到的就只有#VALUE!理想情况下,我还想让某些东西将与它们旁边的单元格中的首字母相关的数字相加,但一次只能加一件事。

答案1

COUNTIF/SUMIF函数系列不适用于封闭的工作簿,请尝试SUMPRODUCT,例如,使用单个工作簿来复制您的计数

=SUMPRODUCT(('\\Shipping\C\Agri-Pet Log\2013\November\December\[December 3, 2013.xls]Ag & Pet Shipping'!$B$4:$B$200="CR")+0)

当 B = “CR” 时获取 C 列的总和

=SUMPRODUCT(('\\Shipping\C\Agri-Pet Log\2013\November\December\[December 3, 2013.xls]Ag & Pet Shipping'!$B$4:$B$200="CR")+0,'\\Shipping\C\Agri-Pet Log\2013\November\December\[December 3, 2013.xls]Ag & Pet Shipping'!$C$4:$C$200)

答案2

如果要汇总多个已关闭工作簿中的信息,一种方法是利用微软 PowerQuery。这是 Excel 的商业智能插件,能够从包括其他工作簿在内的许多来源查询、过滤和聚合信息。

尽管它有点难以理解,但它是免费的,并得到微软的全力支持。您不需要学习任何编码就可以完成大多数事情。

它一定能做你想做的事。

唯一需要注意的是其他人打开工作簿。这会锁定它们并导致查询失败。如果发生这种情况,您必须等待工作簿关闭,然后刷新查询。

相关内容