Foxtable(狐表)用户栏目专家坐堂 → 基本数据整理之竖表转横标!


  共有2725人关注过本帖树形打印复制链接

主题:基本数据整理之竖表转横标!

帅哥哟,离线,有人找我吗?
bootes29
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
基本数据整理之竖表转横标!  发帖心情 Post By:2017/6/25 16:15:00 [只看该作者]

各位老师,周末我又来打扰各位了!
很多传统工作用的表格不规范,不标准,第一步把传统数据导入,然后标准化这很重要。
下图,就是传统的行程导入后的表a,我想把他转成表b,
我对基本的循环输入的语句感到还是很难,有请各位大师不吝指教!
图片点击可在新窗口打开查看此主题相关图片如下:未标题-122 拷贝.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/25 16:16:00 [只看该作者]

这是table
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:行程录入.table


 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/25 16:35:00 [只看该作者]

http://www.foxtable.com/webhelp/index.htm?page=2965.htm
http://www.foxtable.com/help/index.htm?page=0679.htm
这两个例子,我已看,感觉还是不同

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/25 17:34:00 [只看该作者]

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
For Each dr As DataRow In dt1.Select("大类 = '行程特色'")
    str &= dr("第一列") & vbcrlf
Next
ndr("行程特色") = str
For i As Integer = 1 To 8
    str = ""
    For Each dr As DataRow In dt1.Select("大类 = '第" & i & "天'")
        str &= dr("第一列") & " " & dr("第四列") & " " & dr("第六列") & vbcrlf
    Next
    ndr("第" & i & "天") = str
Next
   

 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/25 17:51:00 [只看该作者]

崇拜的眼神!感谢老师每次都不厌其烦的指导。
我想破脑袋,老师却只要寥寥数语,这就是差距!

 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/25 18:04:00 [只看该作者]

@有点色 老师 后面难道有多少列,就需要定义多少个str吗?
Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
Dim str1 As String = ""
Dim str2 As String = ""
Dim str3 As String = ""
Dim str4 As String = ""
Dim str5 As String = ""

For Each dr As DataRow In dt1.Select("大类 = '行程特色'")
    str &= dr("第一列") & vbcrlf
Next
ndr("行程特色") = str

For Each dr As DataRow In dt1.Select("大类 = '报名须知'")
    str1 &= dr("第一列") & vbcrlf
Next
ndr("报名须知") = str1

For Each dr As DataRow In dt1.Select("大类 = '住宿标准'")
    str2 &= dr("第一列") & vbcrlf
Next
ndr("住宿标准") = str2

For Each dr As DataRow In dt1.Select("大类 = '旅游交通'")
    str3 &= dr("第一列") & vbcrlf
Next
ndr("旅游交通") = str3

For Each dr As DataRow In dt1.Select("大类 = '用餐标准'")
    str4 &= dr("第一列") & vbcrlf
Next
ndr("用餐标准") = str4



 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/25 18:31:00 [只看该作者]

 如果代码一样,可以写成循环

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
Dim ndr As DataRow = dt2.AddNew
ndr("线路编号名称") = dt1.DataRows(0)("大类")
Dim str As String = ""
Dim ary() As String = {"行程特色", "报名须知", "住宿标准", "旅游交通", "用餐标准"}
For Each s As String In ary

    str = ""
    For Each dr As DataRow In dt1.Select("大类 = '" & s & "'")
        str &= dr("第一列") & vbcrlf
    Next
    ndr(s) = str
Next

[此贴子已经被作者于2017/6/25 18:31:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/25 19:59:00 [只看该作者]

原来如此,我写了40行。
太感谢了,有点色 老师早点休息!

 回到顶部