Excel精英培训网

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

[已解决]将有数据的单元格并排显示在一起

[复制链接]
发表于 2013-8-13 16:10 | 显示全部楼层 |阅读模式
遇到一个大问题,是将有数据的单元格并排显示在一起,详见附件。

附件中A1:AE14为数据区,每个单元格会随机有数据显示出来,位置不固定,数量有多有少。要求是将有数据的单元格并排显示在一起,就如同24、25行显示的结果。

用公式、不要使用VBA。
最佳答案
2013-8-20 07:08
  1. =INDIRECT(TEXT(SMALL(--IF($A$1:$AE$14="",4^8,IF(MOD(ROW($A$1:$AE$14),3)=ROW($A1),TEXT(ROW($A$1:$AE$14),"00")&TEXT(COLUMN($A$1:$AE$14),"00"),4^8)),COLUMN(A$1)),"r00c00"),)
复制代码
三键回车
不是没人回答,是你上传的时候大家都休息了

合并显示的问题.zip

7.01 KB, 下载次数: 20

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2013-8-19 16:16 | 显示全部楼层
无人应答,是问题难了,还是没有高人?
回复

使用道具 举报

发表于 2013-8-20 07:06 | 显示全部楼层
junxin1128 发表于 2013-8-19 16:16
无人应答,是问题难了,还是没有高人?

你是太小看人了吧
回复

使用道具 举报

发表于 2013-8-20 07:08 | 显示全部楼层    本楼为最佳答案   
  1. =INDIRECT(TEXT(SMALL(--IF($A$1:$AE$14="",4^8,IF(MOD(ROW($A$1:$AE$14),3)=ROW($A1),TEXT(ROW($A$1:$AE$14),"00")&TEXT(COLUMN($A$1:$AE$14),"00"),4^8)),COLUMN(A$1)),"r00c00"),)
复制代码
三键回车
不是没人回答,是你上传的时候大家都休息了

合并显示的问题.zip

8.69 KB, 下载次数: 10

回复

使用道具 举报

发表于 2013-8-20 07:09 | 显示全部楼层
本帖最后由 hongqiqqq 于 2013-8-20 07:20 编辑

一个公式,下拉右拉,或者右拉下拉都可以
回复

使用道具 举报

 楼主| 发表于 2013-8-20 16:43 | 显示全部楼层
谢谢hongqiqqq!
好用!
能帮我解释一下公式吗?
让我进步一下。
回复

使用道具 举报

发表于 2013-8-20 17:03 | 显示全部楼层
学习
回复

使用道具 举报

发表于 2013-8-20 18:28 | 显示全部楼层
junxin1128 发表于 2013-8-20 16:43
谢谢hongqiqqq!
好用!
能帮我解释一下公式吗?

哪一部分没有看明白??
是要全部解释吗?
回复

使用道具 举报

发表于 2013-8-20 18:30 | 显示全部楼层
  1. =INDIRECT(TEXT(SMALL(--IF($A$1:$AE$14="",4^8,IF(MOD(ROW($A$1:$AE$14),3)=ROW($A1),ROW($A$1:$AE$14)&TEXT(COLUMN($A$1:$AE$14),"00"),4^8)),COLUMN(A$1)),"r00c00"),)
复制代码
公式可以再少一些字符
现在发现找行的那个TEXT函数没有意义,只有找列的TEXT函数有作用
回复

使用道具 举报

发表于 2013-8-20 18:42 | 显示全部楼层
=INDIRECT(TEXT(SMALL(--IF($A$1:$AE$14="",4^8,IF(MOD(ROW($A$1:$AE$14),3)=ROW($A1),ROW($A$1:$AE$14)&TEXT(COLUMN($A$1:$AE$14),"00"),4^8)),COLUMN(A$1)),"r00c00"),)
1、由于结果的第一行所在原表中的位置行数分别是1,4,7,10,13,所以要用MOD(ROW($A$1:$AE$14),3)=1来确定,只有满足这个条件才会相应的行号和列号,否则就写个固定的最大值(一般的习惯是4^8
2、由于有空白单元格,只有前面一个条件,会把所有满足行的单元格都表示出来,但这不是你要的结果,所以再增加一个空值判断。
3、上述两个条件,会将空白单元格和不满足条件的都以65536(即4^8)表示出来,再按从小到大的顺序取数,往后拉分别就是107,407,417……
4、最外侧的TEXT函数,是要将取出来的数值以固定形式出现,形成r01c07,r04c07,r04c17^
5、通过indirect函数获取相应位置单元格的数据
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 16:58 , Processed in 0.365130 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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