打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
好使好用的辅助列
userphoto

2018.03.27

关注

辅助列有多好,谁用谁知道。

数据源:

要求:取“-”后数字最大的序号。


1、函数辅助列:

=--MID(A2,FIND('-',A2,1) 1,99)

提取“-”后面的数字,mid提取的数字为文本数字,--将文本数字转换为数值数字。

结果:

index match提取最大值对应的序号。


2、SQL辅助列方法

2.1 sql创建辅助列,提取数值

select 序号,mid(序号,instr(序号,'-') 1,99) *1 as 数值 from [Sheet2$]

2.2提取最大值(数值)

select max(mid(序号,instr(序号,'-') 1,99) *1) as 数值 from [Sheet2$]

结果:(第一步操作只做辅助演示,实际可省略)

2.3 提取结果:

select 序号 from [sheet2$]  where mid(序号,instr(序号,'-') 1,99) *1=(select max(mid(序号,instr(序号,'-') 1,99) *1) as 数值 from [Sheet2$])

'='等号后面如果需要链接子查询,子查询只能是一个唯一值(如果子查询返回的是多个值,则只取最后一个值,因为“=”).


3、sql辅助列排序法

3.1 同样先创建辅助列,并排序(降序)

select 序号,mid(序号,instr(序号,'-') 1,99) *1 as 数值 from [Sheet2$] order by mid(序号,instr(序号,'-') 1,99) *1 desc

3.2 top 1取第一条数据(first函数亦可)

select top 1 序号 from (select 序号,mid(序号,instr(序号,'-') 1,99) *1 as 数值 from [Sheet2$] order by mid(序号,instr(序号,'-') 1,99) *1 desc)

附:first函数

select first(序号) from (select 序号,mid(序号,instr(序号,'-') 1,99) *1 as 数值 from [Sheet2$] order by mid(序号,instr(序号,'-') 1,99) *1 desc)



示例文件下载:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL中Top与Order结合使用的问题 | VBA实例教程
VBA SQL基础
【mysql 】mysql 获取排列序号
MySQL 语法小册
Oracle经典实用SQL语句--查询小数部分位数
oracle用instr代替like
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服