ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7696|回复: 10

[已解决] Excel 跨表格多条件计数 —— 4楼已完美解答

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-7-27 10:08 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 小芙子 于 2015-7-28 09:12 编辑

需要做一张销售人员访问客户的每周跟踪表和年度汇总统计,每周表格的命名是规律的、访问信息已填好,需要在统计表中用公式来跨表格统计访问次数。

目前摸索到这个阶段:
如果仅跨表格统计每家客户的访问次数,可以用这个函数实现(论坛里学习到的,copy后改了一下):
=SUMPRODUCT(COUNTIF(INDIRECT("CW"&ROW($1:$3)&"!B:B"),B2))

问题1:
如果我需要统计每家客户实地访问(Visit)和电话访问(By phone)分别的次数(多条件计数),该如何写公式?

问题2:
附件中每周的表格命名规律为CW1/CW2/CW3/CW4,如果我需要将每周表格改为CW01/CW02/CW03/CW04,并且是从CW01统计到CW52(一年有52周),该如何写公式?


客户访问登记20150727.rar

85.04 KB, 下载次数: 125

TA的精华主题

TA的得分主题

发表于 2015-7-27 10:24 | 显示全部楼层
  1. =SUMPRODUCT(COUNTIFS(INDIRECT("CW0"&ROW($1:$4)&"!B:B"),B2,INDIRECT("CW0"&ROW($1:$4)&"!D:D"),"Visit"))
复制代码
  1. =SUMPRODUCT(COUNTIFS(INDIRECT("CW0"&ROW($1:$4)&"!B:B"),B2,INDIRECT("CW0"&ROW($1:$4)&"!D:D"),"By phone"))
复制代码

周数多的时候,相应改动row函数就可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-27 10:32 | 显示全部楼层
龙城飞将III 发表于 2015-7-27 10:24
周数多的时候,相应改动row函数就可以了

感谢大侠,我这就试试。
另问:如果每周表格名里的CW1改为CW01,其他相应都变成02、03一直到09,是否需要再添加什么?

TA的精华主题

TA的得分主题

发表于 2015-7-27 10:38 | 显示全部楼层
小芙子 发表于 2015-7-27 10:32
感谢大侠,我这就试试。
另问:如果每周表格名里的CW1改为CW01,其他相应都变成02、03一直到09,是否需要 ...

不好意思,刚刚的公式没考虑周全。
  1. =SUMPRODUCT(COUNTIFS(INDIRECT("CW"&TEXT(ROW($1:$4),"00")&"!B:B"),B2,INDIRECT("CW"&TEXT(ROW($1:$4),"00")&"!D:D"),"Visit"))
复制代码
  1. =SUMPRODUCT(COUNTIFS(INDIRECT("CW"&TEXT(ROW($1:$4),"00")&"!B:B"),B2,INDIRECT("CW"&TEXT(ROW($1:$4),"00")&"!D:D"),"By phone"))
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-27 10:39 | 显示全部楼层
龙城飞将III 发表于 2015-7-27 10:24
周数多的时候,相应改动row函数就可以了

大侠,看到你公式里"CW0"&ROW($1:$4),但因为我每周表格的命名规律是:CW01-CW52,也就是说52之前是没有“0"的,我表格里只举例了1-4,所以可能如果我做52周,公式会出现问题。会者不难,可否还请再优化一下。不胜感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-27 10:44 | 显示全部楼层
龙城飞将III 发表于 2015-7-27 10:38
不好意思,刚刚的公式没考虑周全。

是我只取了原表的一部分,所以误导大侠了。谢谢,谢谢!我一看现在这个公式,就知道正是我需要的!Excel深入学习才刚开始,感谢帮助!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-30 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
龙城飞将III 发表于 2015-7-27 10:24
周数多的时候,相应改动row函数就可以了

大侠,还有一个问题请教。
其实我举例子的表格只是我最终表格的大框架,我发现如果大量使用数组函数,我表格运行速度变得特别慢,几乎无法进行任何操作。这个有法可解吗?如果用VBA来实现,也会这么慢吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-30 17:11 | 显示全部楼层
龙城飞将III 发表于 2015-7-27 10:24
周数多的时候,相应改动row函数就可以了

因为表格涉及公司数据库信息,所以不好直接发出来。有52张周报表格,还有一张年度统计表,统计52周的内容。大概涉及的客户信息有2000多条吧。表格的公式可以优化,让表格速度很快吗?
我领导想请外面来做,但不确定是用Excel还是在已经数据系统基础上开发。他只想快速、方便好用。我目前的表格几乎瘫痪。

TA的精华主题

TA的得分主题

发表于 2015-7-30 17:16 | 显示全部楼层
小芙子 发表于 2015-7-30 17:03
大侠,还有一个问题请教。
其实我举例子的表格只是我最终表格的大框架,我发现如果大量使用数组函数,我 ...

这些数组函数中有易失性函数,会不断引起重算,因此当数据量特别大的时候,就会变得很慢,vba一次运行完毕之后,直接出结果,所以不会变慢,但是如有表格有改动,需要再次执行程序,才能刷新数据。现有数组公式的解决办法可以尝试下,设置表格为手动重算,当所有需要改动的地方全部改动完毕后,手动重算。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-31 12:42 | 显示全部楼层
龙城飞将III 发表于 2015-7-30 17:16
这些数组函数中有易失性函数,会不断引起重算,因此当数据量特别大的时候,就会变得很慢,vba一次运行完 ...

大侠,能否短我一个你的邮箱,我想请你帮优化一下我的表格。我们领导已经放弃我了,直接想请高手继续完成。我现在的权限,不能给你发消息。但我也不确定是否有权限收消息。领导着急用,我现学半吊子耽误事。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 07:26 , Processed in 0.049505 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表