Foxtable(狐表)用户栏目专家坐堂 → 字符串比较问题


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

主题:字符串比较问题

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


加好友 发短信
等级:婴狐 帖子:97 积分:976 威望:0 精华:0 注册:2012/6/27 12:43:00
字符串比较问题  发帖心情 Post By:2014/5/8 11:28:00 [只看该作者]

 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] Like '*"& hz1 &"*'")
这样统计条件是:[年度]中包含hz1的值。
我想要的统计条件是:[年度]在hz1值之中。怎么写? 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 11:31:00 [只看该作者]

 hz1的值是什么?

 

 只能这样 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in (2004, 2005, 2009, 2014)")


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


加好友 发短信
等级:婴狐 帖子:97 积分:976 威望:0 精华:0 注册:2012/6/27 12:43:00
  发帖心情 Post By:2014/5/8 11:38:00 [只看该作者]

hz1的值是个变量,可能是 hz1 = ”2009年进度,2010年进度,2011年进度,2012年进度,2013年进度“,也可能是其中1个或几个或全部。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 11:39:00 [只看该作者]

 年度列,是数值类似 2009?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/8 11:39:00 [只看该作者]

看2楼,使用 IN的方式

只能这样 Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in ('2004年度', '2005年度', '2009年度', '2014年度')")

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


加好友 发短信
等级:婴狐 帖子:97 积分:976 威望:0 精华:0 注册:2012/6/27 12:43:00
  发帖心情 Post By:2014/5/8 11:43:00 [只看该作者]

IN 后面括号中只能用常量?如果是变量,怎么写?就是直接在括号中写hz1,怎么写?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/8 11:44:00 [只看该作者]

你自己拼接生成一下就好了.

具体要看你变量是什么样的,再做具体的字符串处理.

总之之后拼接生成的结果是那个格式即可.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 11:46:00 [只看该作者]

以下是引用ydbi在2014-5-8 11:43:00的发言:
IN 后面括号中只能用常量?如果是变量,怎么写?就是直接在括号中写hz1,怎么写?

 

处理一下

 

Dim hz1 As String = "2009年进度,2010年进度,2011年进度,2012年进度,2013年进度"
Dim reg As new System.Text.RegularExpressions.Regex("[0-9]+")
Dim mc As object = reg.Matches(hz1)
Dim str As String = ""
For i As Integer = 0 To mc.count - 1
    str &= "'" & mc(i).Value & "',"
Next

str = str.Trim(",")
Msgbox(str)

Sheet(10, 2).Value = Tables("完成情况表").Compute("sum(完成额)","[年度] in (" & str & ")")


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:97 积分:976 威望:0 精华:0 注册:2012/6/27 12:43:00
  发帖心情 Post By:2014/5/8 11:58:00 [只看该作者]

谢谢


 回到顶部
总数 11 1 2 下一页