ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 合计问题(已经困扰我几个月了)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-1-21 16:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
因为不懂,所以来看看

TA的精华主题

TA的得分主题

发表于 2009-1-21 19:03 | 显示全部楼层

回复 25楼 fdd 的帖子

还是需要打扰你,当我抹黑公式的时候countif(c2:c8,c2:c8)的数据是{4;4;1;1;4;1;4}所以是30000,为什么答案会是这个?而只有答案是{5;5;5;1;5;1}的时候,答案才是15000。会不会我的系统有错?

TA的精华主题

TA的得分主题

发表于 2009-1-21 20:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不可以分类汇总吗?搞的那么复杂

TA的精华主题

TA的得分主题

发表于 2009-1-21 21:38 | 显示全部楼层
原帖由 wddn 于 2009-1-19 16:12 发表
如果合约一列有空值,试试数组公式:
=SUM((MATCH(A2:A16&"",A2:A16&"",)=ROW(A2:A16)-1)*B2:B16)

用另一个公式也可以。
{=SUM(IF($C$2:$C$9<>"",1/COUNTIF($C$2:$C$9,$C$2:$C$9)*$D$2:$D$9))}

TA的精华主题

TA的得分主题

发表于 2009-1-21 23:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-1-22 09:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-1-22 15:04 | 显示全部楼层
原帖由 smallpepper 于 2009-1-21 19:03 发表
还是需要打扰你,当我抹黑公式的时候countif(c2:c8,c2:c8)的数据是{4;4;1;1;4;1;4}所以是30000,为什么答案会是这个?而只有答案是{5;5;5;1;5;1}的时候,答案才是15000。会不会我的系统有错?


我用的数据不一样,但不影响公式的说明:
公式:COUNTIF(C$2:C19,C$2:C19)的结果如下:
{1;1;1;1;1;1;1;1;2;1;1;2;1;2;1;2;1;1}

1/COUNTIF(C$2:C19,C$2:C19)的结果如下:
{1;1;1;1;1;1;1;1;0.5;1;1;0.5;1;0.5;1;0.5;1;1} 把它理解成:如果只有一个值,占的比例为100%,即1;如果有2 个,每个占的比例为:1/2,即0.5,……

D$2:D19/COUNTIF(C$2:C19,C$2:C19) 理解成:每个值按照自己重复次数的比例取值。

=SUMPRODUCT(D$2:D19/COUNTIF(C$2:C19,C$2:C19)) 就是把乘积加起来而已(因为只有一个数组,SUMPRODUCT相当于加)

这样,数值中虽然有重复,但由于各自只取了:1/重复次数的值,因为加起来相当于只取了1个100%。值不会被重复算。

还不懂的话,请问:1/2+1/2=?     1/3+1/3+1/3=? ……

TA的精华主题

TA的得分主题

发表于 2009-1-22 16:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-1-23 17:08 | 显示全部楼层
原帖由 nyistjz 于 2009-1-19 18:42 发表
再给朋友提个难题.
在筛选的时候能,我的合约金额能不能也像请款金额一样,隐藏掉的数据不进行合计,只显示出现的金额合计?

请楼主测试:
Sheet1!D23的公式应用了定义的名称,因为超过了嵌套层数,也可不用定义名称,因为C列厂商合约号是纯数字的:
D23=SUM(SUBTOTAL(9,OFFSET(D$1,IF(MATCH(SUBTOTAL(3,OFFSET($C$1,ROW(C$2:C$19)-1,))*$C$2:$C$19,SUBTOTAL(3,OFFSET($C$1,ROW(C$2:C$19)-1,))*$C$2:$C$19,)=ROW(C$2:C$19)-1,ROW(C$2:C$19)-1,20),)))
数组公式。
4楼的思路非常好,模仿一个数组公式,比先前的简洁些:
D23=SUM(IF(SUBTOTAL(3,OFFSET($C$1,ROW(C$2:C$19)-1,)),$D2:$D19/MMULT(--($C$2:$C$19=TRANSPOSE($C$2:$C$19)),ROW(C$2:C$19)^0)))

[ 本帖最后由 wddn 于 2009-1-24 12:08 编辑 ]

合计问题(已经困扰我几个月了)2.rar

10.51 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2009-1-23 19:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

根据题目作答

=IF(SUBTOTAL(2,D1:D19)>11,SUMPRODUCT(1/COUNTIF(C2:C19,C2:C19)*D2:D19),SUBTOTAL(9,D1:D19)/SUBTOTAL(2,D1:D19))

[ 本帖最后由 ychh_wy 于 2009-1-23 19:36 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-27 02:48 , Processed in 0.055545 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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