Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4848|回复: 8

[已解决]再发物质统计量

[复制链接]
发表于 2014-12-8 04:39 | 显示全部楼层 |阅读模式
20学分
本帖最后由 生闷气 于 2014-12-9 13:02 编辑

各位大侠好:
       我想统计多种药品中,所需配用的纯净物的量。
       第一个表(含有三个分表)是生产单位(盒)药品所需各种纯净物的配比。
       第二个表是,用第一个表中的配比,想要制得的药品的量。
       在第三个表中,按要求统计出需每种纯净物的总量。 统计出的各种纯净物的量,按从大到小顺序排列。对一些纯净物,在配比表中跃然列出,但在制造药品用不到的纯净物,即统计出的数量为零者,就不要在表中列出了。
       我都列出了表格,并附以举出例子进行了说明。相信各位都能看明白,请用函数公式统计。我觉得有些难度,于是以20金币悬赏,请求答案。请各位百忙中,抽空予以解答,在此深表感谢。
最佳答案
2014-12-8 15:33
针对你提供的表格数据而写的一个公式(在D58单元格):

=IF(COUNTIF($3:$3,B58),SUM(N(OFFSET($A$3,ROW($1:$8),MATCH(B58,$3:$3,)-1,))*{0;3;0;0;9;28;6;11}),)+IF(COUNTIF($14:$14,B58),SUM(N(OFFSET($A$14,ROW($1:$5),MATCH(B58,$14:$14,)-1,))*{12;0;0;2;45}),)+IF(COUNTIF($22:$22,B58),SUM(N(OFFSET($A$22,ROW($1:$7),MATCH(B58,$22:$22,)-1,))*{0;14;0;21;35;0;7}),)

公式以CTRL+SHIFT+ENTER三键结束。
向下复制公式。

物质统计表-2.rar

13.23 KB, 下载次数: 12

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-12-8 08:19 | 显示全部楼层
您的意思是不是 QQ截图20141208081626.jpg 这里各项合起来需要的各种纯净物的数量的排序啊
回复

使用道具 举报

发表于 2014-12-8 08:20 | 显示全部楼层
回复

使用道具 举报

发表于 2014-12-8 09:43 | 显示全部楼层
你这种表处理起来有难度,公式会很长。而且一旦表格格式略有变化,就会出现错误计算的问题,建议你借鉴数据库的原理,将表格做成二维表的样式,如前三个表做成 药品名  纯净物品名 单位数量这样三列。
回复

使用道具 举报

 楼主| 发表于 2014-12-8 12:25 | 显示全部楼层
tgydslr 发表于 2014-12-8 08:19
您的意思是不是这里各项合起来需要的各种纯净物的数量的排序啊

对最终计算出的纯净物量,以纯净物量多少排序。如果不方便排序,不排也可。
回复

使用道具 举报

 楼主| 发表于 2014-12-8 12:33 | 显示全部楼层
zyouong 发表于 2014-12-8 09:43
你这种表处理起来有难度,公式会很长。而且一旦表格格式略有变化,就会出现错误计算的问题,建议你借鉴数据 ...

是的,如果做成二维形式,也就是把三个分表合成一个表,那就需要把有可能用的纯净物,在最上面一行,都要罗列出来,那么,这个二维表将会很大。也不好办。
回复

使用道具 举报

发表于 2014-12-8 13:27 | 显示全部楼层
生闷气 发表于 2014-12-8 13:19
再次向您请教,如果我做成二维形式的,也就是将可能用到的纯净物,都在一个工作表最上面一行,列出来,大 ...

这么大的数据量,只有用数据库来处理啦。话说专业的才好使!
你这个就是早excel里用SQL处理也会很慢的
回复

使用道具 举报

发表于 2014-12-8 15:33 | 显示全部楼层    本楼为最佳答案   
针对你提供的表格数据而写的一个公式(在D58单元格):

=IF(COUNTIF($3:$3,B58),SUM(N(OFFSET($A$3,ROW($1:$8),MATCH(B58,$3:$3,)-1,))*{0;3;0;0;9;28;6;11}),)+IF(COUNTIF($14:$14,B58),SUM(N(OFFSET($A$14,ROW($1:$5),MATCH(B58,$14:$14,)-1,))*{12;0;0;2;45}),)+IF(COUNTIF($22:$22,B58),SUM(N(OFFSET($A$22,ROW($1:$7),MATCH(B58,$22:$22,)-1,))*{0;14;0;21;35;0;7}),)

公式以CTRL+SHIFT+ENTER三键结束。
向下复制公式。

回复

使用道具 举报

 楼主| 发表于 2014-12-9 13:01 | 显示全部楼层
qinqh_yl 发表于 2014-12-8 15:33
针对你提供的表格数据而写的一个公式(在D58单元格):

=IF(COUNTIF($3:$3,B58),SUM(N(OFFSET($A$3,ROW($1 ...

谢谢您,您是唯一做出公式,帮我解决问题的人。不管效果如何,我也非常感谢您,这问题可能的确有难度,估计再也不会有人真正动手去做了,我就把最佳给您了,谢谢您。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-22 09:41 , Processed in 0.306528 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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