Separar dados delimitados por vírgula de uma célula para várias células quando a entrada é um link de dados ativo

1

Meu modelo do Excel importa dados ao vivo de algum software de negociação. Se eu inserir a fórmula a seguir, recebo os detalhes das ofertas de ofertas atuais, que estão em constante mudança:

=RTD("rit2.rtd",, "tenderinfo", "1")

No entanto, esses dados são exibidos da seguinte maneira quando disponíveis, antes de retornar a uma célula em branco quando o contrato expirar:

4020, RETC, 23401, 2910

Basicamente, é uma lista de dados relacionados a uma transação em uma célula, separados por vírgulas.

Eu preciso separar cada valor em uma célula separada para que eu possa usá-los em equações. Não tenho certeza se posso usar a função "texto para colunas" no Excel, pois o conteúdo da célula é um link, que mostra temporariamente os dados da oferta de compra atual até que ela expire.

Você tem alguma ideia de como posso resolver isso?

    
por Steve Galea Pace 28.07.2018 / 07:16

2 respostas

1

Você pode usar as funções de texto Left (), Mid () e Right () para extrair os dados da célula, mesmo que a própria célula contenha uma fórmula. As funções de texto analisarão o resultado da fórmula e poderão analisar o texto.

Os parâmetros exatos das fórmulas dependerão dos dados. Por exemplo, se o primeiro valor é sempre quatro dígitos, você pode simplesmente usar

=Left(A1),4)

mas se o primeiro valor puder ter menos ou mais dígitos, talvez seja necessário procurar a posição da primeira vírgula e extrair o texto antes da primeira vírgula:

=Left(A1,Find(",",A1)-1)

As outras fórmulas seguirão uma abordagem semelhante.

Se você não quiser fazer isso com fórmulas, poderá usar o VBA para copiar o conteúdo da célula em outro local e analisá-lo com Text to Columns.

    
por 28.07.2018 / 07:44
1

EDITADO:

O texto para coluna não é adequado para isso, pois você está tentando dividir os valores separados por vírgula da célula de fórmula.

Nota,

O texto na coluna pode fazer isso, mas estraga a fórmula.

Entãoémelhorvocêtentaressafórmula,escreveremumacélulaapropriada&preenchaocampoDireito&Abaixo,senecessário.

=TRIM(MID(SUBSTITUTE($A2,",",  REPT(" ", 999)), (COLUMN(A:A)-1)*999+1, 999))

Observação: ajuste as referências de célula na fórmula conforme necessário.

    
por 28.07.2018 / 11:01