Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

NB.SI ""

11 réponses
Avatar
rmill...
Bonjour,

Je me demande si mon Excel ne serait pas corrompu ou?

J'ai cette formule =SI(B6<>"";2;"") que je copie et que je fais un collage special des valeurs dans une cellule. Alors je m'attend Í  ce que la valeur soit "" car la formule ne me retourne pas 2.

Mais suite au collage special des valeurs disons dans la cellule A1 ... dans une autre cellule je fais un NB.SI(A1:B1;"<>") et lÍ  ça me retourne 1 comme si cette cellule A1 est différente de "". Je n'ai vraiment rien dans B1.

Est-ce moi croyez-vous qui ne comprend pas quelque chose ou? Avez-vous déjÍ  vu cela? Merci Í  l'avance.

10 réponses

1 2
Avatar
Michel__D
Bonsoir,
Le 07/12/2020 Í  16:19, a écrit :
Bonjour,
Je me demande si mon Excel ne serait pas corrompu ou?
J'ai cette formule =SI(B6<>"";2;"") que je copie et que je fais un collage special des valeurs dans une cellule. Alors je m'attend Í  ce que la valeur soit "" car la formule ne me retourne pas 2.
Mais suite au collage special des valeurs disons dans la cellule A1 ... dans une autre cellule je fais un NB.SI(A1:B1;"<>") et lÍ  ça me retourne 1 comme si cette cellule A1 est différente de "". Je n'ai vraiment rien dans B1.
Est-ce moi croyez-vous qui ne comprend pas quelque chose ou? Avez-vous déjÍ  vu cela? Merci Í  l'avance.

Et en copiant B1 sur A1 cela donne quoi ?
Avatar
MichD
Le 07/12/20 Í  10:19, a écrit :
Bonjour,
Je me demande si mon Excel ne serait pas corrompu ou?
J'ai cette formule =SI(B6<>"";2;"") que je copie et que je fais un collage special des valeurs dans une cellule. Alors je m'attend Í  ce que la valeur soit "" car la formule ne me retourne pas 2.
Mais suite au collage special des valeurs disons dans la cellule A1 ... dans une autre cellule je fais un NB.SI(A1:B1;"<>") et lÍ  ça me retourne 1 comme si cette cellule A1 est différente de "". Je n'ai vraiment rien dans B1.
Est-ce moi croyez-vous qui ne comprend pas quelque chose ou? Avez-vous déjÍ  vu cela? Merci Í  l'avance.

Bonjour,
Ton problème est l'utilisation de "<>".
Essaie comme ceci : =NB.SI(A1:B1;"=") retourne 1 qui est l'équivalent de
vrai.
Utilise cette formule : ¡<>B1 la formule retourne "FAUX".
OU emploie ¡± la formule retourne VRAI ou 1.
La formule =NB.SI(A1:B1;"<>") retourne 1 si les 2 cellules sont vides.
Nb.si est un décompte, il y a bien une occurrence de "VIDE" ou "" dans
les 2 cellules, NON?
Si les cellules A1 et B1 avaient la valeur 5, la formule
=NB.SI(A1:B1;"<>") retournerait 2.
Si tu veux utiliser "<>", tu dois effectuer une comparaison avec quelque
chose comme : =NB.SI(A1:B1;"<>"&A1) , la formule retourne 0.
MichD
Avatar
rmill...
Merci. Je comprend bien ce que vous me mentionnez. Mais le problème est plutÍ´t celui-ci.
Oublions ce qui est plus haut.
Dans la cellule A1 je fais une delete. Il n'y a donc plus rien.
Dans la cellule B6 j'ai la formule suivante. =SI(A1<>"";2;""). Le résultat ne donne pas 2. Alors le résultat est "".
Mais ... lorsque ensuite je fais un copier sur la cellule B6 et que je fais ensuite un collage spécial des valeurs seulement dans A1 ... curieusement Excel indique que la cellule A1 n'est plus vide ou n'est plus "" ???
Car j'ai aussi essayé avec la formule =NBVAL(A1) et ça retourne 1.
Si je fais ensuite un delete dans A1 la formule =NBVAL(A1) retourner cette fois 0.
Alors pourquoi après avoir fais le collage spécial ... la cellule n'est plus vide ou ""?
Avatar
MichD
Le 07/12/20 Í  15:37, a écrit :
Merci. Je comprend bien ce que vous me mentionnez. Mais le problème est plutÍ´t celui-ci.
Oublions ce qui est plus haut.
Dans la cellule A1 je fais une delete. Il n'y a donc plus rien.
Dans la cellule B6 j'ai la formule suivante. =SI(A1<>"";2;""). Le résultat ne donne pas 2. Alors le résultat est "".
Mais ... lorsque ensuite je fais un copier sur la cellule B6 et que je fais ensuite un collage spécial des valeurs seulement dans A1 ... curieusement Excel indique que la cellule A1 n'est plus vide ou n'est plus "" ???
Car j'ai aussi essayé avec la formule =NBVAL(A1) et ça retourne 1.
Si je fais ensuite un delete dans A1 la formule =NBVAL(A1) retourner cette fois 0.
Alors pourquoi après avoir fais le collage spécial ... la cellule n'est plus vide ou ""?

Bonjour,
TantÍ´t, le "copier-coller valeur seulement" d'une formule d'une cellule
retourne "", la formule =NB.SI(A1:B1;"<>"&"") retournait 1 parce qu’une
des 2 cellules contenait "" . Quand tu écris cette formule
=NB.SI(A1:B1;"<>") c'est l'équivalent de =NB.SI(A1:B1;"<>"&"").
Évidemment, une des 2 cellules affichant "", ce que tu venais de copier,
elle n'était pas vide.
"" n'est pas rien même si le résultat n'est pas visible. Excel est
constant, tu copies une cellule qui contient "" et lorsque tu la copies
vers une autre cellule, il y a bien "" dedans, d'o͹ le résultat de ton
premier exemple. Si les 2 cellules avaient totalement vide, la formule
aurait affiché 0. Au même titre dans mon exemple, si les 2 cellules
auraient affiché 5. La formule afficherait 2. C'est un simple décompte.
Dans le présent exemple, c'est un peu la même chose. Pourquoi lorsque tu
fais un copier-coller valeur seulement d'une cellule dont la formule
retourne "", que la cellule de destination soit vide. Tu n'as pas copié
une cellule vide, mais une cellule contenant "". NON ?
Une cellule au format standard, c'est l'équivalent d'une variable dont
le type est variant. la cellule peut contenir du texte ou des nombres.
=NbVal(A1) = 1 ---> du texte
=nb(A1) = 0 ---> aucune valeur numérique
La cellule n'est pas vide. Dans une autre cellule entre la formule :
=SI(A1="";1;2), La formule retourne 1 et pas 2.
Tu as une conception erronée. Je me répète, si tu fais un copier-coller
valeur seulement d'une cellule d'une formule retournant "", tu ne copies
par le VIDE mais bien "". Comme la cellule n’affiche rien de visible Í 
l'oeil, tu conclus qu'elle est vide et ce n'est pas le cas.
J'espère que c'est un peu plus clair!
MichD
Avatar
rmill...
Et bien je viens d'apprendre quelque chose. Depuis toutes ces années je croyais le contraire. J'étais effectivement totalement dans l'erreur. Merci.
Mais ... serait-ce possible alors ... de supprimer le contenu des cellules avec ""? Et ce sans faire une boucle car j'ai 70 000 lignes et 5 colonnes.
Ou voici ce que je cherche Í  faire. Une formule qui détecte que sur la ligne 1 pour les colonnes de A Í  E il n'y a pas de texte ni de montants et que sur la ligne 2 que dans la colonne A il n'y ait pas de texte et de montants.
ColA ColB ColC ColD ColE
Ligne 1
Ligne 2
Avatar
MichD
Le 07/12/20 Í  22:18, a écrit :
Et bien je viens d'apprendre quelque chose. Depuis toutes ces années je croyais le contraire. J'étais effectivement totalement dans l'erreur. Merci.

Une précision:
Ce qu’il faut avoir en tête c'est qu'une cellule au format standard
accepte du numérique ou du texte.
Supposons A1 totalement vide
Si j'écris cette formule : =Si(A1="";"";1") la formule retourne "". On
s'entend, la cellule est vide, elle ne contient pas "". Mais comme ta
formule demande si A1 contient du texte (""), la formule te retourne ""
pour te dire qu'elle ne contient pas de texte.
En VBA, Dim X as String, x contient par défaut "", car la chaÍ®ne de
caractères est absente.
Dim X As Integer ou Long Ou double, x contient pas défaut la valeur 0,
aucune valeur ne lui a été attribuée.
Dim X as Variant x peut-être du texte ou du numérique selon le bon
vouloir de l'usager. Si on veut, une cellule au format standard se
comporte comme une variable de type "Variant".
Si j'écris cette formule : =Si(A1=0;0;1) comme je compare A1 Í  du
numérique "0", la formule retourne 0 pour te dire qu'elle ne contient
pas une valeur numérique, car A1 est toujours vide, n'est-ce pas?
Si tu veux tester si A1 est vide, =estvide(A1), la formule retourne "Vrai".
Attention, si tu as en A1, seulement une apostrophe seule, la formule
retourne FAUX. Ce symbole n'est pas visible Í  l'oeil. Il est surtout
utilisé pour passer le contenu de la cellule au format texte lorsqu'il
est au début de la chaÍ®ne de caractères de la cellule.
MichD
Avatar
MichD
Mais ... serait-ce possible alors ... de supprimer le contenu des cellules avec ""? Et ce sans faire une boucle car j'ai 70 000 lignes et 5 colonnes.
Ou voici ce que je cherche Í  faire. Une formule qui détecte que sur la ligne 1 pour les colonnes de A Í  E il n'y a pas de texte ni de montants et que sur la ligne 2 que dans la colonne A il n'y ait pas de texte et de montants.
ColA ColB ColC ColD ColE
Ligne 1
Ligne 2

Je n'ai pas vraiment saisi la donne de ton problème.
Peux-tu publier ton classeur (seulement quelques lignes) démontrant ce
que tu veux faire et le résultat attendu. Utilise le site Cjoint.com et
tu nous retournes ici l'adresse obtenue.
MichD
Avatar
rmill...
Bonjour,
Vraiment encore un grand merci. J'allais vous expédier un fichier mais j'ai solutionné mon problème.
Ce que j'en déduis est que si je fais un collage des valeurs d'une cellule qui résulte d'une formule telle que =si(Z8=2;2;"") ... alors vu que le résultat = "" et que je colle "" ... alors la cellule n'est pas vide comme vous me l'avez expliqué.
Mais ce "" ... collé ... est du texte pour Excel. Car si je fais ensuite la formule =si(esttexte(cellulecontenant"") ça retourne vrai. Mais si on fait ensuite NBCAR(cellulecontenant"") ... lÍ  ... ça retourne 0. ??? Pour moi c'est très curieux mais je suis heureux d'avoir appris ceci. J'ai testé comme vous me l'avez mentionné et j'ai constaté.
Aussi ... le "" collé ... on ne peut le trouver par une recherche.
Au lieu de coller un "" je colle plutÍ´t un texte tel que ZZwwZZ et ensuite en faisant rechercher XXwwZZ et Remplacer "" ... lÍ  ça enlève le ZZwwZZ mais ... il n'y a pas de "". La cellule est vide.
Donc un collé de "" et un remplacer par "" ne donne pas le même résultat.
Avatar
MichD
Le 08/12/20 Í  12:23, a écrit :
Bonjour,
Vraiment encore un grand merci. J'allais vous expédier un fichier mais j'ai solutionné mon problème.
Ce que j'en déduis est que si je fais un collage des valeurs d'une cellule qui résulte d'une formule telle que =si(Z8=2;2;"") ... alors vu que le résultat = "" et que je colle "" ... alors la cellule n'est pas vide comme vous me l'avez expliqué.
Mais ce "" ... collé ... est du texte pour Excel. Car si je fais ensuite la formule =si(esttexte(cellulecontenant"") ça retourne vrai. Mais si on fait ensuite NBCAR(cellulecontenant"") ... lÍ  ... ça retourne 0. ??? Pour moi c'est très curieux mais je suis heureux d'avoir appris ceci. J'ai testé comme vous me l'avez mentionné et j'ai constaté.
Aussi ... le "" collé ... on ne peut le trouver par une recherche.
Au lieu de coller un "" je colle plutÍ´t un texte tel que ZZwwZZ et ensuite en faisant rechercher XXwwZZ et Remplacer "" ... lÍ  ça enlève le ZZwwZZ mais ... il n'y a pas de "". La cellule est vide.
Donc un collé de "" et un remplacer par "" ne donne pas le même résultat.

Peut-être que mes explications n'étaient pas claires, mais je ne veux
pas te laisser sous une mauvaise impression.
Dans mon premier message, ces 2 formules =NB.SI(A1:B1;"<>"&"") ou
=NB.SI(A1:B1;"<>") retournent le même résultat.
Quand tu fais un "copier-coller valeur seulement" d'un résultat d'une
formule et que tu colles dans A1 ou B1 ou dans les 2 cellules, les
cellules A1 et B1 sont vides dans le sens qu'elles ne contiennent aucun
caractère. Pour t'en assurer, tu sélectionnes une cellule, appuie sur la
touche F2, la cellule pas en mode édition, et lorsque tu valides, tu vas
voir le résultat de la formule affiché 0 et non plus 1 ou 2. Pourtant,
tu n’as supprimé aucun caractère. La cellule est vraiment vide, ce
pourquoi =Nbcar(A1) retourne 0.
Cependant, le "copier-coller valeur seulement" a un effet sur les
cellules de destination. Comme tu as copié une "absence de caractères
texte" qui représente du texte "", la formule =EstVide(A1) retourne
FAUX, la formule =Code(A1) retourne #Valeur! Pourtant la cellule est
vide si ce n'est "l'absence de caractère" que tu as copiée. Si tu passes
la cellule A1 en mode édition et que tu valides, toutes ces formules
retournent ce que tu attends comme réponse.
Le passage de la cellule en mode édition a fait disparaÍ®tre le caractère
"Absence de caractère", mais n'a pas supprimé aucun symbole ASCII
particulier, si oui, je ne connais pas ce symbole! ;-))
Une cellule ayant reçu une "absence de caractère texte" retourne
nécessaire "" puisque c'est la valeur par défaut d'une chaÍ®ne de
caractère nulle comme ce l'est pas une variable de type String.
Il est temps de passer Í  autre chose!!!
;-))
MichD
Avatar
MichD
Un dernier commentaire sur le sujet.
En VBA, si je ne déclare pas le type de variable
'------------------------
sub Test()
Dim M
Si tu passes la souris au-dessus de la variable X, elle indique 0
x = m
Si tu déclares une variable Í  String passe la souris au-dessus de la
variable Z, elle indique "". Aucune donnée n'a été attribuée Í  la
variable P. Elle ne contient aucune chaÍ®ne de caractère, elle n'indique
pas "vide" mais "". Quand tu copies dans une cellule, le résultat d'une
formule retournant "", tu fais la même chose qu'en VBA, tu attribues Í 
la cellule de destination le type "String" (texte), la cellule est
"vide" mais elle retourne "" si tu la testes, car c'est la valeur par
défaut du type "Texte" en l'absence d'une chaÍ®ne de caractère.
dim P as string
z = P
End Sub
'------------------------
Une cellule de type standard et l'équivalent d'une variable au format
variant.
L'explication est plus facile en vba. Ce n'est pas abstrait, on peut le
voir en passant la cellule au-dessus des variables.
MichD
1 2