Utilisation des instructions IF et ISBLANK pour déterminer une plage de cellules si l'une d'entre elles contient des informations


9

J'ai une formule où je vérifie une plage de cellules si elles sont vides ou non.

Si tous sont vides, je souhaite renvoyer un autre blanc.

Si l'une des cellules de la plage n'est pas vide, je souhaite renvoyer une valeur Major Milestone Due.

Voici la formule que j'ai actuellement:

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

Il renvoie tout comme Major Milestone Due, même s'il existe certaines plages de lignes avec toutes les cellules vides.

Réponses:


14

COUNTAdonnera le nombre de cellules dans une plage qui ne sont pas vides .

Alors essayez ...

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

9

Votre formule est correcte si elle est entrée sous forme de formule matricielle .

Le isblankne fonctionne pas pour un tableau à moins que vous ne l'ayez entré comme formule de tableau à l'aide de ctrl+ shift+ enter. Cela ressemblera à ceci en ayant des accolades autour:

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

En outre, un if - counta fera cela sans problème aussi -

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


La formule de tableau n'est pas tout à fait correcte. Cette version ne passera que de TRUEà FALSEsi la première cellule de la plage contient une valeur. Afin de vérifier correctement toutes les cellules de la plage, il ANDfaut ajouter -{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
Marcus Hughes le

@MarcusHughes pourquoi serait-ce? C'est une formule de tableau qui fonctionne sur tout le tableau
Raystafarian

Je ne sais pas exactement pourquoi , mais je l'ai testé (Excel 2010) et cela ne fonctionne pas avec ISBLANK. Essayez de saisir cette formule, laissez la première cellule de la plage vide, puis entrez les données dans une cellule ultérieure de la plage .... La ISBLANKcondition sera toujours renvoyée TRUE. Si vous entrez des données dans la première cellule, elles seront renvoyées FALSEcorrectement. Maintenant, essayez d'ajouter AND. Si des données de la cellule sont ajoutées, elles seront renvoyées FALSEcomme il se doit. (Je suppose que ce n'est pas juste un hasard étrange avec 2010.)
Marcus Hughes

2

Une chose importante à considérer est votre définition de "blanc". Sur la base du fait que vous avez utilisé la formulation "Je veux retourner un autre espace vide", il semblerait que vous définissiez "espace vide" comme des cellules qui apparaissent vides, mais qui peuvent en fait contenir une formule qui génère des résultats ""et qui ne sont donc pas vides .

Les méthodes COUNTAet ISBLANKne fonctionneront pas si vous souhaitez gérer ces types de cellules comme des blancs, car ces deux formules recherchent des cellules vraiment vides . Pour gérer les formules qui produisent "", vous avez deux options:


  • Si vous connaissez toujours la taille de votre plage, vous pouvez utiliser l'une des méthodes suivantes:

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

    5 est la taille de votre plage. Cette méthode ne fonctionne pas aussi bien avec les plages dynamiques.


  • Une formule légèrement plus complexe (du moins, plus complexe à expliquer!) Utilise SUMPRODUCT:

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


(Notez que cela COUNTIF(BM2:BQ2,"<>")a le même problème que COUNTA.)


-1

Je suis arrivé à cette page à la recherche de la réponse à une question presque identique.

Quand j'ai vu cela COUNTAmentionné, je savais presque immédiatement quoi faire. Dans un contexte légèrement différent, j'ai une plage de colonnes à gauche d'une colonne que je veux dire not startedsi toutes les cellules de la même ligne sont vides (vides).

La formule suivante fonctionne pour moi.

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

Les points de suspension indiquent qu'il existe plusieurs IFfonctions supplémentaires dans ma formule, qui effectue des tests supplémentaires sur la plage si une ou plusieurs d'entre elles sont remplies.


Bienvenue sur Super User. Remarqué votre réponse a attiré un vote négatif. La raison probable est que nous essayons d'éviter les doubles emplois. Chaque réponse est destinée à fournir une solution sensiblement différente de ce qui a déjà été apporté. Cela fait essentiellement double emploi avec la deuxième partie de la réponse de Raystafarian.
fixer1234

Ma réponse aurait dû être exprimée en commentaire.
David A. Gray
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.