以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  如何统计花名册的姓名包含“杜”这个字的人的总数  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=28901)

--  作者:glrwb3
--  发布时间:2016/10/7 21:54:00
--  如何统计花名册的姓名包含“杜”这个字的人的总数
设计一个表格,遇到一个问题,就是如何统计花名册“姓名”列包含某一特定字符的人的总数。我使用CountFor函数,姓名等于某某的我会写,CountFor("主表","姓名"=","杜军" )
可是我要写一个姓名中包含“杜”的人数统计呢?请老师指导。

--  作者:glrwb3
--  发布时间:2016/10/7 22:40:00
--  
我这样写为什么不对啊。CountFor("主表",Instr("杜",[姓名])>= 0)
搜出来的数字是人员总数,与姓什么没有关系,太奇怪了。
[此贴子已经被作者于2016/10/7 22:43:46编辑过]

--  作者:iyplx2425
--  发布时间:2016/10/8 8:17:00
--  
设置变量[%杜%]:peft([姓名],2),再用CountFor("主表",[%杜%],"=","杜" )试试看。


--  作者:iyplx2425
--  发布时间:2016/10/8 8:18:00
--  
是left([姓名],2)……

--  作者:dancedy
--  发布时间:2016/10/8 16:27:00
--  
CountFor(GridName,"姓名","instr","杜")
--  作者:glrwb3
--  发布时间:2016/10/9 22:59:00
--  [求助][讨论]
求教,这里的instr函数是什么用法?
在易表帮助里面显示:
返回指定字符串在另一个字符串中首次出现的位置。
Instr(Text1, Text2)
Text1和Text2都是字符型,在Text2中查找Text1,并返回其位置。
注意:第一个字符的位置为0,第二个为1,其余类推。

那么
CountFor(GridName,"姓名","instr","杜")
这里的instr是如何使用的,是不是其他公式都有类似的使用方法?谢谢
[此贴子已经被作者于2016/10/9 22:59:54编辑过]

--  作者:dancedy
--  发布时间:2016/10/10 9:13:00
--  

Countfor

对指定表统计符合条件的记录数,可以设置多个条件。
Countfor(Grid,CompareCol,CompareMode,CompareValue,......,StartRow,EndRow,Option)
Grid         对该表进行统计,可以用表名表示,也可以用位置表示。
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。(在这里Instr和等号一样,只是比较方式,并非为单独函数)
CompareValue 比较值
StartRow     可选参数,指定开始计算的行。
EndRow       可选参数,指定结束计算的行。
Option       可选参数,如果设为1,则不统计隐藏行

例子:
Countfor("订单","客户","=","CS01")
统计订单表中CS01客户的订单数。

Countfor("订单","客户","=","CS01","产品","=","PD01")
统计订单表中CS01客户订购产品PD01的订单数 。

Countfor("订单","折扣",">","0.1","产品","=","PD01")
统计订单表中以超过10%的折扣销售产品PD01的订单数。


--  作者:glrwb3
--  发布时间:2016/10/10 12:06:00
--  [求助]
谢谢版主,你的回答相当有水平,学习中,受益很大。另外我再提2个问题:
1、列的名称不是都有[]框在其中的吗?比如姓名这一列,引用的时候一般是[姓名],可是为什么在countfor()公式中却列全部用""框在其中,这有什么说法吗?谢谢。
2、易表中有列表项目可以做下拉菜单进行选择,可这是单项的选择,比如性别非男即女,可是如何设计出,可以同时选择男或女(假设)的呢?其实就是多选,这个如何实现。
[此贴子已经被作者于2016/10/10 12:07:44编辑过]

--  作者:dancedy
--  发布时间:2016/10/10 15:13:00
--  

第一个问题

 

"列名"——要进行比较的列,或者指定的列,并非指某一个值

"CS01"——指"CS01"这个值

例如: Countfor("订单","客户","=","CS01")  统计订单表中客户列为CS01的订单数

 

[列名]——指的是指定列中当前行的值

例如当前行客户名为CS02,那么

Countfor("订单","客户","=",[客户])   意思是统计订单表中客户列为CS02的订单数

[此贴子已经被作者于2016/10/10 15:15:43编辑过]

--  作者:dancedy
--  发布时间:2016/10/10 15:15:00
--  

第二个问题

 

下拉列表项目只能选择一项内容,如果要做成多选的效果就要考虑其他的方法,

具体你可以根据需求做个例子文件,再看看能不能弄或者用什么方法