ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 纵向转横向

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-7-8 00:03 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
诚心求助:原数据有2列,有1000+行。相当于本来是一个属性占一行数据记录,现在想变成同一个水果的多种属性在同一行中。谢谢大家!~
纵向转横向.png

纵向转横向.zip

6.58 KB, 下载次数: 35

TA的精华主题

TA的得分主题

发表于 2015-7-8 07:52 | 显示全部楼层
E列去重复,F列往右纵横转换。
有1000+数据,公式预备到1100行,但是真的1000+都填满数据,公式运行会慢下来!

EH(Wjg)c.rar

7.52 KB, 下载次数: 37

TA的精华主题

TA的得分主题

发表于 2015-7-8 08:08 | 显示全部楼层
可试用字典:
Sub zz()
Dim arr, brr(), d, dd, t, tt
Set d = CreateObject("scripting.dictionary")
Set dd = CreateObject("scripting.dictionary")
arr = [a1].CurrentRegion
For i = 2 To UBound(arr)
d(arr(i, 1)) = d(arr(i, 1)) & "|" & arr(i, 2)
dd(arr(i, 1)) = dd(arr(i, 1)) + 1
Next
t = d.items
tt = Application.Max(dd.items)
ReDim brr(1 To d.Count, 1 To tt)
For i = 0 To UBound(t)
    n = Split(Mid(t(i), 2), "|")
    For j = 0 To UBound(n)
        brr(i + 1, j + 1) = n(j)
    Next
Next
[h5].Resize(d.Count, tt) = brr
[g5].Resize(d.Count, 1) = Application.Transpose(d.keys)
Set d = Nothing
Set dd = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2015-7-8 08:51 | 显示全部楼层
1、如果装有powerquery的话,2/3步操作就可以完成了。
首先,在源数据表添加辅助列,对水果进行计数排序,公式 =COUNTIF(A$2:A2,A2),见图:
1.png

2、将数据表添加至powerquery编辑器,操作:将光标放在表格内,在powerquery菜单栏--选择--从表,如下图
2.png

3、在pq编辑器进行操作,将辅助列放在第1列,如下图(也可以在数据源表就将辅助列放在第1列,此处操作就节省)
3.png

4、在pq编辑器透视“辅助列”,选中辅助列--转换--透视列
4.png

5、得出结果,退出保存。
5.png

想来1000多条数据的话,用powerquery转换速度也是蛮快的。


TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-8 08:57 | 显示全部楼层
谢谢wangjguo44,尝试了你的方法,是可行的,可是有个问题,就是出来的结果每个最多只能显示2个属性,如附件截图。第一次发帖有点不知道怎么放图片回复。由于文档是加密的无法上传原文件。
QQ图片20150708085156.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-8 09:01 | 显示全部楼层
Chip_Kenny 发表于 2015-7-8 08:08
可试用字典:
Sub zz()
Dim arr, brr(), d, dd, t, tt

十分感谢Chip_Kenny,但是由于我还不会用VBA,所以暂时用不上你的方法。十分抱歉。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-8 09:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yeminqiang 发表于 2015-7-8 08:51
1、如果装有powerquery的话,2/3步操作就可以完成了。
首先,在源数据表添加辅助列,对水果进行计数排序, ...

谢谢yeminqiang!看起来很厉害的样子,可是公司的电脑IE只能用IE8,尝试了装powerquery但是装不了。晚上回去在自己电脑上试一下。十分感谢。

TA的精华主题

TA的得分主题

发表于 2015-7-8 09:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小新和小葵 发表于 2015-7-8 09:35
谢谢yeminqiang!看起来很厉害的样子,可是公司的电脑IE只能用IE8,尝试了装powerquery但是装不了。晚上 ...

这个和ie8也什么关系吧?用2013版的excel就可以用powerquery了。这个工具也是非常不错的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-8 09:58 | 显示全部楼层
TO:yeminqiang,我的是2010版本的excel,装的时候报错了呢~
报错.png

TA的精华主题

TA的得分主题

发表于 2018-8-31 14:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 08:06 , Processed in 0.025874 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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