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 vraie cellule vide. Donc, essentiellement, j'ai 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 aucun de ceux-ci ne semble être de vraies cellules vides, je suppose que c'est le 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 le faire avec VB?
EDIT: Je suis en train de construire une feuille de calcul qui extrait des données d'autres feuilles de calcul qui est formatée pour 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 changer l'implémentation de cette application, et elle échoue si la valeur est "" au lieu d'être réellement vide.
la source
Réponses:
Vous allez devoir utiliser
VBA
, alors. Vous allez parcourir les cellules de votre plage, tester la condition et supprimer le contenu s'il correspond.Quelque chose comme:
la source
VbNullString
Excel n'a aucun moyen de le faire.
Le résultat d'une formule dans une cellule dans Excel doit être un nombre, du texte, logique (booléen) ou une erreur. Il n'y a pas de type de valeur de cellule de formule "vide" ou "vide".
Une pratique que j'ai vue suivre est d'utiliser NA () et ISNA (), mais cela peut ou peut ne pas vraiment résoudre votre problème car il existe une grande différence dans la façon dont NA () est traité par d'autres fonctions (SUM (NA ( )) est # N / A tandis que SUM (A1) est 0 si A1 est vide).
la source
Oui c'est possible.
Il est possible d'avoir une formule annihilante évaluant à trueblank si la condition est remplie. Il passe le test de la
ISBLANK
formule.Tout ce dont vous avez besoin est de configurer une plage nommée, par exemple
GetTrueBlank
, et vous pourrez utiliser le modèle suivant comme dans votre question:Étape 1. Mettez ce code dans le module de VBA.
Étape 2. Dans
Sheet1
dans laA1
cellule ajouter plage nomméeGetTrueBlank
la formule suivante:C'est tout. Il n'y a pas d'autres étapes. Utilisez simplement la formule auto-annihilante. Mettez dans la cellule, disons
B2
, la formule suivante:La formule ci-dessus dans
B2
sera évaluée à trueblank, si vous tapez 0 dansA2
.Vous pouvez télécharger un fichier de démonstration ici .
Dans l'exemple ci-dessus, l'évaluation de la formule en trueblank entraîne une cellule vide. La vérification du résultat avec la
ISBLANK
formule donne un résultat positif en VRAI. C'est une formule de type hara-kiri. La formule disparaît de la cellule lorsque la condition est remplie. L'objectif est atteint, bien que vous souhaitiez probablement que la formule ne disparaisse pas.Vous pouvez modifier la formule pour renvoyer le résultat dans la cellule adjacente, afin que la formule ne se tue pas d'elle-même. Découvrez comment obtenir un résultat UDF dans une cellule adjacente .
Je suis tombé sur les exemples d'obtention d'un trueblank comme résultat de formule révélé par The FrankensTeam ici: https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another- cellule
la source
C'est peut-être de la triche, mais ça marche!
J'avais également besoin d'un tableau qui est 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 vides pour "afficher les cellules vides comme des lacunes" (cliquez sur le bouton radio). Voilà la première étape.
Ensuite, dans les cellules qui peuvent aboutir à un résultat que vous ne voulez pas tracer, mettez la formule dans une instruction IF avec des
NA()
résultats tels que=IF($A8>TODAY(),NA(), *formula to be plotted*)
Cela donne le graphique requis sans points lorsqu'une valeur de cellule non valide se produit. Bien sûr, cela laisse toutes les cellules avec cette valeur non valide à lire
#N/A
, et c'est désordonné.Pour nettoyer cela, sélectionnez la cellule qui peut contenir la valeur non valide, puis sélectionnez mise en forme conditionnelle - 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 quelle que soit la couleur d'arrière-plan). Cliquez sur les différents boutons pour sortir et vous devriez voir que les cellules avec des données non valides semblent vides (elles contiennent en fait
#N/A
mais du texte blanc sur fond blanc semble vide.) Ensuite, le graphique lié n'affiche pas non plus les points de valeur non valides.la source
C'est ainsi que je l'ai fait pour l'ensemble de données que j'utilisais. Cela semble compliqué et stupide, mais c'était la seule alternative à l'apprentissage de l'utilisation de la solution VB mentionnée ci-dessus.
q
car il n'y avait nulle part sur ma fiche technique.q
par rien.Ce processus en trois étapes a transformé toutes les cellules "vides" en cellules "vides". J'ai essayé de fusionner les étapes 2 et 3 en remplaçant simplement la cellule vide par une cellule vide, mais cela n'a pas fonctionné - j'ai dû remplacer le cellule vide avec une sorte de texte réel, puis remplacez ce texte par une cellule vide.
la source
Si l'objectif est de pouvoir afficher une cellule comme vide alors qu'elle a en fait la valeur zéro, alors au lieu d'utiliser une formule qui aboutit à une cellule vide ou vide (puisqu'il n'y a pas de
empty()
fonction) à la place,où vous voulez une cellule vide, retournez un
0
au lieu de""
et ALORSdéfinissez le format numérique 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 0 apparaisse vide. (Je n'ai jamais compris à quoi servait le paramètre de texte, mais il semblait nécessaire).
la source
Essayez d'évaluer la cellule à l'aide de
LEN
. S'il contient une formuleLEN
reviendra0
. S'il contient du texte, il retournera supérieur à0
.la source
""
ou est vide.LEN(cell)>0
renvoie vrai s'il y a un nombre (y compris zéro et y compris si le nombre est calculé par une formule), et faux s'il s'agit d'une chaîne vide ou vide.Wow, un nombre incroyable de personnes ont mal lu la question. Il est facile de faire une cellule regard vide. Le problème est que si vous avez besoin que la cellule soit vide, les formules Excel ne peuvent pas renvoyer "aucune valeur" mais peuvent uniquement renvoyer une valeur. Renvoyer un zéro, un espace ou même "" est une valeur.
Vous devez donc renvoyer une «valeur magique», puis la remplacer par aucune valeur à l'aide de la recherche et du remplacement, ou à l'aide d'un script VBA. Bien que vous puissiez utiliser un espace ou "", mon conseil serait d'utiliser une valeur évidente, telle que "NODATE" ou "NONUMBER" ou "XXXXX" afin que vous puissiez facilement voir où cela se produit - il est assez difficile de trouver "" dans une feuille de calcul.
la source
Utilisez
COUNTBLANK(B1)>0
au lieu de l'ISBLANK(B1)
intérieur de votreIF
déclaration.Contrairement à
ISBLANK()
,COUNTBLANK()
considère""
comme vide et renvoie 1.la source
Autant de réponses qui renvoient une valeur qui semble vide mais qui n'est pas en fait une cellule vide comme demandé ...
Comme demandé, si vous voulez réellement une formule qui renvoie une cellule vide. C'est possible via VBA. Voici donc le code pour faire exactement cela. Commencez par écrire une formule pour renvoyer l'erreur # N / A où vous voulez que les cellules soient vides. Ensuite, ma solution efface automatiquement toutes les cellules qui contiennent cette erreur # N / A. Bien sûr, vous pouvez modifier le code pour supprimer automatiquement le contenu des cellules en fonction de tout ce que vous aimez.
Ouvrez la "visionneuse visuelle de base" (Alt + F11) Trouvez le classeur qui vous intéresse dans l'explorateur de projet et double-cliquez dessus (ou cliquez avec le bouton droit et sélectionnez le code d'affichage). Cela ouvrira la fenêtre "voir le code". Sélectionnez "Classeur" dans le menu déroulant (Général) et "SheetCalculate" dans le menu déroulant (Déclarations).
Collez le code suivant (basé sur la réponse de JT Grimes) dans la fonction Workbook_SheetCalculate
Enregistrez votre fichier en tant que classeur compatible avec les macros
NB: Ce processus est comme un scalpel. Il supprimera tout le contenu de toutes les cellules évaluées à l'erreur # N / A, alors soyez conscient. Ils iront et vous ne pouvez pas les récupérer sans rentrer dans la formule qu'ils contenaient.
NB2: De toute évidence, vous devez activer les macros lorsque vous ouvrez le fichier, sinon cela ne fonctionnera pas et les erreurs # N / A resteront non supprimées
la source
Cette réponse ne traite pas entièrement de l'OP, mais il y a eu plusieurs fois j'ai eu un problème similaire et j'ai cherché la réponse.
Si vous pouvez recréer la formule ou les données si nécessaire (et à partir de votre description, cela semble possible), alors lorsque vous êtes prêt à exécuter la partie qui nécessite que les cellules vides soient réellement vides , vous pouvez sélectionner la région et exécutez la macro vba suivante.
cela effacera le contenu de toute cellule qui affiche actuellement
""
ou n'a qu'une formulela source
Ce que j'ai utilisé était un petit hack. J'ai utilisé T (1), qui a renvoyé une cellule vide. T est une fonction dans Excel qui renvoie son argument si c'est une chaîne et une cellule vide sinon. Donc, ce que vous pouvez faire, c'est:
la source
J'ai utilisé le travail suivant pour rendre mon Excel plus propre:
Lorsque vous effectuez des calculs, le "" vous donnera une erreur, vous voulez donc le traiter comme un nombre, j'ai donc utilisé une instruction imbriquée if pour retourner 0 au lieu de "", puis si le résultat est 0, cette équation retournera ""
De cette façon, la feuille Excel aura l'air propre ...
la source
Si vous utilisez des fonctions de recherche comme HLOOKUP et VLOOKUP pour importer les données dans votre feuille de calcul, placez la fonction entre crochets et la fonction renverra une cellule vide au lieu d'un {0}. Par exemple,
Cela retournera une valeur nulle si la cellule de recherche est vide:
Cela retournera une cellule vide si la cellule de recherche est vide:
Je ne sais pas si cela fonctionne avec d'autres fonctions ... Je n'ai pas essayé. J'utilise Excel 2007 pour y parvenir.
Éditer
Pour que réellement un IF (A1 = "",,) revienne comme vrai, il doit y avoir deux recherches dans la même cellule séparées par un &. Le moyen le plus simple consiste à faire de la deuxième recherche une cellule qui se trouve à la fin de la ligne et sera toujours vide.
la source
Jusqu'à présent, c'est le meilleur que j'ai pu trouver.
Il utilise la
ISBLANK
fonction pour vérifier si la cellule est vraiment vide dans uneIF
instruction. S'il y a quelque chose dans la cellule,A1
dans cet exemple, même un caractère ESPACE,alors la cellule n'est pas
EMPTY
et le calcul en résultera. Cela empêchera les erreurs de calcul de s'afficher jusqu'à ce que vous ayez des nombres avec lesquels travailler.Si la cellule est
EMPTY
alors la cellule de calcul n'affichera pas les erreurs du calcul.Si la cellule estNOT EMPTY
alors les résultats du calcul seront affichés. Cela lancera une erreur si vos données sont mauvaises, le redouté#DIV/0
!Modifiez les références de cellule et la formule selon vos besoins.
la source
La réponse est positive - vous ne pouvez pas utiliser la fonction = IF () et laisser la cellule vide. "Semble vide" n'est pas la même chose que vide. Il est dommage que deux guillemets dos à dos ne donnent pas une cellule vide sans effacer la formule.
la source
Google m'a amené ici avec un problème très similaire, j'ai finalement trouvé une solution qui correspond à mes besoins, cela pourrait aussi aider quelqu'un d'autre ...
J'ai utilisé cette formule:
la source