Como retornar a primeira célula não vazia e se já é um valor anterior, retorne a terceira não-vazia e assim por diante?

2

Como criar uma função que retorne o primeiro valor de célula que não está em branco, mas se ela estiver definida nas células à esquerda próximas a ela, ela saltará 2 células e procurará o próximo valor.

Table:  
1 | 2 | 3 | 4 | 5 | 6 | 7 || 29 | 30 | 31 | 32...
a | b |   |   | c | d |   || a  | c  |    |
  |   |   | a | b |   |   || a  |    |    |
a | b | c | d | e | f | g || a  | c  | e  | g

de DL3: EW4873 são os valores, sempre em pares, mas eu preciso apenas da primeira peça de valor e somente se ela ainda não for um valor na faixa de EX a EK.

Além disso, as células EX: FK são o lugar para onde as fórmulas irão.

    
por Tusk 21.02.2012 / 12:02

1 resposta

5

OK, esses intervalos não se sobrepõem? Em qualquer caso, tente esta versão, ajuste os intervalos conforme necessário

=INDEX(AO3:EU3,MATCH(1,INDEX(ISNA(MATCH(AO3:EU3,EK3:EX3,0))*(MOD(COLUMN(AO3:EU3)-COLUMN(D3),2)=0)*(AO3:EU3<>""),0),0))

Isso procura o primeiro valor não-vazio em células alternativas, AO3, AQ3, AS3 etc., que não corresponde a nenhum valor encontrado no EK3: EX3

Sugestão revisada:

OK com base nos seus comentários, estou supondo que você ainda deseja dados não vazios de células alternativas. Assim, com dados em AO3: EI3 e com EJ3 em branco, experimente esta fórmula no EK3 copiada para obter o próximo valor diferente

=IFERROR(INDEX($AO3:$EH3,MATCH(1,INDEX((COUNTIF($EJ3:EJ3,$AO3:$EH3)=0)*(MOD(COLUMN($AO3:$EH3)-COLUMN($AO3),2)=0)*($AO3:$EH3<>""),0),0)),"")

quando os valores acabam, você obtém espaços em branco .....

Sugestão 2 revista:

Experimente esta fórmula apenas no EX3

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)),"")

e, em seguida, este em EY3 copiado em

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((COUNTIF($EX3:EX3,$DL3:$EW3)=0)*(MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)),"")

Versão revisada para "segundo par" - isso deve apenas pegar os valores associados da primeira fórmula

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)+1)&"","")

e este em EY3 copiado em

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((COUNTIF($EX3:EX3,$DL3:$EW3)=0)*(MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)+1)&"","")

altere a parte $EX3:EX3 dependendo da localização das fórmulas .....

    
por 21.02.2012 / 12:34