如何将由字母和数字组成的编号,按不同号段查找出类型
源数据是列车车次,按字头分为K、T、Z、Y和无字母的,每个类型都按不同的编号区间分为直通、管内、通勤如何用公式实现查找呢
编号规则:
比如Z1000属于直通、Z6000属于管内
请大神们指导,谢谢!!
=LOOKUP(1,0/((A2>=$E$2:$E$16)*(A2<=$F$2:$F$16)),$G$2:$G$16)
自己再验证一下。。 B2数组公式:(下拉)
=INDEX(G:G,MIN(IF((A2&"">=E$2:E$16)*(A2&""<=F$2:F$16),ROW($2:$16),520)))&"" 谢谢2楼大神!!! 再请教,为什么对于车次“K50”公式会报错,K50<=K4998是FALSE?为什么
这些车次的应该是“直通”的,但是返回的结果是“管内”,为什么呢?
另外字符串比较大小的判断是什么机制?比如K50<=K4999的判断是False
再次感谢大神们 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) ;
把数字拆分出来试试。 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)))&"" 感谢各位,我自己解决了。
把车次做了个公式补足5位,编码规则也补为5位,这样比较大小就不会出错了
页:
[1]