Excel精英培训网

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

求助:单据中的条件引用。弄了好几个小时也没能弄明白,恳请高手指教。

[复制链接]
发表于 2016-1-17 09:25 | 显示全部楼层 |阅读模式
两个表,一个为总表,一个为通知单,总表的数据是齐全的。
想实现的目的:
在通知单上录入时间和班级名称,按照总表的内容自动生成通知单,即某一天、某一单位的所有问题自动排列到通知单上,通知单上的最后一个问题之后为空白。
现在用的公式
=IF(INDEX(检查台账!$C$5:$C$9719,MATCH(整改通知单!$E$2,检查台账!$C$5:$C$9719,0)+ROWS($A$1:A1)-1,,1)=$E$2,"    "&ROWS($A$1:A1)&"、"&INDEX(检查台账!$D$5:$D$9719,MATCH(整改通知单!$E$2,检查台账!$C$5:$C$9719,0)+ROWS($A$1:A1)-1,MATCH(DATE(整改通知单!$A$2,整改通知单!$B$2,整改通知单!$C$2),检查台账!$E$5:$E$9719,0))&"。","")

总表

总表

通知单

通知单

检查台账.rar

20.11 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-1-17 10:45 | 显示全部楼层
本帖最后由 lichuanboy44 于 2016-1-17 10:51 编辑

以下公式经调试成功,但对你的表进行了小的调整,不影响你达到的目的,减少公式难度,因不是竞赛题
=IF(INDEX(检查台账!D:D,SMALL(IF(((检查台账!B$5:B$27=$D$2)*(检查台账!C$5:C$27=$E$2)*(检查台账!E$5:E$27=$A$2)),ROW($5:$27),9999),ROW(A10)-7))=0,"",INDEX(检查台账!D:D,SMALL(IF(((检查台账!B$5:B$27=$D$2)*(检查台账!C$5:C$27=$E$2)*(检查台账!E$5:E$27=$A$2)),ROW($5:$27),9999),ROW(A10)-7)))
因以上数组公式,在合并单元格内是不能输进去的,所以另外设置了格式,即选中B到H列——设置单元格——水平居中——跨列居中,效果一样。

A列序号自动生成公式为:=IF(OR(B8="",COUNTA($B$8:B8)=0),"",COUNTA($B$8:B8))

另外,日期不能单独输入年月日

检查台账.zip

16.88 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2016-1-17 10:52 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-1-17 11:42 | 显示全部楼层
经测试,效果非常好,再次感谢,有个小疑惑,不知能否解答。日期单独输入年月日,和用date()函数,得出的效果不一样么?
回复

使用道具 举报

发表于 2016-1-17 16:25 | 显示全部楼层
蛋蛋的学问 发表于 2016-1-17 11:42
经测试,效果非常好,再次感谢,有个小疑惑,不知能否解答。日期单独输入年月日,和用date()函数,得出的 ...


效果一样,你把你日期仍按你原来的分三格输入,以下公式也可
=IF(INDEX(检查台账!D:D,SMALL(IF(((检查台账!B$5:B$27=$D$2)*(检查台账!C$5:C$27=$E$2)*(检查台账!E$5:E$27=DATE($A$2,$B$2,$C$2))),ROW($5:$27),9999),ROW(A8)-7))=0,"",INDEX(检查台账!D:D,SMALL(IF(((检查台账!B$5:B$27=$D$2)*(检查台账!C$5:C$27=$E$2)*(检查台账!E$5:E$27=DATE($A$2,$B$2,$C$2))),ROW($5:$27),9999),ROW(A8)-7)))

检查台账2.zip

16.74 KB, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 02:53 , Processed in 0.419336 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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