更新时间:2019-03-15 19:48
RANK用于在一个表单中,先按照条件筛选数据,再对数据按照一定规则排序后,找出其中某一条数据的排名。
RANK主要用于”考试场景中获得自己分数排名”、”签到场景中自己是第几个签到”等场景
RANK(“表单ID”, “数据过滤条件”, “定位某一条数据的条件”, “排序规则”)
在表单编辑页面链接上,形式为FORM-XXXX, 比如 “FORM-5Q566O71N993SL9XY9SVGNNY460Y1XNUZXISJ0”
在一个表单所有数据中,根据条件进行过滤,只从符合条件的数据中进行排名。
主要有以下几种形式:
前面两个参数用于确定表单中数据的范围。
这个参数用于唯一确定一条数据,找到这条数据在所有数据中排第几
形式和参数二一致,即用QUERYEQ,QUERYGT这些等于,大于条件来定位数据
注意: 当条件定位到多条数据时,以第一次出现时的序号为主
对参数一,参数二,定位的这批数据进行排序。比如 按照分数从大到小排
形式:
在一次考试系统中,有一张表单记录了每个考生的成绩,以及答题所花的时间。
现在每个考生进入考试结果页时,希望可以获取到他的分数排名情况(当分数相同时,平均答题时间越短,排名越靠前)
参数三: 要获取的是当前登录人的排名情况,因此过滤条件是表单中 “答题人工号”组件的值为”当前登录人工号”的那条数据。
当前登录人工号,可以直接用公式 LOGINUSERWORKNO() 获取
所以参数三最后的值为 : QUERYEQ(“textField_je3zchft”,LOGINUSERWORKNO())
参数四: 排序规则。需求是 分数高的在前面,分数相同时平均答题时间少的在前面。即按”总得分倒序排列”,”平均答题时长升序排列”
在表单设计页面,用同样的方式,获取到 “总得分”组件ID为: numberField_jdicc6kx, “平均答题时长”组件ID为”numberField_je3zchfu”
因此参数四为 : ORDERBYUNIT(ORDERBY(“numberField_jdicc6kx”, “DESC”), ORDERBY(“numberField_je3zchfu”, “ASC”))
把参数一到参数四拼接后,最后的公式为
RANK(“FORM-EF6Y83URN24JISLNNIMRKX72ZITIWK1T95CCIDJ91”, “”, QUERYEQ(“textField_je3zchft”,LOGINUSERWORKNO()), ORDERBYUNIT(ORDERBY(“numberField_jdicc6kx”, “DESC”), ORDERBY(“numberField_je3zchfu”, “ASC”)))
在文档使用中是否遇到以下问题
更多建议
匿名提交