Eu provavelmente adicionaria 4 colunas para facilitar a resolução de problemas e a execução de matemática / conversões posteriormente.
- String para analisar
- Contagem
- Tamanho
- Unidade de medida (TB ou GB)
A "String para analisar" é a seção relevante da nota da qual precisamos calcular. Expressões regulares podem ajudá-lo aqui.
Adicione uma função definida pelo usuário para expressões regulares, conforme observado aqui: link
Eu acho que o regex que você quer é:
"[0-9 x]*[GT]B"
que retornará da seguinte maneira, dadas essas strings (depois de remover todos os espaços):
BOB HAS 400 x 10 gB --> "400x10gB"
4x10TB IN THE building xx --> "4x10TB"
I have 20TB of space --> "20TB"
Então, para obter essa "String para analisar" , digamos que você coloque isso em B2 com uma célula de destino A2:
=SUBSTITUTE(udfRegEx(A2,"[0-9 x]*[GT]B")," ","")
A contagem pode ser extraída com (observe que ela é preenchida como 1, quando nenhum múltiplo é fornecido):
=IF(ISERROR(FIND("x",B2)),1,VALUE(LEFT(B2,FIND("x",B2)-1)))
Tamanho pode ser extraído com:
=IF(ISERROR(FIND("x",B2)),VALUE(LEFT(B2,LEN(B2)-2)),VALUE(MID(B2,FIND("x",B2)+1,LEN(B2)-2-FIND("x",B2))))
Unidade de Medida (TB ou GB) com:
=UPPER(RIGHT(B2,2))
Contagem e tamanho são retornados como números, então você deve ser capaz de multiplicar e adicionar a partir daí ...
Note que uma única função do VBA poderia ter feito tudo isso e escondido grande parte da complexidade, mas acho que é melhor deixar as funções VBA o mais genéricas possível, e fazer o resto no excel se for razoável.