No Excel 2011 no Mac, como retornar um valor de correspondência não-branco com o vlookup?

1

Eu tenho uma lista de nomes de domínio e seus registradores em uma planilha, e a mesma lista de domínios e outros dados (mas não registradores) em outra planilha.

Eu preciso que o nome do registrador da folha A esteja ao lado do nome de domínio correspondente na planilha B.

Exemplo de CSV da planilha A:

domain1.com,,9.98,03/24/13
domain1.com,,9.98,03/24/13
domain1.com,godaddy,9.98,03/24/13
domain2.com,,9.98,03/24/13
domain2.com,godaddy,9.98,03/24/13
domain3.com,namecheap,9.98,03/24/13

Exemplo de CSV da planilha B:

domain1.com,1200,04/01/14
domain2.com,402,04/01/14
domain3.com,612,04/01/14

Desejo ter o registrador em uma quarta coluna da planilha B para cada domínio.

O problema é que, na planilha A, existem várias instâncias do domínio onde estavam com outros registradores no passado, mas essas células foram apagadas. Isso faz com que meu vlookup da folha B, encontre a primeira correspondência do nome de domínio e retorne o registrador correspondente, que acaba ficando em branco (retorna zero).

Existe uma maneira de obter um VLookup (ou outra fórmula) para retornar somente um registrador correspondente que NÃO esteja em branco?

Eu experimentei um pouco com Index & Combine, mas não conseguiu se aproximar.

    
por Jonathan van Clute 07.04.2014 / 20:58

1 resposta

1

Você pode usar uma fórmula de matriz para fazer essa pesquisa. Onde seus dados originais estão em A1:D6 , você pode usar essa fórmula (ajustar as referências de planilha para corresponder à sua pasta de trabalho):

=INDEX(SheetA!$B$1:$B$6,MIN(IF(SheetA!$A$1:$A$6=SheetB!A1,IF(SheetA!$B$1:$B$6="",2000000,ROW(SheetA!$B$1:$B$6)),2000000)))

Cole isto na barra de fórmulas e pressione Ctrl + Deslocar + Enter . Em seguida, preencha.

Explicação e suposições:

  • As instruções IF dentro da função MIN formam uma matriz de valores numéricos. Para registros que atendem aos critérios (ou seja, correspondências de nome de domínio e registrador não estão em branco), o número da linha do registro é armazenado na matriz. Para registros que não atendem aos critérios, o número 2000000 é armazenado na matriz.
  • 2000000 é um número arbitrário maior que o número de linhas em uma planilha do Excel. Isso é apenas para garantir que nenhuma correspondência seja encontrada, a função INDEX retornará um erro.
  • INDEX retorna o valor em uma posição especificada em uma matriz.
  • O número da linha do registro está sendo usado como um substituto para a posição dos registros na tabela. Isso é bom se a tabela começar na linha 1 porque o registro 1 está na linha 1. No entanto, se os dados começarem em uma linha diferente, será necessário ajustar a fórmula para que isso funcione. Por exemplo, se o registro 1 estiver na linha 2, você precisará substituir ROW($B$2:$B$7) por ROW($B$2:$B$7)-1 . Caso contrário, a função INDEX retornará o registrador incorreto.
por 07.04.2014 / 21:23