以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 字符串比较问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50523) |
-- 作者:ydbi -- 发布时间:2014/5/8 11:28:00 -- 字符串比较问题 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] Like \'*"& hz1 &"*\'") 这样统计条件是:[年度]中包含hz1的值。 我想要的统计条件是:[年度]在hz1值之中。怎么写?
|
-- 作者:有点甜 -- 发布时间:2014/5/8 11:31:00 -- hz1的值是什么?
只能这样 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in (2004, 2005, 2009, 2014)") |
-- 作者:ydbi -- 发布时间:2014/5/8 11:38:00 -- hz1的值是个变量,可能是 hz1 = ”2009年进度,2010年进度,2011年进度,2012年进度,2013年进度“,也可能是其中1个或几个或全部。 |
-- 作者:有点甜 -- 发布时间:2014/5/8 11:39:00 -- 年度列,是数值类似 2009? |
-- 作者:Bin -- 发布时间:2014/5/8 11:39:00 -- 看2楼,使用 IN的方式 只能这样 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in (\'2004年度\', \'2005年度\', \'2009年度\', \'2014年度\')")
|
-- 作者:ydbi -- 发布时间:2014/5/8 11:43:00 -- IN 后面括号中只能用常量?如果是变量,怎么写?就是直接在括号中写hz1,怎么写? |
-- 作者:Bin -- 发布时间:2014/5/8 11:44:00 -- 你自己拼接生成一下就好了. 具体要看你变量是什么样的,再做具体的字符串处理. 总之之后拼接生成的结果是那个格式即可.
|
-- 作者:有点甜 -- 发布时间:2014/5/8 11:46:00 -- 以下是引用ydbi在2014-5-8 11:43:00的发言:
IN 后面括号中只能用常量?如果是变量,怎么写?就是直接在括号中写hz1,怎么写?
处理一下
Dim hz1 As String = "2009年进度,2010年进度,2011年进度,2012年进度,2013年进度" str = str.Trim(",") Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in (" & str & ")") |
-- 作者:lsy -- 发布时间:2014/5/8 11:53:00 -- Dim Hz As String = "1999年进度" Dim sum As Double sum = Tables("订单").Compute("sum(单价)","SubString(Convert([日期],\'System.String\'),1,4) = " & Left(Hz,4)) Output.Show(sum) |
-- 作者:ydbi -- 发布时间:2014/5/8 11:58:00 -- 谢谢 |