以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自定义函数代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97198)

--  作者:铜豆
--  发布时间:2017/3/7 21:28:00
--  [求助]自定义函数代码
老师帮我写一个类似于电子表格Sumproduct函数的代码(最好事可以根据条件,先乘后加)
--  作者:有点蓝
--  发布时间:2017/3/7 23:00:00
--  
http://jingyan.baidu.com/article/3c343ff7074afe0d36796353.html

具体上传项目说明要做什么。

--  作者:铜豆
--  发布时间:2017/3/8 1:06:00
--  
Dim dr1 As DataRow = e.DataRow
Dim lms As List(Of String) = DataTables("词库").GetValues("列名","[列名] like \'F*\'","序号")
Dim lms1 As  New List(Of String)
lms1.Add("展现")
lms1.Add("点击")
lms1.Add("消费")
Dim Ing,Ing2 As Double
For Each lm1 As String In lms1
    For Each lm As String In lms
            Dim exp As String = "["& lm1 &"] * [" & lm & "]"
            Dim drs As List(of DataRow) = DataTables("百度搜索词").Select( " [" & lm & "] = 1")
            For Each dr As DataRow In drs
                Ing = Eval(exp,dr)
                Ing2 = Ing2 + Ing
            Next
        output.show(Ing2)
        Ing2 = 0
    Next
Next
1、老师我就像实现这样的功能,但是我感觉我的代码不够优化,出现多次循环的地方(有底纹的地方每次只需要循环一次然后就退出,然后重新进入外层循环),老师帮我看看是否可优化
2、能否把上面的代码做出公式嵌套在compute里面使用(上述要表达的意思就是同行相乘,然后再把所有乘的结果相加)
[此贴子已经被作者于2017/3/8 1:15:18编辑过]

--  作者:有点蓝
--  发布时间:2017/3/8 8:53:00
--  
截图说明一下
--  作者:有点色
--  发布时间:2017/3/8 9:46:00
--  
 请举例说明你的逻辑是什么。
--  作者:铜豆
--  发布时间:2017/3/8 10:43:00
--  
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/3/8 10:56:00
--  
还是没看懂
--  作者:铜豆
--  发布时间:2017/3/8 11:08:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:有点色
--  发布时间:2017/3/8 11:11:00
--  
上传实例,具体说一个例子说明逻辑是什么。