以文本方式查看主题

-  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=128541)

--  作者:yfy13338431925
--  发布时间:2018/12/10 10:17:00
--  甜哥帮我一下

甜哥,连续忙了好多天,天天在实验室,都没有时间消化你给我的东西

这是最近才整理的数据,不会做,也没有时间看帮助文件,你帮我一下吧。先谢您了

这是一个筛选培养基和温度的正交试验,我用excel算了一下,计算方法以下:

1.算每行的平均值=均值

2.算每列的平均=平均群落

3.(每行均值/平均群落)的和/15=温落比

4.找出最大的温落比,从左向右依次排列,>0.8以上的值,在数字右上角上标**,并在“显著性描述”中填入“极显著”字样。

如果没有表达清楚,您看不明白,请给我留言,或者把数学公式传给您。麻烦您了。再次谢谢您了

 

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


 


图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/12/10 10:28:00
--  

学会循环行,循环列,然后计算,如计算均值

 

Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each r As Row In t.Rows
    If r("培养基编号") <> "平均群落" AndAlso r("培养基编号") <> "温落比" Then
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each c As Col In t.Cols
            If c.name.StartsWith("培养皿_") Then
                sum1 += r(c.name)
                count1 += 1
            End If
        Next
        msgbox(r("培养基编号") & sum1 / count1)
    End If
Next

 

那么计算每列的总值,那就循环每一列,然后再循环每一行,即可计算。

 

最后得到计算结果以后,读取某一行的值,读取某一列的值,计算即可。

 

 


--  作者:有点甜
--  发布时间:2018/12/10 10:30:00
--  

要学习一下如何编写代码,并不是每个需求都要别人帮你完成的,别人只能指点你解决某一些难点。编写代码还是要你去完成的。

 

先学会基础语法吧,看看视频教程 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187

 


--  作者:yfy13338431925
--  发布时间:2018/12/10 12:38:00
--  

谢谢甜哥,道理我知道,只是得段时间要记录和处理的数据量很多,我想让你帮帮我,闲下来,才有时间学

靠excel很难短时间完成,帮我把这个完成,工作上马上能用到


--  作者:yfy13338431925
--  发布时间:2018/12/10 14:09:00
--  

模仿写的,似懂非懂。不能运行

Dim l As new List(Of String)
Dim t As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
For Each dc As Col In t.Cols
    If dc.Caption.StartsWith("培养皿_") Then
        l.add(dc.name)
    End If
Next
        Dim sum1 As Double = 0
        Dim count1 As Double = 0
        For Each c As Col In t.Cols
            If c.name.StartsWith("培养皿_") Then
                sum1 += t.Compute("sum(" & l(i) & ")")
                count1 += 1
        msgbox( sum1 / count1)
    End If
Next


--  作者:y2287958
--  发布时间:2018/12/10 14:20:00
--  
4.找出最大的温落比,从左向右依次排列,>0.8以上的值,在数字右上角上标**,并在“显著性描述”中填入“极显著”字样。
啥意思?不明白

还有表中的行均值结果好像不准确
[此贴子已经被作者于2018/12/10 14:24:38编辑过]

--  作者:yfy13338431925
--  发布时间:2018/12/10 14:34:00
--  

甜哥你好!

温落比大的列,按大小值排在最左边,也是一种排序,温落比>0.8,就在这个数值上边标记**

像这样


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20181210143310.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/12/10 14:48:00
--  
以下是引用yfy13338431925在2018/12/10 14:34:00的发言:

甜哥你好!

温落比大的列,按大小值排在最左边,也是一种排序,温落比>0.8,就在这个数值上边标记**

像这样


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20181210143310.png

 

Dim ls As new List(Of String)
Dim dt As Table = Tables("脱毒马铃薯培养基15x14正交试验数据")
Dim r As Row = dt.rows(dt.findrow("培养基编号=\'温落比\'"))
For Each dc As Col In dt.Cols
    If dc.Caption.StartsWith("培养皿_") 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) = val(r(ary2(i)))
Next
array.sort(ary1, ary2)
For i As Integer = 0 To ary2.length-1
    dt.Cols(ary2(i)).Move(1)
    If val(r(ary2(i))) > 0.8 Then
        r(ary2(i)) = r(ary2(i)).trim("*") & "**"
    End If
Next


--  作者:fytea
--  发布时间:2018/12/10 15:23:00
--  
甜哥,数值还不能填入,没有填入数值的代码
--  作者:yfy13338431925
--  发布时间:2018/12/10 15:33:00
--  
甜哥,没有结果