( EDIT: Solução melhorada com base no comentário de Arjan)
Aqui está uma solução simples, mas suja do MS Excel.
Suposição: os dados estão no formato 28 01 AF 01 XX XX XX XX YY YY YY YY...
(separados por espaços)
- Copiar dados para A1.
- Insira em B1:
=MID($A$1, ROW(B1)*12-11, 11)
. Copie-o para B2: B20. - Insira em C1:
=MID(B1,10,2)&MID(B1,7,2)
. Copie para C2: C20. - (a) Insira em D1:
=HEX2DEC(LEFT(B1,2))
. Copie-o para D2: D20.
(b) Se o erro#NAME?
aparecer, insira o seguinte em D1. Copie para D2: D20.
=IF(CODE(LEFT(B1,1))>64,CODE(LEFT(B1,1))-55,LEFT(B1,1))*16 +IF(CODE(MID(B1,2,1))>64,CODE(MID(B1,2,1))-55,MID(B1,2,1))
(Outra suposição para a solução (b): todos os valores HEX estão em letra maiúscula)
coluna C & D seria o que você precisa.
Explicação
B: B divide os dados (A1) em linhas diferentes.
C1 simplesmente extrai os caracteres na posição {10, 11, 7, 8} de B1.
D1 extrai os primeiros 2 caracteres em A1 e, em seguida, converte-os de HEX para DEC.
Observação: Suplemento do Analysis ToolPak é necessário para HEX2DEC()
em (a). Se #NAME?
erro aparecer, significa que a função não é suportada. Neste caso, o hack em (b) ajudaria a converter de HEX para DEC.
CODE()
obtém o código ASCII do caractere. Para ABCDEF, seus códigos ASCII são {65,66,67,68,69,70}. CODE()-55
, em seguida, retorna {10,11,12,13,14,15}.