Excel精英培训网

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

[已解决]表格数据转化

[复制链接]
发表于 2016-9-7 23:15 | 显示全部楼层 |阅读模式
本帖最后由 hwh6963 于 2016-9-8 06:10 编辑


最佳答案
2016-9-8 08:37
本帖最后由 苏子龙 于 2016-9-8 09:34 编辑

contxt自定义函数是论坛里大神们的写出来的,非常实用,我们会使用就好了
捕获.PNG

将下表数据转化.zip

5.73 KB, 下载次数: 13

发表于 2016-9-7 23:20 | 显示全部楼层
本帖最后由 Excel学徒123 于 2016-9-8 08:57 编辑

代码解决,具体看附件,代码运行之后记得在结果列点成自动换行

  1. Sub test()
  2.     Dim arrSrc, arrRst()
  3.     Dim irow%, iCol%, iCnt%
  4.     Dim Ends%
  5.     Dim strText$
  6.     Ends = Cells(Rows.Count, 1).End(3).Row
  7.     arrSrc = Range("a2:e" & Ends).Value
  8.     ReDim arrRst(1 To UBound(arrSrc), 1 To 1)
  9.     For irow = 1 To UBound(arrSrc)
  10.         For iCol = 1 To UBound(arrSrc, 2)
  11.             iCnt = iCnt + 1
  12.             If Len(arrSrc(irow, iCol)) > 0 Then
  13.                 strText = strText & iCnt & "、" & arrSrc(irow, iCol) & Chr(10)
  14.             End If
  15.         Next
  16.         If iCnt > 0 Then
  17.             arrRst(irow, 1) = Left(strText, Len(strText) - 1)
  18.             iCnt = 0
  19.             strText = ""
  20.         End If
  21.     Next
  22.     Range("f2").Resize(UBound(arrRst)) = arrRst
  23. End Sub
复制代码

将下表数据转化.rar

10.09 KB, 下载次数: 1

评分

参与人数 1 +1 收起 理由
hwh6963 + 1 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-9-8 06:11 | 显示全部楼层
回复

使用道具 举报

发表于 2016-9-8 08:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 苏子龙 于 2016-9-8 09:34 编辑

contxt自定义函数是论坛里大神们的写出来的,非常实用,我们会使用就好了

自定义函数 将下表数据转化.zip

11.89 KB, 下载次数: 8

点评

自己写,总是发这个  发表于 2016-9-8 08:56
回复

使用道具 举报

发表于 2016-9-8 09:32 | 显示全部楼层
苏子龙 发表于 2016-9-8 08:37
contxt自定义函数是论坛里大神们的写出来的,非常使用,我们会用就好了

没有您们大神的水平,只会搬砖,,那么好用的自定义,要推广下

评分

参与人数 1 +1 收起 理由
hwh6963 + 1 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-9-8 20:39 | 显示全部楼层
苏子龙 发表于 2016-9-8 09:32
没有您们大神的水平,只会搬砖,,那么好用的自定义,要推广下

能否将公式解释一下:=contxt(IF(A3:F3<>"",{"1、","2、","3、","4、","5、","6、"}&A3:F3,""),";"&CHAR(10))
特别IF(A3:F3<>""
谢谢!帮助特大
回复

使用道具 举报

发表于 2016-9-8 21:54 | 显示全部楼层
hwh6963 发表于 2016-9-8 20:39
能否将公式解释一下:=contxt(IF(A3:F3"",{"1、","2、","3、","4、","5、","6、"}&A3:F3,""),";"&CHAR(10 ...

是if判断,当数据区a3:f3不等于空白时,就用手工数组&它本身,如果是空白就等于空白(“”),char(10)是换行符,
记得给辛苦板砖的我来个最佳哦
回复

使用道具 举报

 楼主| 发表于 2016-9-9 07:03 | 显示全部楼层
苏子龙 发表于 2016-9-8 21:54
是if判断,当数据区a3:f3不等于空白时,就用手工数组&它本身,如果是空白就等于空白(“”),char(10) ...

为什么在2007版拖动公式报错 为什200.PNG
回复

使用道具 举报

发表于 2016-9-9 07:52 | 显示全部楼层
hwh6963 发表于 2016-9-9 07:03
为什么在2007版拖动公式报错

点击启用宏就好了,还不行操作如下
点击OFFICE图标->Excel选项->信任中心->信任中心设置->宏设置->启用所有宏
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 01:49 , Processed in 0.427358 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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