Aqui está uma solução geral. Eu posicionado propositalmente no meio da folha para ilustrar o manuseio de colunas em branco antes ou depois do intervalo.
Euuseialgumascolunasauxiliaresparafacilitarasoluçãoeasoluçãodeproblemas.Asfórmulasficamcomplicadassevocêtentarfazertudoemumafórmula,emborapossaconsolidarissoemumaúnicafórmulaseforumglutãoparapunição.
Emvezdeinserirnovamenteseusdados,useiquatrocolunas(CaF)dosnúmerosde1a4,comdiferentespadrõesdeelementosausentesnaslinhasparaverificarasváriascondições.
Dadosdeentrada
Aprimeiraeaúltimacolunasdedadossãoinseridascomovariáveis,paraquevocêpossausarquantascolunasdesejar,posicionadasemqualquerlugardesejado.EuescolhiarbitrariamenteI1eK1paraarmazenarasprimeiraseúltimasletrasdacoluna.
Identifiqueaprimeiracolunapreenchida
Paracadalinha,vocêprecisaencontraroprimeiroeúltimovalorreal,porque"buracos" são contados apenas entre eles. Eu usei a coluna H para identificar a primeira coluna com um valor na linha. Eu comecei meus dados na linha 3, então o H3 contém:
=MATCH(TRUE,LEN(C3:F3)>0,0)+COLUMN(INDIRECT($I$1&":"&$I$1))-1
EDIT: Note que eu testei isso é o LO Calc, que muda o TRUE nesta fórmula para 1
. No Calc, essa fórmula se torna:
=MATCH(1,LEN(C3:F3)>0,0)+COLUMN(INDIRECT($I$1&":"&$I$1))-1
qual foi a fórmula original nesta resposta, e acontece que o 1
dá indigestão ao Excel. Para o Excel, você precisará da primeira fórmula.
Esta é uma fórmula de matriz, então ela precisa ser digitada usando Ctrl + Deslocar + Enter .
Incorporar a função INDIRECT dentro da função LEN não funciona, então eu tive que codificar o intervalo. Você precisaria modificar o intervalo da coluna se usasse um número diferente de colunas.
A função COLUMN e -1
ajustam a posição inicial do intervalo.
Número de valores, se não houver furos
Coluna I é o número de colunas desde o primeiro valor até o último (o número potencial de valores, se não houver furos). A célula I3 contém:
=LOOKUP(9.99E+307,INDIRECT($I$1&ROW()&":"&$K$1&ROW()))+COLUMN(INDIRECT($I$1&":"&$I$1))-H3
A função LOOKUP identifica a última coluna que contém um valor. Novamente, ele adiciona um ajuste para a localização do intervalo de dados na planilha. Subtrai o número da primeira coluna preenchida do último.
Número de valores preenchidos
A coluna J contém a contagem de valores no intervalo preenchido. A célula J3 contém:
=COUNT(INDIRECT($I$1&ROW()&":"&$K$1&ROW()))
Isso lhe dá o que você precisa para identificar seus buracos.
Identifique linhas com furos
O resultado desejado é o que está na coluna G. A célula G3 contém:
=IF(I3>J3,"hole","")
EDIT: Eu fiz alguma consolidação e consegui isso para uma única fórmula. Você pode usar isso na célula G3:
=LOOKUP(9.99E+307,INDIRECT($I$1&ROW()&":"&$K$1&ROW()))
+COLUMN(INDIRECT($I$1&":"&$I$1))-MATCH(TRUE,LEN(C3:F3)>0,0)
-COLUMN(INDIRECT($I$1&":"&$I$1))+1
>COUNT(INDIRECT($I$1&ROW()&":"&$K$1&ROW()))
Eu adicionei quebras de linha para facilitar a leitura. Se você deseja copiar e colar, você precisará removê-los e o espaço extra.
Esta é uma fórmula de matriz, então você precisa entrar com Ctrl + Deslocar + Enter . O resultado é TRUE ou FALSE para saber se existe um buraco: