有两列,列1,列2,列3,要求【列1】除以【列2】小于等于3时,【列3】=1;小于等于6时,【列3】=2;小于等于9时,【列3】=3,,,,,,依次类推
问题1,这个能用表达式实现吗?如果能实现,该怎么编码?
问题2,这个能用其他方式实现吗?该如何编码
1、如果如果不是无限的比较,可以使用表达式IIF(列2=0,null,IIF(列1/列2<=3,1,IIF(列1/列2<=6,2,IIF(…………))))
Select Case e.DataCol.Name
Case "列1","列2"
Dim dr As DataRow = e.DataRow
If dr("列2")<> 0 Then
dim d as double = dr("列1") / dr("列2")
if d <=3 then
dr("列3") = 1
elseif d <=6 thendr("列3") = 2
……
……
end if
End If
End Select
这样要穷举。除法里面有进一法,我查了一下有math.ceiling的方法,这个支持吗?
不支持。如果是无限的比较,整个地球都无法解决这种问题,找外星人看会不会。如果是有限的,到哪里结束?
For Each 行 As DataRow In DataTables("表A").DataRows
Dim i As Double = 行("列1") / 行("列2")
行("列31")=IIf(i Mod 3 = 0, i / 3, Math.Ceiling(i / 3)))
Next