子表单实现排序

楼主
我是社区第352185位番薯,欢迎点我头像关注我哦~
1.场景:在子表单中录入学生成绩,然后自动排名;或在子表单中录入一个投标项目不同公司的报价,对报价排名
2.思路:通过LARGE()函数获取对应等级的数值,再参照案例子表单自动获取另一子表单对应的值获取该数值对应的文本内容
3.表单外链:https://syos39w472.jiandaoyun.com/f/6034c5c7d4982900088ac6fc
4.知识库分享链接:https://t6ixa9nyl6.jiandaoyun.com/sharedoc/6AYag7ZidXvaGUSPrzd6z3
5.局限:如有重复的数值,只能按照原始子表单中录入的先后顺序,显示同一数值下最先录入的文本内容
6.设计说明:需要两个子表单,子表单1用于录入原始数据,子表单2用于对原始数据进行排名。


7.步骤:
  • 在两个子表单中,都需要添加一个金额的辅助字段,将金额补位,方便后续取数,公式为:RIGHT("###########"+子表单.项目金额,11)
  • 主表中添加3个文本和1个数字字段作为辅助字段
  • 单行文本1命名为金额辅助集合,用于将原始子表单中的金额辅助字段集合起来,编辑公式:CONCATENATE(子表单.金额辅助字段)
  • 单行文本2命名为项目名称集合,用于将原始子表单中的项目名称集合起来,编辑公式:子表单.项目名称
  • 单行文本3命名为金额集合,用于将原始子表单中的金额字段集合起来,编辑公式:子表单,项目金额
  • 数字字段命名为行数,用户获取原始子表单中录入的行数,编辑公式:COUNT(子表单.项目名称)


  • 排名子表单中的排名字段,是数字字段,用于显示对应的排名,设置子表单整体联动,参照案例→→子表单行数自动变化
  • 排名子表单中的序号(项目)字段,是数字字段,用户获取该金额对应在原始子表单中的行数,编辑公式:IF(ISEMPTY(排名表.金额),"",(SEARCH(排名表.金额辅助字段,金额辅助集合)-1)/11+1)
  • 排名子表单中的项目名称,是文本字段,编辑公式:SPLIT(项目名称集合,',')[排名表.序号(项目)-1]
  • 排名子表单中的金额字段是数字字段,用于获取对应顺序下的最值金额,编辑公式:LARGE(SPLIT(金额集合,','),排名表.排名)
  • 排名子表单中的金额辅将金额补位,方便后续取数,公式为:RIGHT("###########"+子表单.项目金额,11)



编辑于 2021-7-14 11:22  
编辑于 2021-7-14 11:23  
分享扩散:

沙发
发表于 2021-10-21 10:59:06
当多个项目金额相等时,排名表中项目名称会出现重复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2回帖数 5关注人数 7660浏览人数
最后回复于:2024-9-7 09:00

返回顶部 返回列表