以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]跨表统计稍微复杂搞不定  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146249)

--  作者:long9547
--  发布时间:2020/2/19 23:42:00
--  [求助]跨表统计稍微复杂搞不定
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:xxxxxxx.table
图片点击可在新窗口打开查看

实在搞不定,请给出完整代码 这个是要跨表统计,用表C统计表A数据,第一求每一列最大数值(例如AWQB列最大是2),第二用刚才的最大数值减最新数据,取绝对值(最新数据判断依据编号最大的如第一列1335,一般是末尾那一行)放置于表C第二行,第三再次统计用表C 第二行提取行的最大数据(awqb-jwqb的数据)或者,(awqs-jwqs的数据),同时还需提取最大值对应列的对应数据(对应数据放在表B的)  需要注意的是 AWQB对应表B第一列  BWQB对应第二列 依次类推

--  作者:sloyy
--  发布时间:2020/2/20 0:04:00
--  
复杂excel报表跨表取数及公式自动计算的完美解决办法 
--  作者:long9547
--  发布时间:2020/2/20 8:33:00
--  
感谢sloyy大晚上不睡觉帮解决问题,只是我这个表是每20秒自动更新计算的,时间上是无法统一!我就是从excel转过来的!还请帮忙写代码3个小问题应该不算太难?
--  作者:有点蓝
--  发布时间:2020/2/20 10:58:00
--  
第三没看懂

第一、二参考,表C,datacolchanged事件,建议把列改为整数型,不然超出2位数取最大值会有问题

If e.DataCol.Name = "类型"
    Dim dr As DataRow = DataTables("表A").Find("","RIQI desc")
    If dr IsNot Nothing
        For Each dc As DataCol In e.DataTable.DataCols
            If dc.Name.Length = 4
                Dim v As String = DataTables("表A").Compute("max(" & dc.Name & ")")
                Select Case e.NewValue
                    Case "每列最大数"
                        e.DataRow(dc.Name) = v
                    Case "最大数减最新数据"
                        e.DataRow(dc.Name) = val(v) - val(dr(dc.Name))
                End Select
            End If
        Next
    End If
End If

--  作者:long9547
--  发布时间:2020/2/20 19:02:00
--  
第三不知道这样能看懂吗?图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2020/2/21 13:56:00
--  
还是没看懂。表C的第三行,AWQB的5是怎么来的?BWQB、CWQB......取哪里的值?