Foxtable(狐表)用户栏目专家坐堂 → 如何将表一汇总到表二里面


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

主题:如何将表一汇总到表二里面

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
如何将表一汇总到表二里面  发帖心情 Post By:2018/11/14 14:59:00 [只看该作者]

如下表,能不能将表一的数据汇总到表二里面,汇总数据为红色的数据?如果表一里面还有其它规模,表二的列名称还能增加吗?
图片点击可在新窗口打开查看此主题相关图片如下:7u0gr2qfpb@u9_d3w8}p$}g.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 15:21:00 [只看该作者]

直接汇总生成表二的格式也可以

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 16:19:00 [只看该作者]

这个是不是不能实现?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 16:21:00 [只看该作者]

1、具体的项目发上来测试;

 

2、你的问题是如何拆分一段字符串,如【土建120平方,安装12万元】,拆分各个项目和资金?


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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 16:22:00 [只看该作者]

是呀


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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 16:25:00 [只看该作者]

拆分后交叉汇总得到表二的汇总数据

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 16:43:00 [只看该作者]

根据表a得到表b

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 16:44:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/14 17:00:00 [只看该作者]

 

[此贴子已经被作者于2018/11/14 17:21:34编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 17:40:00 [只看该作者]

1、先拆分各个项目,参考代码

 

Dim str As String = "土建100平方米50万元,装修50平方米30万元,安装80万元"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=土建|土建[0-9]+平方米)[0-9]+(?=万元)")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=装修|装修[0-9]+平方米)[0-9]+(?=万元)")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=安装|安装[0-9]+平方米)[0-9]+(?=万元)")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If

 

 


2、写成动态的方式,如

 

'''
Dim str As String = "土建100平方米50万元,装修50平方米30万元,安装80万元"
For Each s As String In str.split(",")
    Dim mc = System.Text.RegularExpressions.Regex.Matches(s, ".+?(?=[0-9]+)")
    If mc.count > 0 Then
        Dim xm = mc(0).value
        msgbox(xm)
        mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=" & xm & "|" & xm & "[0-9]+平方米)[0-9]+(?=万元)")
        If mc.count > 0 Then
            msgbox(mc(0).value)
        End If
    End If
Next

 

 


3、动态生成表,统计数据

 

'''
Dim dic2 As new Dictionary(of String, object)
Dim xms As new List(of String)
For Each dr As DataRow In DataTables("表A").Select("年份 is not null")
    Dim str As String = dr("项目规模")
    Dim year As String = cdate(dr("年份")).year
    If dic2.ContainsKey(year) = False Then
        Dim dic As new Dictionary(of String, Double)
        dic2.Add(year, dic)
    End If
    Dim dic1 As Dictionary(of String, Double) = dic2(year)
    For Each s As String In str.split(",")
        Dim mc = System.Text.RegularExpressions.Regex.Matches(s, ".+?(?=[0-9]+)")
        If mc.count > 0 Then
            Dim xm = mc(0).value
            If xms.Contains(xm) = False Then
                xms.add(xm)
            End If
            mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=" & xm & "|" & xm & "[0-9]+平方米)[0-9]+(?=万元)")
            If mc.count > 0 Then
                If dic1.ContainsKey(xm) = False Then
                    dic1.Add(xm,mc(0).value)
                Else
                    dic1(xm) += mc(0).value
                End If
            End If
        End If
    Next
Next
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("年份", Gettype(String), 32)
For Each xm As String In xms
    dtb.AddDef(xm, Gettype(Double))
Next
dtb.Build()
Dim t As Table = Tables("统计")
For Each key As object In dic2.Keys
    Dim nr As Row = t.addnew
    nr("年份") = key
    For Each xm As String In xms
        nr(xm) = dic2(key)(xm)
    Next
Next
MainTable=t

 

[此贴子已经被作者于2018/11/14 17:40:30编辑过]

 回到顶部