辅助列有多好,谁用谁知道。
数据源:
要求:取“-”后数字最大的序号。
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)
示例文件下载:
联系客服