232 votes

Renvoyer une cellule vide à partir d'une formule dans Excel

Je dois renvoyer une cellule vide à partir d'une formule Excel, mais il semble qu'Excel traite une chaîne vide ou une référence à une cellule vide différemment d'une véritable cellule vide. J'ai donc essentiellement besoin de quelque chose comme

=IF(some_condition,EMPTY(),some_value)

J'ai essayé de faire des choses comme

=IF(some_condition,"",some_value)

et

=IF(some_condition,,some_value)

et en supposant que B1 est une cellule vide

=IF(some_condition,B1,some_value)

mais aucune d'entre elles ne semble être une véritable cellule vide, je suppose qu'il s'agit du résultat d'une formule. Existe-t-il un moyen de remplir une cellule si et seulement si une condition est remplie et, sinon, de garder la cellule vraiment vide ?

EDIT : comme recommandé, j'ai essayé de retourner NA(), mais pour mes besoins, cela n'a pas fonctionné non plus. Existe-t-il un moyen de faire cela avec VB ?

EDIT : Je suis en train de construire une feuille de calcul qui tire des données d'autres feuilles de calcul et qui est formatée selon les demandes très spécifiques d'une application qui importe les données dans une base de données. Je n'ai pas accès pour modifier l'implémentation de cette application, et elle échoue si la valeur est "" au lieu d'être vide.

8 votes

Pouvez-vous expliquer pourquoi la cellule doit être vide ? En fonction de ce que "l'absence de données" vous apporte, il peut y avoir une solution.

3 votes

La cellule contient la formule, n'est-ce pas ? Comment peut-elle être vide ou vierge alors ?

8 votes

J'ai un problème similaire, je dessine un graphique et je ne veux pas montrer la valeur 0 pour les éléments vides sur le graphique. Si les enregistrements sont des cellules vides, ils sont omis du graphique, mais n'importe laquelle des méthodes énumérées dans les "Réponses" ci-dessous entraîne l'affichage de 0 sur le graphique :(

85voto

Joe Erickson Points 4571

Excel n'a pas la possibilité de le faire.

Le résultat d'une formule dans une cellule d'Excel doit être un nombre, un texte, une logique (booléen) ou une erreur. Il n'existe pas de type de valeur de cellule de formule "vide" ou "blanc".

Une pratique que j'ai vue suivie est d'utiliser NA() et ISNA(), mais cela peut ou non résoudre votre problème car il y a une grande différence dans la façon dont NA() est traité par les autres fonctions (SUM(NA()) est #N/A alors que SUM(A1) est 0 si A1 est vide).

22 votes

La méthode NA() fonctionne à 100% pour les graphiques qui sont configurés pour afficher les cellules vides comme des vides, cela ne fonctionnera probablement pas dans votre cas où vous exportez vers une application qui a besoin que la cellule soit vide car elle contient une formule ...

4 votes

Il n'y a pas de solution parfaite. NA() est une bonne option. Une autre est la chaîne vide de (selon) '' ou "".

0 votes

Cela fonctionne dans le but de retourner les cellules vides de manière dynamique dans les données qui vont être tracées, de sorte que vous pouvez effectivement utiliser l'option d'ignorer les cellules vides comme des lacunes dans les graphiques. Dans mon cas, j'essayais de tracer 12 valeurs pour représenter une progression mensuelle, mais seulement jusqu'au mois précédent, avec une formule comme celle-ci : =IF(MONTH(TODAY())>C2;$C$11+C7;NA())

53voto

J.T. Grimes Points 2146

Vous allez devoir utiliser VBA puis. Vous allez itérer sur les cellules de votre plage, tester la condition, et supprimer le contenu s'il correspond.

Quelque chose comme :

For Each cell in SomeRange
  If (cell.value = SomeTest) Then cell.ClearContents
Next

6 votes

J'ajouterais que si vous avez toujours une plage particulière de cellules pour laquelle vous voulez effacer les cellules vides, vous pouvez donner un nom à cette plage, puis modifier la formule de Boofus en remplaçant SomeRange par Range("MyRange"). Pour donner un nom à vos cellules, sélectionnez-les, cliquez sur Définir le nom dans l'onglet Formules du ruban, puis saisissez " MaPlage " dans le champ Nom. (Et bien sûr, vous pouvez remplacer MyRange par ce que vous voulez).

0 votes

J'ai fini par utiliser une légère modification de cette solution. Je l'ai ensuite configurée pour qu'elle soit exécutée avant l'enregistrement du fichier et tout fonctionne à merveille.

33 votes

C'est intense qu'il n'y ait pas de constante nulle dans Excel.

20voto

Gentle Knight Points 21

C'est peut-être de la triche, mais ça marche !

J'avais également besoin d'un tableau qui soit la source d'un graphique, et je ne voulais pas que des cellules vides ou nulles produisent un point sur le graphique. Il est vrai que vous devez définir la propriété du graphique, sélectionner les données, les cellules cachées et les cellules vides pour "montrer les cellules vides comme des écarts" (cliquez sur le bouton radio). C'est la première étape.

Ensuite, dans les cellules susceptibles de donner un résultat que vous ne souhaitez pas voir figurer dans le graphique, placez la formule dans une instruction IF avec un signe NA() des résultats tels que =IF($A8>TODAY(),NA(), *formula to be plotted*)

Cela donne le graphique requis sans points lorsqu'une valeur de cellule invalide se produit. Bien sûr, cela laisse toutes les cellules avec cette valeur invalide à lire. #N/A et c'est le bordel.

Pour remédier à cette situation, sélectionnez la cellule susceptible de contenir la valeur non valide, puis sélectionnez formatage conditionnel - nouvelle règle. Sélectionnez "formater uniquement les cellules qui contiennent" et, sous la description de la règle, sélectionnez "erreurs" dans la liste déroulante. Ensuite, sous format, sélectionnez police - couleur - blanc (ou toute autre couleur de fond). Cliquez sur les différents boutons pour sortir et vous devriez constater que les cellules contenant des données non valides semblent vides (elles contiennent en fait #N/A mais un texte blanc sur un fond blanc semble vide). Ensuite, le graphique lié n'affiche pas non plus les points de valeur non valides.

7 votes

NON ! !! "Afficher les cellules vides en tant que lacunes" exige que les cellules soient VIDES. Si elles contiennent #N/A plutôt que RIEN, la routine graphique interpolera les cellules #N/A plutôt que de les laisser comme des trous dans la ligne. Si vous souhaitez que les cellules #N/A soient interpolées, c'est parfait, mais dans ce cas, l'option "Afficher les cellules vides comme des espaces" NE S'APPLIQUE PAS.

4 votes

@GreenAsJade Ce n'est pas la vraie réponse car elle ne correspond pas aux besoins de l'OP. Il devrait vraiment y avoir une question distincte pour le problème de la représentation graphique.

0 votes

Cela fonctionne bien dans Excel 2010 (=14.0) : les cellules vides et N/A sont ignorées par le graphique.

13voto

ajgor74 Points 151

Regardez la solution aquí :

Il semble que quelqu'un chez Microsoft ait compris le problème et ait élaboré une solution de contournement dans Excel.

Cette solution nécessite la suppression manuelle de cellules et n'est donc pas une solution totale.

13voto

ET-X Points 51

Si l'objectif est de pouvoir afficher une cellule comme étant vide alors qu'elle a en fait la valeur zéro, au lieu d'utiliser une formule qui donne une cellule vide ou vierge (puisqu'il n'y a pas de formule empty() ) à la place,

  • où vous voulez une cellule vide, renvoyer un 0 au lieu de "" et ALORS

  • définir le format des nombres pour les cellules comme ceci, où vous devrez trouver ce que vous voulez pour les nombres positifs et négatifs (les deux premiers éléments séparés par des points-virgules). Dans mon cas, les chiffres que j'avais étaient 0, 1, 2... et je voulais que le 0 apparaisse vide (je n'ai jamais compris à quoi servait le paramètre texte, mais il semblait être nécessaire).

    0;0;"";"text"@

4 votes

Bien que cela ne rende pas la cellule vide (il n'y a aucun moyen pour une formule d'obtenir une cellule vide), elle semble vide si le nombre est égal à zéro. Cependant, c'est incorrect. Il devrait être 0;-0 ;"" (notez le signe moins) ou même 0;-0 ; sans aucun guillemet. Le troisième point-virgule et la partie "text"@ ne sont pas nécessaires. La signification des champs délimités par des points-virgules est la suivante : comment afficher les nombres positifs, les nombres négatifs, le zéro et le texte (ce dernier format doit contenir un @). office.microsoft.com/fr-gb/excel-help/

0 votes

Vous êtes un dieu, monsieur. Vous m'avez sauvé de Visual Basic. Vous dirigez

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X