Questão Como o VLOOKUP, mas com mais


Então, eu tenho uma lista de pacientes. Depois, tenho uma lista de pedidos de vendas que correspondem às visitas clínicas que eles precisavam receber. Estou querendo ver quem foi visto e quem não foi.

Então, na folha 1, eu tenho uma lista de pacientes e seus números de identificação (o ID do paciente é único): ID do paciente, nome do paciente

Em seguida, na folha 2, tenho uma lista de pedidos de vendas (o ID do pedido de vendas é exclusivo, o ID do paciente não é): ID do paciente, ID do pedido de venda, data do pedido de venda

O que quero fazer é fazer com que o Excel examine os pedidos de venda na planilha 2, localize onde o ID do paciente corresponde e, em seguida, traga as datas em sequência.

Então, a Folha 1 ficaria assim: ID do paciente, nome do paciente, data da ordem de venda 1, data da ordem de venda 2, nula (quando não houver mais nenhuma correspondência).

Eu li tudo o que posso encontrar no VLOOKUP e INDEX / MATCH e não consigo encontrar uma função que funcione onde há várias correspondências na segunda folha (a ID do paciente seria a mesma repetidamente para cada pedido de vendas na planilha 2).

Por favor ajude.


0


origem


Isso parece mais um aplicativo de banco de dados do que uma planilha. Dito isso, acho que você pode fazer isso com células de trabalho (talvez em uma folha de trabalho separada). Cada célula de trabalho adicionaria à célula anterior o resultado de uma MATCH() de um passado o resultado na célula anterior, usando INDIRECT() ou ADDRESS() para especificar o intervalo de células. As mesmas funções seriam usadas para endereçar os dados que você deseja extrair da linha correspondente. Isso tudo é bastante complexo, e não tenho tempo para descobrir os detalhes e criar dados para testes, mas espero que esta nota aponte para uma possível solução. - AFH
Em vez de encontrar resultados com uma fórmula, você poderia configurar os critérios de filtro e depois a folha de autofiltro 2 com esses critérios. Eu configurei algo assim com 2 caixas de combinação (drop downs) e um botão "search" (busca). As caixas de combinação são preenchidas com base nos intervalos da planilha 2. Isso requer um pouco de VBA. - jrichall


Respostas:


Isso pode ser resolvido contando as ordens por cliente. Existem muitas variações sobre como você pode usar para resolver isso, mas aqui está uma.

Passo 1:

Classifique sua tabela de pedidos com os pedidos mais recentes primeiro.

Passo 2:

Adicione uma coluna no final de seus pedidos de vendas com uma fórmula que conte os números dos clientes. Na nova coluna, segunda linha, escreva a fórmula =Countif(B$2:B2,B2).

Copie a fórmula para baixo.

B é a coluna onde os números dos clientes são encontrados.

Etapa 3:

Adicione uma coluna com uma chave exclusiva para identificar o número do cliente e a contagem de pedidos. Na segunda nova coluna, segunda linha escrever fórmula =B2&" "&X2

B é o número do cliente e X é a contagem de pedidos feita na etapa 2.

Passo 4:

Na tabela de pacientes, adicione uma coluna que corresponda ao ID do pedido mais recente, ao segundo pedido mais recente etc., para retornar a data. Use um IFERROR() para retornar Um espaço em branco se não houver correspondência e use referências absolutas para que as fórmulas possam ser facilmente copiadas:

(Eu tentei traduzir a fórmula do meu Excel norueguês)

=IFERROR(INDEX('Order list'!$C:$C,MATCH('Patient list'!$A2&" "&'Patient list'!B$1,'Order list'!$Y:$Y,0)),"")

Onde C é a coluna com datas e Y é onde a chave na etapa 3 é.

Espero que isso possa colocá-lo no caminho certo para encontrar uma solução personalizada para suas tabelas. Você provavelmente pode automatizar as fórmulas na tabela de pedidos, etc.

Encomendas:

Screenshot of Orders Table

Pacientes:

Screenshot of Patients Table


0





Aqui está uma solução que não requer nenhuma coluna auxiliar ou classificação de qualquer uma das tabelas. Apenas usa uma fórmula de matriz relativamente simples.


Configure as duas planilhas como a seguinte, com a segunda planilha chamada Sheet2:

Worksheet 1 Screenshot

Worksheet 2 Screenshot

Matriz entra (Ctrl+Mudança+Entrar) a seguinte fórmula na célula C3 da primeira folha e copiar e colar / preencher em C3:G7:

{=IFERROR(SMALL(IFERROR(1/(1/((Sheet2!$A$2:$A$20=$A3)*(Sheet2!$C$2:$C$20))),""),C$2),"")}


Esteja ciente de que, se a última célula Data da tabela Pacientes na Folha 1 estiver preenchida, pode ser mais datas que não estão aparecendo. Na planilha de exemplo, adicionei uma fórmula na coluna à direita da tabela para avisar se esse for o caso:

Essa fórmula, matriz inserida em H3 e copiado-colado / preenchido em H3:H7, é:

{=IF(ISERROR(SMALL(IFERROR(1/(1/((Sheet2!$A$2:$A$20=$A3)*(Sheet2!$C$2:$C$20))),""),G$2+1)),"","more")}

0