1、字符串提取函数mid:在选定的位置输入mid公式,=mid(D3,7,8),公式的意思就是:D3就是选中的需要从中提取字符的单元格,7就是从左边数第七个数开始数,8就是共需要提取8个字符
2、将十六进制数转换为二进制数HEX2BIN(number,places) :number 待转换的十六进制数。参数的位数不能多于10位, places 所要使用的字符数。若省略 places,函数 HEX2BIN 用能表示此数的最少字符来表示。当需要在返回的数值前置零时,places 尤其有用。
3、将二进制数转换为十进制数BIN2DEC() :
将上述函数应用实例:将can报文中的十六进制id(32位)截取出对应的字段,其中3~10位为命令字段。 实现方法:首先将16进制id提取转换成32为二进制数ID:=HEX2BIN(MID(D2,3,2),8)&HEX2BIN(MID(D2,5,2),8)&HEX2BIN(MID(D2,7,2),8)&HEX2BIN(MID(D2,9,2),8),然后再从二进制数中提取出对应的位MID(L2,23,8),最后再将提取的二进制数转换成十进制数=BIN2DEC(MID(L2,23,8));实现效果如下
4、提取字符串中的某部分字符串SEARCH():
例子:提取数据列中“:”到“--”之间的数据
方法:
=MID(E2,SEARCH(":",E2)+1,SEARCH("--",E2)-SEARCH(":",E2)-1)
5、将字符串中数据当做16进制,且将数据认为低字节在前,高字节在后进行解析,例如上述例子数据中“01071e0a6400...”中的6400解析为0x0064,不符合规则的解析为空。实现方法:
=IFERROR(HEX2DEC(RIGHT("0000"&MID(E2,FIND("00:",E2)+13,2)&MID(E2,FIND("00:",E2)+11,2),4)),"")
效果: