Dados de referência cruzada entre planilhas do Excel, além de uma instrução condicional

3

Eu tenho uma pasta de trabalho do Excel com 2 folhas.

1ª planilha: dados antigos do usuário 2ª Folha: Novos Dados do Usuário

Eu quero adicionar uma nova coluna à segunda folha que contém o ID do usuário antigo da primeira folha. Para obter isso, quero comparar o endereço de email entre as duas planilhas.

Acho que o pseudo do que eu quero é o seguinte:

IF (NEW!E2 equal OLD!H2) THEN (NEW!B2 becomes OLD!A2)

Até agora eu tenho, em uma nova coluna na segunda planilha, o seguinte:

=IF(NEW!E2=OLD!H2,NEW!B2=OLD!A2)

Parece ser a lógica da instrução IF que está errada.

    
por Tisch 05.09.2010 / 17:57

1 resposta

3

Uma fórmula do excel IF tem a seguinte construção:

IF( <condition> , <value if condition true> , <value if condition false> )

Imediatamente, sua fórmula tem dois grandes problemas:

  • Nenhuma cláusula falsa.
  • A cláusula verdadeira é uma condicional, não um valor.

O que você precisa é de outra coluna, com uma declaração if que diga (em pseudo!):

IF (NEW!E2 equal OLD!H2) THEN (set this cell to OLD!A2)
                         ELSE (set this cell to NEW!B2)

Ou no Excel:

IF( NEW!E2=OLD!H2 , OLD!A2 , NEW!B2 )

Obviamente, você acaba com duas colunas de ID em sua planilha. Mas, assim que estiver pronto, você poderá copiar / colar-valores especiais nesta coluna extra sobre o real.

Atualizar

Dependendo de como seus dados estão estruturados, isso pode ser inútil de qualquer maneira.

Poderia ser melhor substituir a condição de if por alguma forma de pesquisa, assim você obtém (no pseudo!):

IF( [NEW!E2] is in OLD list ) THEN (set this cell to ID of matching entry)
                              ELSE (set this cell to NEW!B2)

Ou no Excel (quebras de linha para que caiba!):

IF( VLOOKUP(NEW!E2,OLD!A1:G1000,1) = NEW!E2 ,
    VLOOKUP(NEW!E2,OLD!A1:G1000,2) ,
    NEW!B2)

Obviamente, eu inventei OLD!A1:G1000 , então você teria que fornecer as dimensões reais da sua tabela e você precisaria alterar o número da coluna correspondente (o último valor em VLOOKUP ) e garantir que os dados em OLD é classificado pelo endereço de e-mail, e refactor OLD , portanto, o endereço de e-mail é a primeira coluna ( VLOOKUP requer ordem crescente e só procura dados na primeira coluna) e retorna os dados da mesma linha na coluna solicitada).

Update2:

Eu acho que leio sua pergunta de forma errada, porque o que você pede é uma coluna de apenas os valores antigos correspondentes - caso em que você não precisa de uma cláusula falsa porque quando não há é um jogo que você quer "nada". Nesse caso, você pode usar apenas "" como uma cláusula falsa "do nothing" para obter células em branco.

    
por 05.09.2010 / 18:09