microsoft excel

Como fazer corresponder valores na coluna A com valores nas colunas B,C ou D e devolver o nome da coluna onde a correspondência foi encontrada

Tenho uma mesa que se parece com isto (mas com milhares de filas):

A B C D
a1 a3 a1 a4
a2 a2 a5
a3
a4
a5

A ideia é acabar por adicionar outra coluna,E,que me diz em que "categoria" (sendo B,C,e D as diferentes categorias)cada elemento de A se encontra.

Na minha mente,gostaria que procurasse B:D para todos os valores de A,e depois quando encontrar um fósforo devolva o nome da coluna onde o fósforo foi encontrado.

Infelizmente,não estou habituado a usar o Excel (normalmente uso o R)e um pouco fora do meu elemento.Qualquer ajuda seria muito apreciada!

O resultado desejado seria algo como isto:

A B C D E
a1 a3 a1 a4 "C"
a2 a2 a5 "C"
a3 "B"
a4 "D"
a5 "D"

Experimente esta solução.

Consulte a captura de ecrã abaixo.

Em E1 a fórmula é.

=SUBSTITUTE(ADDRESS(1,MAX(IF($B$1:$D$5=A1,COLUMN($B$1:$D$5),0)),4),1,"")

Note que depois de escrever esta fórmula deve convertê-la para uma Fórmula Array,pressionandoCTRL+SHIFT+ENTERde dentro da barra de fórmula.A fórmula será automaticamente encerrada em aparelho de caracóis para indicar que se trata de uma Fórmula Array.

Não funcionará correctamente sem este passo.

Arraste-o para baixo até às filas previstas.

Também pode utilizar IFERROR para eliminar qualquer erro #VALUE ou #N/A e substituí-lo por branco quando o valor não for encontrado,se for o caso.

Dependendo do carácter separador da lista que pode ser;em vez de,em algumas regiões,pode ser necessário substituir a vírgula por ponto e vírgula na fórmula,só por precaução.

No caso de desejar citações duplas à volta da letra da coluna.

=""""&SUBSTITUTE(ADDRESS(1,MAX(IF($B$1:$D$5=A1,COLUMN($B$1:$D$5),0)),4),1,"")&""""



Se tiver a possibilidade de mais do que uma ocorrência,tente algo do género:

=TEXTJOIN(",",,SUBSTITUTE(IFERROR(SORT(ADDRESS(1,($A2=B2:D6)*COLUMN(B2:D6),4)),""),"1",""))

que também ordena as colunas.

Se você tiver algo diferente de rótulos de letras literais que correspondam aos rótulos de coluna do Excel, o seguinte coletará todos eles. SORT pode ser usado para classificar por ordem de coluna ou para colocar em ordem alfabética os resultados reais do cabeçalho:

=TEXTJOIN(",",,IFERROR(SWITCH(SUBSTITUTE(IFERROR(SORT(ADDRESS(1,($A2=B2:D6)*COLUMN(B2:D6),4)),""),"1",""),"B",B1,"C",C1,"D",D1),""))