将十进制MAC地址转换为hexMAC地址
我一直在寻找一种将十进制MAC地址转换为hex的方法。
因此,例如170.187.204.0.17.34
到AA:BB:CC:00:11:22
。
积分去转换十进制值hex值? 有一个例子 。
我把我的十进制值放到columnA(开始A2)和hex等价应该进入columnB(开始B2)。
在A1中使用170.187.204.0.17.34
,将文本应用于列.
作为分隔符。 在A2中复制到F2:
=DEC2HEX(A1)
在G2: =A2&":"&B2&":"&C2&":"&D2&":"&E2&":"&F2
或者,在B2中处理0
:
=SUBSTITUTE(DEC2HEX(MID(A2,1,FIND(".",A2)-1))&":"&DEC2HEX(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),1,FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))-1))&":"&DEC2HEX(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),1,FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),1,FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)),1,FIND(".",MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2))),":0:",":00:")
就像我喜欢通过@pnuts的代码阅读一样,这可能是一个更简单的解决scheme:
=DEC2HEX(MID(A2,1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",1))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",2))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",3))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",4))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",5))+1,3),2)
第一行利用了DEC2HEX
截断其参数的事实:
- 鉴于170.187.204.0.17.34,
MID
返回170,这已经是一个整数。 - 鉴于1.9.1.1.1.1,
MID
返回1.9,DEC2HEX
截断为1。
第二行到第六行代表第n个“”。 用“^”然后find该字符,返回下3个字符。 给定170.187.204.0.17.34,这些MID
函数返回:
- 187
- 204
- 0.1
- 17。
- 34
然后这些被送到DEC2HEX
。
我们简单地用冒号连接所有的东西。
输出: AA:BB:CC:00:11:22