新足迹

 找回密码
 注册

精华好帖回顾

· 我家孩子学钢琴 (2008-7-22) nitecat · E&E -- 小面作坊 -- 鸡蛋灌饼 (附鸡蛋摊饼和果枣粥) (2010-11-7) 闲夏采薇
· 自己画的小俩口趣事,独乐乐不如众乐乐 ^_^ 11-14更新《小女人的傻问题》 (2009-10-30) 蓝小C · 参加活动 --- 【狸出品】 之 【たこ焼き】 地道関西風の章鱼焼小丸子 (2013-4-8) 黑芝麻狐儿
Advertisement
Advertisement
查看: 2424|回复: 31

[学习培训] EXCEL高手请进(二维数据转化成一维数据)。。。 [复制链接]

发表于 2012-3-18 20:49 |显示全部楼层
此文章由 Explorer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Explorer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在需要把“行”为年、“列”为月的二维数据,转化为按顺序月份排列的一维数据。
比如“行”为2001年~2010年,“列”为1~12月,结果是按“行”2001.1、2001.2、2001.3。。。2010.12顺序排列数据。
如果需要处理的数据很大的话,COPY的速度太慢,所以应该会有某些公式、宏或者PIVOT的方法使问题简单很多。
请高手赐教啊

[ 本帖最后由 Explorer 于 2012-3-18 23:21 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +5 收起 理由
Hardyfarm + 5 我很赞同

查看全部评分

Advertisement
Advertisement

发表于 2012-3-18 20:57 |显示全部楼层
此文章由 Lucifer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Lucifer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Index

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 非常感谢。。。

查看全部评分

发表于 2012-3-18 22:44 |显示全部楼层

回复 Lucifer 2# 帖子

此文章由 Explorer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Explorer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
刚才试了一下,好像一次只能返回一个值,不能批处理,fill的话也不行
能不能麻烦Lu师傅写个公式,比如:
         A  B
1      1  2
2      3  4
如何能实现
         A
1        1
2        2
3        3
4        4
的结果,批处理的公式或者先取一个值再用fill拖下来。
谢谢!

[ 本帖最后由 Explorer 于 2012-3-18 23:08 编辑 ]

评分

参与人数 1积分 +5 收起 理由
Hardyfarm + 5 我很赞同

查看全部评分

发表于 2012-3-18 22:50 |显示全部楼层
此文章由 floodp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 floodp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果只是一次性的转换,而且只有几年的数据,可以考虑用transpose copy。

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 呵呵,暂时我是这么用的。

查看全部评分

发表于 2012-3-18 22:50 |显示全部楼层

回复 Explorer 1# 帖子

此文章由 gcc 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gcc 所有!转贴必须注明作者、出处和本声明,并保持内容完整
能否用 concaternate 把列跟行合并, 然后再把这些数据排列(sort)?

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 举个例子吧

查看全部评分

发表于 2012-3-18 22:52 |显示全部楼层
此文章由 floodp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 floodp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对不起,没注意到数据量很大,transpose可能不行。
Advertisement
Advertisement

发表于 2012-3-18 23:01 |显示全部楼层
此文章由 wsfqy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wsfqy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不太明白你要什么。是不是可以用"&",比如你这个例子,可以用"=A1&B1&A2&B2",记得去掉引号。

如果要在1 2 3 4 之间插入空格,加一个&" "&就可以了。

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 可能写的不清楚,3楼修改过了。

查看全部评分

发表于 2012-3-18 23:09 |显示全部楼层
此文章由 gcc 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 gcc 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 gcc 于 2012-3-18 22:50 发表
能否用 concaternate 把列跟行合并, 然后再把这些数据排列(sort)?

你试试这样行么:
        1991        1992
1        =CONCATENATE($B$1,".",A2)        =CONCATENATE($C$1,".",A2)
2        =CONCATENATE($B$1,".",A3)        =CONCATENATE($C$1,".",A3)
3        =CONCATENATE($B$1,".",A4)        =CONCATENATE($C$1,".",A4)
4        =CONCATENATE($B$1,".",A5)        =CONCATENATE($C$1,".",A5)
5        =CONCATENATE($B$1,".",A6)        =CONCATENATE($C$1,".",A6)
6        =CONCATENATE($B$1,".",A7)        =CONCATENATE($C$1,".",A7)
7        =CONCATENATE($B$1,".",A8)        =CONCATENATE($C$1,".",A8)
8        =CONCATENATE($B$1,".",A9)        =CONCATENATE($C$1,".",A9)
9        =CONCATENATE($B$1,".",A10)        =CONCATENATE($C$1,".",A10)
10        =CONCATENATE($B$1,".",A11)        =CONCATENATE($C$1,".",A11)
11        =CONCATENATE($B$1,".",A12)        =CONCATENATE($C$1,".",A12)
12        =CONCATENATE($B$1,".",A13)        =CONCATENATE($C$1,".",A13)

发表于 2012-3-18 23:20 |显示全部楼层
此文章由 wsfqy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wsfqy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果你的行列每次都是固定的,可以用=TRANSPOSE(array),如果不固定,我建议你编一段VB就可以了,不复杂的。

发表于 2012-3-18 23:36 |显示全部楼层
此文章由 Explorer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Explorer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LS几位辛苦了
顶楼更新了个附件,看得应该比较直观。
如果没有非常懒的办法,只能费点儿功夫了

评分

参与人数 1积分 +5 收起 理由
Hardyfarm + 5 精品文章

查看全部评分

发表于 2012-3-18 23:36 |显示全部楼层
此文章由 红色 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 红色 所有!转贴必须注明作者、出处和本声明,并保持内容完整
编个MACRO,一共4行语句就解决了。。

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 受累写一个,分分伺候。。。

查看全部评分

Advertisement
Advertisement

发表于 2012-3-18 23:52 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
请看图, 红色框中的公式依次为

[ 本帖最后由 KXYS 于 2012-3-18 23:56 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 辛苦了

查看全部评分

发表于 2012-3-19 00:05 |显示全部楼层
此文章由 Explorer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Explorer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
大伙儿集思广益,看看有没有最懒的办法。
明天过来再看

评分

参与人数 1积分 +5 收起 理由
Hardyfarm + 5 我很赞同

查看全部评分

发表于 2012-3-19 20:19 |显示全部楼层
此文章由 rabbitpoint 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rabbitpoint 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得最简单的办法是先把表格横竖一颠倒,然后copy-paste比较傻瓜方便。并不慢,一分钟搞定10几年的数据没问题,行的名字往下一拉自动填充就行。你可以直接横向扩展,然后再横竖颠倒,小心横向限制(超过21年就不灵了)。当然,你要是有超过255年的数据,当我没说。

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 数据确实很大

查看全部评分

发表于 2012-3-19 21:18 |显示全部楼层
此文章由 longyu68 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 longyu68 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Pivot table solution

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 列数不多的话非常可行,感谢。

查看全部评分

发表于 2012-3-19 21:51 |显示全部楼层
此文章由 bowensyd 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bowensyd 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我有最懒的办法, 我做了个小程序,几秒钟搞定所有的
Advertisement
Advertisement

发表于 2012-3-19 22:21 |显示全部楼层
此文章由 bowensyd 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bowensyd 所有!转贴必须注明作者、出处和本声明,并保持内容完整
解压文件后,生成read.php ,和 Test.CSV ,把的你xls文件转成Test.CSV,按照Test.CSV里面的内容格式。把两个文件放在同一目录下,用apache服务运行read.php文件,你就能得到想要的结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 相当专业啊

查看全部评分

发表于 2012-3-19 23:12 |显示全部楼层

回复 红色 11# 帖子

此文章由 红色 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 红色 所有!转贴必须注明作者、出处和本声明,并保持内容完整
For Each aCell In Selection
  [Z1].Offset(i, 0) = Range(aCell.Row, 1) & "." & aCell
  i = i + 1
Next aCell

[ 本帖最后由 红色 于 2012-3-19 23:18 编辑 ]

评分

参与人数 2积分 +5 收起 理由
KXYS + 3 牛啊, 可否详细一些,做成xlsm后缀的.
Explorer + 2 高,offset是关键。

查看全部评分

发表于 2012-3-19 23:22 |显示全部楼层

回复 红色 18# 帖子

此文章由 红色 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 红色 所有!转贴必须注明作者、出处和本声明,并保持内容完整
运行此macro的时候,把所有月份的数据作为Selection
假设年都在第一列。。
结果放在Z1(当然你放哪里都可以)。。

发表于 2012-3-20 10:40 |显示全部楼层
此文章由 Lucifer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Lucifer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不需要这么麻烦的,把结果数据里的年月分开,然后用index和match就可达到想要结果。

发表于 2012-3-20 13:03 |显示全部楼层
此文章由 euroblue 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 euroblue 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用index和match.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 简单明了,非常感谢。

查看全部评分

Advertisement
Advertisement

发表于 2012-3-20 15:48 |显示全部楼层

回复 红色 19# 帖子

此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我试了, 总出错, 不知道哪里有问题. 可不可以麻烦你把micro做成 XLSM后缀的EXCEL文件. 谢谢.

发表于 2012-3-20 17:49 |显示全部楼层
此文章由 bowensyd 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bowensyd 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Lz 用我的方法解决了问题没有? 主要思路就是将所有的相关元素提取出来,然后再重新展示出来, 非常灵活,任何你想要的数据排列形式都是可以做出来的。 用excel的VBA编程早已成为历史了,所有不建议用宏!

发表于 2012-3-20 17:59 |显示全部楼层

回复 bowensyd 23# 帖子

此文章由 Explorer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Explorer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不好意思啊,apache不太懂,还得找时间搞定。
相信你的小程序肯定没问题
BWT,等分分回来再慢慢感谢大伙儿啊

评分

参与人数 1积分 +5 收起 理由
Hardyfarm + 5 精品文章

查看全部评分

发表于 2012-3-20 18:11 |显示全部楼层

回复 Explorer 24# 帖子

此文章由 bowensyd 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bowensyd 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很简单的,去下载个apache的软件! 或者你直接把xls发给我邮箱info@oz3d.biz ,我帮你搞定后把结果给你发过去!

发表于 2012-3-20 20:06 |显示全部楼层
此文章由 红色 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 红色 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 KXYS 于 2012-3-20 15:48 发表
我试了, 总出错, 不知道哪里有问题. 可不可以麻烦你把micro做成 XLSM后缀的EXCEL文件. 谢谢.


不好意思,我只有Excel 2002, 没有2007以上高版本的。。。
所以我只能凭借LZ的描述写这个Macro。。。不一定理解对了。
我把低版本的放在附件里了。。。(绿色的部分是要转换的部分,所以先要Selection,然后run Macro)。

[ 本帖最后由 红色 于 2012-3-20 20:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 第二个是

查看全部评分

Advertisement
Advertisement

发表于 2012-3-20 20:14 |显示全部楼层

回复 红色 26# 帖子

此文章由 红色 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 红色 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用第二个ZIP文件,稍微不一样,根据我不同的理解。。

发表于 2012-3-20 22:33 |显示全部楼层
此文章由 bowensyd 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bowensyd 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本人不推荐用宏的原因是:
1,你要降低安全设置来接受未签署的宏的运行,一旦安全防范降低后, windows平台下的病毒会乘虚而入,宏病毒伴随windows一直到今日。
2.宏的运行会破坏原始数据文件(比如:xls)的完整性,因为宏是在excel环境下运用。最好的做法是将数据和处理后的结果分开。
3.宏的全自动化程度不高,楼上的做法中还要你select区域,明显要手动!

评分

参与人数 1积分 +2 收起 理由
Explorer + 2 很有建设性

查看全部评分

:th

发表于 2012-3-21 09:08 |显示全部楼层
此文章由 Inner 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Inner 所有!转贴必须注明作者、出处和本声明,并保持内容完整
进来学习了。

发表于 2012-3-21 22:49 |显示全部楼层
此文章由 oceann 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oceann 所有!转贴必须注明作者、出处和本声明,并保持内容完整
学习了

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部