Foxtable(狐表)用户栏目专家坐堂 → 转置后的临时表怎么用


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

主题:转置后的临时表怎么用

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 14:40:00 [显示全部帖子]

以下是引用fytea在2018/11/30 14:19:00的发言:
甜老师,这样的公式好像不对。
p8的合计=4,第10列,合计为10的行是第1行,abs(4-(1-1))=4
是不是要用到集合交集

 

公式没问题

 

p8的合计=4,第10列,合计为9的行是第2行,abs(4-(2-1))= 3


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 14:58:00 [显示全部帖子]

以下是引用fytea在2018/11/30 14:21:00的发言:
不知用什么方法计算

 

汗,很简单的问题啊。

 

Dim ps() As Double = {4,5,6,7,8,8,9,10,11,12}
Dim ss() As String = {10,9,8,7,6,6,5,5,5,5,4,4,3,2,1,0}

For i As Integer = 1 To ps.length
    Dim idx = array.Indexof(ss, cstr(ps.length-i))
    Dim s As Double = math.Abs(ps(i-1)-(idx))
    output.show(ps.length-i+1 & " " & s)
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 17:33:00 [显示全部帖子]

以下是引用fytea在2018/11/30 16:20:00的发言:

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

 

如果还有疑问,请具体说明。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 18:34:00 [显示全部帖子]

Dim ls As new List(Of String)
Dim dt As Table = Tables("sp表")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("p") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = dt.Compute("sum(" & ary2(i) & ")")
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    Tables("sp表").Cols(ary2(i)).Move(1)
Next
Dim df As Double() = ary1
Dim rs As Integer = 15
Dim hj(rs) As String
For i As Integer = 0 To rs-1
    hj(i) = Tables("sp表").Rows(i)("合计")
Next
hj(rs) = 0
For i As Integer = 0 To ary2.length-1
    Dim idx = array.Indexof(hj, cstr(df.length-i))
    Dim s As Double = math.Abs(ls(i-1)-(idx))
    msgbox(s)
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/2 22:11:00 [显示全部帖子]

 

具体的实例发上来测试。

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 9:30:00 [显示全部帖子]

Dim ls As new List(Of String)
Dim dt As Table = Tables("sp表")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("p") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = dt.Compute("sum(" & ary2(i) & ")")
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    Tables("sp表").Cols(ary2(i)).Move(1)
Next
Tables("sp表").sort = "得分 desc"
Dim df As Double() = ary1
Dim rs As Integer = Tables("sp表").count
Dim hj(rs) As String
For i As Integer = 0 To rs-1
    hj(i) = Tables("sp表").Rows(i)("得分")
Next
hj(rs) = Tables("sp表").Rows(rs-1)("得分") -1
For i As Integer = 1 To ary1.length
    Dim idx = array.Indexof(hj, cstr(ary1.length-i))
    If idx >= 0 Then
        Dim s As Double = math.Abs(ary1(i-1)-(idx))
        msgbox(s)
    End If
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 10:32:00 [显示全部帖子]

以下是引用fytea在2018/12/3 10:27:00的发言:
甜老师,149楼你帮我看看

 

没看懂你要问什么。请理清和说明具体的计算逻辑,以及最后应该得到什么结果。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 12:02:00 [显示全部帖子]

Dim ls As new List(Of String)
Dim dt As Table = Tables("sp表")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("p") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = dt.Compute("sum(" & ary2(i) & ")")
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    Tables("sp表").Cols(ary2(i)).Move(1)
Next
Tables("sp表").sort = "得分 desc"
Dim df As Double() = ary1
Dim rs As Integer = Tables("sp表").count
For i As Integer = 0 To rs-1
    Dim sum1 = 0
    Dim sum2 = 0
    Dim r As Row = Tables("sp表").Rows(i)
    For j As Integer = 0 To ary2.length-1
        If ary2.length-j > r("得分") Then
            If r(ary2(j)) = 1 Then
                sum2 += ary1(j)
            End If
        Else
            If r(ary2(j)) = 0 Then
                sum1 += ary1(j)
            End If
        End If
    Next
    output.show(sum1 & " " & sum2)
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 11:35:00 [显示全部帖子]

以下是引用fytea在2018/12/4 11:34:00的发言:
 

老师,不会举一反三啊,如果是找出P线上方0的学生得分,与P线下方1的学生得分呢

 

自己做,看不懂代码从头开始学

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=128285

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/5 14:39:00 [显示全部帖子]

看懂之前的代码,循环ary2,然后循环每一行

 

Dim ls As new List(Of String)
Dim dt As Table = Tables("sp表")
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("p") Then
        ls.add(dc.name)
    End If
Next
Dim ary1(ls.count-1) As Double
Dim ary2 = ls.ToArray
For i As Integer = 0 To ary2.length-1
    ary1(i) = dt.Compute("sum(" & ary2(i) & ")")
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    Tables("sp表").Cols(ary2(i)).Move(1)
Next
Tables("sp表").sort = "得分 desc"
Dim df As Double() = ary1
Dim rs As Integer = Tables("sp表").count
For i As Integer = 0 To rs-1

    Dim sum1 = 0
    Dim sum2 = 0
    Dim r As Row = Tables("sp表").Rows(i)
    For j As Integer = 0 To ary2.length-1
        If ary2.length-j > r("得分") Then
            If r(ary2(j)) = 1 Then
                sum2 += ary1(j)
            End If
        Else
            If r(ary2(j)) = 0 Then
                sum1 += ary1(j)
            End If
        End If
    Next
    output.show(sum1 & " " & sum2)
Next


 回到顶部
总数 55 上一页 1 2 3 4 5 6 下一页