Excel 2004 - compter des cases contenant *

r e m y

Membre vénérable
Club iGen
4 Novembre 2000
41 517
4 327
62
St Germain en Laye - FRANCE
J'ai un petit souci avec Excel

J'ai une ligne (de A1 à Z1 par exemple) qui peut comporter différents codes dans chacune des cases.

Je dois
- d'une part compter le nombre de cases comportant une saisie; pour ça NBVAL(A1:Z1) me donne le résultat pas de pb
- d'autre part le nombre de cases comportant comme code saisi, le caractère * (désolé, je n'ai pas le choix d'utiliser autre chose....). C'est là où j'ai un souci car la fonction NB.SI(A1:Z1;"*") ne me donne pas le bon résultat mais me retourne en fait le nombre de case non vide. Visiblement le caractère * est utilisé par cette fonction comme "joker" et chercher ainsi le nombre de case contenant * revient à chercher le nombre de case comportant n'importe quelle suite de caractères.

Quelqu'un aurait-il une idée pour réussir à compter le nombre de case dans lesquelles le caractère * a été saisi?

Un grand merci d'avance

(NB: j'ai essayé NB.SI(A1:Z1;T(42)) car le caractère * semble correspondre au caractère ascii 42; mais cette formule me compte le nombre de cases vides.... ça ne fonctionne donc pas)
 
Salut r e m y

Utilise cette formule => =NB.SI(plagedecellule;"*"&"~*"&"*")

le ~ permet d'échapper le caractère générique *, donc le nb.si va compter toutes les chaines contenant *
 
(NB: j'ai essayé NB.SI(A1:Z1;T(42)) car le caractère * semble correspondre au caractère ascii 42; mais cette formule me compte le nombre de cases vides.... ça ne fonctionne donc pas)
L'idée n'est pas mauvaise, mais T() n'est pas la bonne fonction pour rendre le caractère à partir du code ASCII. C'est CAR() qu'il faut utiliser :

=NB.SI(A1:Z1;CAR(42))

...mais la solution indiquée par Da Capo donne également le même résultat - en prenant également en compte les cellules dans lesquelles l'astérisque ne serait pas seul, ce que tu pourrais obtenir bien entendu avec la formule :
=NB.SI(A1:Z1;"*"&CAR(42)&"*")
 
un grand merci à vous 2 :up:
Je teste de suite...

Au fait, savez-vous si , dans l'hypothèse où je resterai sûr l'idée code ascii, l'utilisation de la feuillé donnera les mêmes résultats sûr PC et Mac? (même table ascii dans les 2 environnements?)
 
@aliboron, j'avais essayé avec car(42) mais sur le pc du boulot, il se comportait comme avec le caractère joker * et non en recherche de caractère simple.
C'est pourquoi j'ai opté pour le caractère d'échappement ~

@r e m y : car(42) correspond à * sur mon pc.
 
Au fait, savez-vous si, dans l'hypothèse où je resterai sûr l'idée code ascii, l'utilisation de la feuillé donnera les mêmes résultats sûr PC et Mac? (même table ascii dans les 2 environnements ?)
Oui, l'astérisque fait (heureusement) partie des codes ASCII de base et est donc identique dans les deux environnements.

Horreur !!! J'ai encore dit une ânerie ! En ce qui me concerne, "sur le PC du boulot" ça ne fonctionne pas comme prévu (Excel 2000) - inconvénient des tests sur des petites séries de nombres probablement. Il faut donc bien passer par la tilde, CAR(42) ou pas.

Bon, en chipotant, on peut toujours écrire : =NB.SI(A1:Z1;CAR(126)&CAR(42)) si on veut vraiment faire appel aux codes ASCII ;)


[MàJ] Voir ci dessous : je suis donc complètement d'accord avec Da Capo :D
 
  • J’aime
Réactions: da capo
Ici excel 2003 et ça donne ça :
 
Ca fonctionne impeccable avec le tilde. MERCI encore!
:up: