Lê uma planilha e carrega dados em outra, mas não apenas como referência [closed]

0

Eu tenho uma lista de ativos e atributos de equipamento que é um despejo de dados brutos de um banco de dados. Entre atributos como status do equipamento (como corrida, em modo de espera, etc.) ou nível de óleo, também inclui itens como cabeçalhos e espaços reservados como linha de registro separada. Então é com isso que estou trabalhando em termos de dados.

O que eu gostaria de fazer com esses dados é preencher outra planilha com essas informações, selecionando-a com base em uma linha de texto parcial, entre outros critérios. Aqui está uma amostra do que uma célula que estou verificando conteria.

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"

O que eu verificaria seria a porção "DE-OILING D" dessa linha de texto. Isso pode incluir centenas de registros e, puxando os registros apenas com o texto parcial, não vou puxar as outras centenas de registros que eu não preciso.

Agora estou esperando que isso seja possível com uma função. Eu sei que posso contar o número desses registros que estão nessa lista de dados com uma declaração COUNTSIF (Esta fórmula funciona para mim "= COUNTIF ('DBASE SHEET'! B: B, A4)"). Então, eu sei que isso pode ser detectado, mas para a vida de mim eu não consigo descobrir como puxar os outros campos de dados, verificando o texto "De-Oiling D" como o argumento condicional e, em seguida, fazer referência a outros dados com base em esses critérios.

Eu tentei index() , indirect() e vlookup() e é algo completamente diferente ou talvez uma combinação dessas funções. De qualquer maneira, não consigo fazer com que a fórmula funcione.

Agora aqui está a outra ruga. Uma vez que eu tenha detectado o registro que eu quero puxar para a nova planilha, eu quero ser capaz de criar uma lista dos novos dados, mas sem um monte de linhas em branco nele.

Gravar amostra usando | como separadores de células:

|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | SUCTION PRESSURE|
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | OIL LEVEL       |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | NULL            |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | RUNNING STATUS  |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | OIL LEVEL       |

O que eu gostaria de ter como saída é o seguinte sem ter espaços ou qualquer dessas coisas:

|DE-OILING C | P-1370 | RUNNING STATUS  |
|DE-OILING C | P-1370 | OIL LEVEL       |
|DE-OILING C | P-1370 | SUCTION PRESSURE|
|DE-OILING D | P-1470 | RUNNING STATUS  |
|DE-OILING D | P-1470 | OIL LEVEL       |
|DE-OILING D | P-1570 | RUNNING STATUS  |
|DE-OILING D | P-1570 | OIL LEVEL       |
    
por Grapeman 31.05.2015 / 20:50

1 resposta

1

Você está no caminho certo ao considerar a instrução COUNTIFS (). Trate a sequência de texto como você faria ao comparar números, usando > e < qualificadores para verificar se cada sequência começa com a seção que você está procurando.

=COUNTIFS('DBASE SHEET'!B:B,">"&A4,'DBASE SHEET'!B:B,"<"&A5)

onde A4 contém seu

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D"

e A5 contém

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING E"

Se você precisar de uma fórmula dinâmica para preencher automaticamente o A5, tente

=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)
    
por 01.06.2015 / 13:46