Usando a instrução IF e ISBLANK para determinar um intervalo de células, se alguma delas tiver informações

10

Eu tenho uma fórmula em que estou verificando um intervalo de células, estejam elas em branco ou não.

Se todos eles estiverem em branco, quero retornar outro em branco.

Se alguma célula do intervalo não estiver em branco, desejo retornar um valor Major Milestone Due.

Aqui está a fórmula que tenho atualmente:

=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")

Ele está retornando tudo como Major Milestone Due, mesmo se houver determinados intervalos de linhas com todas as células em branco.

Urze
fonte

Respostas:

16

COUNTAfornecerá o número de células em um intervalo que não está vazio .

Então tente ...

 =IF(NOT(COUNTA(BM2:BQ2)),"","Major Milestone Due")
jcfollower
fonte
A fórmula básica: NOT (COUNTA (BM2: BQ2)) é aplicável a um operador mais lógico, como: AND (COUNTA (BN2), NOT (COUNTA (BM2: BQ2)))
Rhak Kahr
9

Sua fórmula está correta se for inserida como uma fórmula de matriz .

O isblanknão funciona para uma matriz, a menos que você a insira como uma fórmula de matriz usando ctrl+ shift+ enter. Ficará assim com colchetes:

{=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")}

Além disso, um if - counta também não fará esse problema -

=IF(COUNTA(BM2:BQ2)=0,"","Major Milestone Due")

Raystafarian
fonte
A fórmula da matriz não está correta. Esta versão só passará de TRUEpara FALSEse a primeira célula do intervalo contiver um valor. Para verificar corretamente todas as células do intervalo, é ANDnecessário adicionar #{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
Marcus Hughes
@MarcusHughes por que isso seria? É uma fórmula de matriz e funciona em toda a matriz
Raystafarian
Não sei exatamente o porquê disso, mas testei (Excel 2010) e não funciona apenas ISBLANK. Tente inserir essa fórmula, mantenha a primeira célula do intervalo em branco e insira os dados em uma célula posterior no intervalo .... A ISBLANKcondição ainda retornará TRUE. Somente se você inserir dados na primeira célula, ele retornará FALSEcorretamente. Agora tente adicionar AND. Se alguma célula do intervalo adicionar dados, ela retornará FALSEcomo deveria. (Estou assumindo que este não é apenas um acaso estranho com 2010.)
Marcus Hughes
2

Uma coisa importante a considerar é a sua definição de "em branco". Com base no fato de você ter usado o texto "Desejo retornar outro espaço em branco", parece que você está definindo "em branco" como células que aparecem em branco, mas que podem realmente conter uma fórmula que gera ""e, portanto, não está vazia .

Os métodos COUNTAe ISBLANKnão funcionarão se você quiser manipular esses tipos de células como espaços em branco, pois essas duas fórmulas procuram células realmente vazias . Para lidar com fórmulas que resultam "", você tem duas opções:


  • Se você sempre souber o tamanho do seu intervalo, poderá usar um dos seguintes:

    =IF( COUNTBLANK(BM2:BQ2)=5, "", "Major Milestone Due")
    =IF( COUNTIF(BM2:BQ2,"")=5, "", "Major Milestone Due")

    onde 5 é o tamanho do seu intervalo. Este método não funciona tão bem com intervalos dinâmicos.


  • Uma fórmula um pouco mais complexa (pelo menos, mais complexa para explicar!) Usa SUMPRODUCT:

    =IF( SUMPRODUCT(--(BM2:BQ2<>""))=0, "", "Major Milestone Due")


(Observe que COUNTIF(BM2:BQ2,"<>")tem o mesmo problema que COUNTA.)

Marcus Hughes
fonte
-1

Cheguei a esta página em busca da resposta para uma pergunta quase idêntica.

Quando vi o que COUNTAfoi mencionado, soube quase imediatamente o que fazer. Em um contexto um pouco diferente, tenho um intervalo de colunas à esquerda de uma coluna que quero dizer not startedse todas as células da mesma linha estiverem vazias (em branco).

A seguinte fórmula funciona para mim.

=IF(COUNTA(P3:U3)=0,"Not Started"...)

As reticências indicam que existem várias IFfunções adicionais em minha fórmula, que executam testes adicionais no intervalo se uma ou mais forem preenchidas.

David A. Gray
fonte
Bem-vindo ao superusuário. Percebeu que sua resposta atraiu um voto negativo. A razão provável é que tentamos evitar duplicação. Cada resposta tem como objetivo fornecer uma solução substancialmente diferente da que já foi contribuída. Isso essencialmente duplica a segunda parte da resposta de Raystafarian.
fixer1234
Minha resposta deveria ter sido lançada como um comentário.
David A. Gray