Extrai dados e computa

0

Tenho cerca de 900 linhas no excel e preciso analisar e calcular informações específicas de cada linha em outra linha.

Uma linha de exemplo é:

O System xyz tem 4 x 10TB de dados atribuídos ao cliente.

Eu preciso ser capaz de encontrar o 4 x 10TB e calculá-lo para 40 TB em uma coluna separada. No entanto, algumas pessoas notam como 4x10TB ou 4 x 10 TB ou 4 x 10TB. Alguns dados são apenas GB.

Existe uma fórmula para usar pelo menos para extrair o armazenamento?

    
por user325212 20.05.2014 / 17:18

1 resposta

0

Eu provavelmente adicionaria 4 colunas para facilitar a resolução de problemas e a execução de matemática / conversões posteriormente.

  1. String para analisar
  2. Contagem
  3. Tamanho
  4. 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.

    
por 20.05.2014 / 17:38