como verificar um valor no Excel e preencher a coluna com base nele

0

Eu tenho a seguinte consulta:

Minha tabela de entrada é

Basicamente,queroprocurarcolunasparacadaID.Valor3>Valor2>Valor1

Seovalor3eacolunadevalortiveremdados,asaídadeverámostraroIDcomvalor3

Seovalor3tiverdadospresentes,preenchaasaídacomoValor3,seovalor2eovalor3tiveremdados,tambémdeverápreencherovalor3

Saída:

Existe alguma fórmula que eu possa escrever para recuperar esse valor?

    
por misguided 19.11.2014 / 23:18

2 respostas

1

Se forem apenas três colunas de valor, uma maneira simples de fazer isso seria o teste IF. Digamos que a tabela que você mostra começa em A1 (A1="ID"). A fórmula para o primeiro valor de saída seria:

    =IF(ISBLANK(D2),IF(ISBLANK(C2),$B$1,$C$1),$D$1)

Copie isso na coluna de saída. (Isso assume que cada linha na tabela de dados é representada por uma linha na tabela de saída e ambas possuem a coluna ID na mesma ordem.)

    
por 20.11.2014 / 00:00
0

Veja uma solução mais geral. Suponho que você tenha cinco colunas de "valor" ( B a F ) e você quer o resultado na coluna G . Digite esta fórmula na célula G2 :

=OFFSET($B$1, 0, MAX(COLUMN(B2:F2)*NOT(ISBLANK(B2:F2)))-2)

e digite Ctrl + Deslocamento + Enter . Isso faz com que seja uma "fórmula de matriz"; ele aparecerá na barra de fórmulas com chaves ( {} ) ao redor dele. Agora, arraste-o para baixo quantas linhas desejar:

  • ISBLANK() verifica se uma célula está em branco ( TRUE , se for, FALSE , se não for).
  • NOT(…) inverte a lógica; agora temos TRUE se a célula tiver dados (não em branco) e FALSE se não tiver dados.
    Acontece que o TRUE é realmente o valor 1 e FALSE é, na verdade, 0 .
  • COLUMN(B2:F2)*(the above) recebe o número da coluna de cada célula no intervalo e multiplica por 1 se a célula tiver dados e 0, se não tiver. Isso resulta no número da coluna (× 1) se a célula tiver dados, e 0 (número da coluna × 0) se isso não acontecer. Por exemplo, para a linha 3, isso é {2,0,4,0,0}, porque as colunas second ( B ) e fourth ( D ) possuem dados.
  • MAX(…) escolhe o maior deles; ou seja, o número da coluna mais à direita onde há dados.
  • =OFFSET($B$1, 0, (the above)-2) encontra a célula 0 linhas abaixo e MAX(COLUMN(B2:F2)*NOT(ISBLANK(B2:F2)))-2 colunas à direita da célula B1 . Subtraímos 2 do número da coluna porque B1 está na coluna 2, então, quando MAX(COLUMN(B2:F2)*NOT(ISBLANK(B2:F2))) é avaliado como 2 (como na Linha 2), Queremos ir 0 colunas à direita da célula B1 .
por 20.11.2014 / 01:12