暮秋寒霜 发表于 2021-11-18 10:49:00

如何将由字母和数字组成的编号,按不同号段查找出类型

源数据是列车车次,按字头分为K、T、Z、Y和无字母的,每个类型都按不同的编号区间分为直通、管内、通勤
如何用公式实现查找呢
编号规则:

比如Z1000属于直通、Z6000属于管内
请大神们指导,谢谢!!

搜索 发表于 2021-11-21 00:16:28


=LOOKUP(1,0/((A2>=$E$2:$E$16)*(A2<=$F$2:$F$16)),$G$2:$G$16)
自己再验证一下。。

五棵树的森林 发表于 2021-11-29 22:08:21

B2数组公式:(下拉)
=INDEX(G:G,MIN(IF((A2&"">=E$2:E$16)*(A2&""<=F$2:F$16),ROW($2:$16),520)))&""

猪猪无敌 发表于 2021-12-12 07:50:52

谢谢2楼大神!!!

宋晨萱 发表于 2022-1-14 19:44:10

再请教,为什么对于车次“K50”公式会报错,K50<=K4998是FALSE?为什么

冷静的收获 发表于 2022-1-20 12:35:51


这些车次的应该是“直通”的,但是返回的结果是“管内”,为什么呢?
另外字符串比较大小的判断是什么机制?比如K50<=K4999的判断是False
再次感谢大神们

小米八哥 发表于 2022-1-22 08:44:16

create temp table aa as select regexp2('',编号起) 前缀,regexp2('\d+',编号起) 编号起,regexp2('\d+',编号止) 编号止,车次类型 from 车次类型明细表;create temp table bb as select 始发车次,regexp2('^',始发车次) 前缀,regexp2('\d+',始发车次) 始发车次编号 from 始发车次明细表;select *,始发车次,车次类型 from bb left join aa on aa.前缀=bb.前缀 and bb.始发车次编号 between 编号起 and 编号止 limit 3;select 始发车次,车次类型 from bb left join aa on aa.前缀=bb.前缀 and cast(bb.始发车次编号 as int) between cast(编号起 as int) and cast(编号止 as int) ;
把数字拆分出来试试。

宠宠 发表于 2022-1-27 15:50:00

B2数组公式:(强行转了个,应该有其他好方法)或者设计一下车次辅助表
=INDEX(G:G,MIN(IF((TEXT(CODE(LEFT(A2)),"[<65]!0")/1%%+MID(A2,ISERR(-LEFT(A2))+1,9)>=TEXT(CODE(LEFT(E$2:E$16)),"[<65]!0")/1%%+MID(E$2:E$16,ISERR(-LEFT(E$2:E$16))+1,9))*(TEXT(CODE(LEFT(A2)),"[<65]!0")/1%%+MID(A2,ISERR(-LEFT(A2))+1,9)<=TEXT(CODE(LEFT(F$2:F$16)),"[<65]!0")/1%%+MID(F$2:F$16,ISERR(-LEFT(F$2:F$16))+1,9)),ROW($2:$16),520)))&""

阿飞周 发表于 2022-2-5 06:37:40

感谢各位,我自己解决了。
把车次做了个公式补足5位,编码规则也补为5位,这样比较大小就不会出错了
页: [1]
查看完整版本: 如何将由字母和数字组成的编号,按不同号段查找出类型