NBVAL() pour compter espaces vides

Résolu
Bonjour,

Existe-t-il une formule type nbval qui permet de compter les espaces vides ou = à 0 ?

12 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour,
    NB.VIDE(plage) compte le nombre de cellules vides,
    NB.SI(plage;0) compte le nombre de cellules contenant 0,
    =NB.VIDE(plage)+NB.SI(plage;0) compte le nombre de cellules vides ou contenant 0.
    Cordialement,
    -- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
    1. Bonjour et y-a-til un équivalent de recherchev qui designerait une cellule et non pas la valeur qu'elle contient ?

      Car voici mon exemple :si on a:

      CF 1
      CF 2 *
      MB ¤
      KD
      KD $
      CF 3
      CF 4 *
      HJ ¤
      CF 5

      CF 6 *

      je souhaite additionner 1+2 puis 3+4 puis 5+6 EN 3eme colonne, en face de chaque dernier cf de ces suites(astérisques). Idem pour kd (dollar) et les éventuelles autres références(¤).

      Sachant qu'un nombre indéterminé d'espaces vides peut séparer ces références.
      1. Bonjour et y-a-til un équivalent de recherchev qui designerait une cellule et non pas la valeur qu'elle contient ?

        Car voici mon exemple :si on a:

        CF 1
        CF 2 *
        MB ¤
        KD
        KD $
        CF 3
        CF 4 *
        HJ ¤
        CF 5

        CF 6 *

        je souhaite additionner 1+2 puis 3+4 puis 5+6 EN 3eme colonne, en face de chaque dernier cf de ces suites(astérisques). Idem pour kd (dollar) et les éventuelles autres références(¤).

        Sachant qu'un nombre indéterminé d'espaces vides peut séparer ces références.
        1. Une formule qui signifierait : " le numéro de la cellule dans laquelle j'ai trouvé cette valeur"
          1. Modérateur
            Ca part un peu dans tous les sens ton sujet... Il faudrait savoir ce que tu veux...
            " le numéro de la cellule dans laquelle j'ai trouvé cette valeur" :
            Ta plage de données entre A1 et A50
            la valeur cherchée en B1
            en C1 : =EQUIV(B1;A1:A50;0)
        2. en gros ma plage doit être une variable du type =nbval(lambda:epsilon)

          est-ce que c'est possible
          1. Modérateur
            Qu'est ce que c'est lambda et epsilon??????????
          2. Contributeur
            Bonjour
            vous répétez cette question, mais elle semble toujours aussi incompréhensible
            _votre astérisque est elle là pour identifier votre sujet ou est elle réellement. Peut elle servir d'indicateur
            _voulez vous compter ou additionner les valeurs.
            Pour moment ce que l'on comprend (mal sans doute) c'est que vous avez une colonne avec des codes et une avec des valeurs; et que vous voulez additionner ces valeurs dans une troisième colonne lorsque deux identiques se suivent
            mais vous dites idem pour KD $ alors que à priori il n'y a rien dans la 2° colonne
            alors un conseil:
            faites un modèle avec quelques lignes représentatives de vos données,et aussi avec , manuellement, les résultats correspondants que vous souhaitez.
            Ce sera plus parlant,, je pense que l'alphabet grec dans vos exemples
            dans l'attente;
            Crdlmnt
            PS: et si possible éviter de diffuser un message toutes les 3 mn sur le sujet... on a déjà du mal ,à suivre :-)
        3. Je pense qu'on peut déterminer des plages de cellules du type :

          indirect("A"&B1):indirect("A"&B2) mais je ne suis pas sûr voilà
          1. CF 2

            CF 4 =6*
            KD 3
            KD 3
            KD 3 =9*
            CF 7 =7*
            KD 5

            KD 2
            KD 3 =10*

            Voici les deux premières colonnes. Je veux étendre une formule dans la troisième qui donnera les résultats signalés par les astérisques.
            Il y a bc plus que 2 références, qui peuvent ou non être séparées par 1 ou plusieurs vides.
            Je vois une formule composée de nb val, de indirect et de somme accompagnée de conditions, mais ça paraît assez pointu.

            cordlmt
            1. Contributeur
              Peut être pas si compliqué que ça en fait.
              voyez au lien ci dessous si cela vous convient., mais je ne suis pas sur d'avoir tout compris
              Attention, pour que le dernier cumul se fasse en bas du tableau, la cellule sous le dernier code ne doit pas être vide. Mettez ici n'importe quoi.

              http://www.cijoint.fr/cjlink.php?file=cj201007/cij2oLCEBw.xls

              crdlmnt
              1. Bonjour, ce serait exactement ça, à ceci près qu'il est fréquent qu'il y ait du vide en dessous de la dernière référence d'une série. Il faudrait donc préciser, peut être avec l'aide de décaler, que si la suite de telle cellule, après le vide, est différente, il faut également inscrire le résultat.

                C'est à dire, compter l'espace vide qu'il y a depuis la dernière référence jusqu'à la prochaine, différente, afin de pouvoir également lui affecter le résultat par décalage ?
                1. Je tente un truc du type 00

                  =SI(OU(ESTVIDE(A28);ESTVIDE(A29);A28=A29);0;SOMME($B$2:B28)-SOMME($C$1:C27))&SI(ET(A29="";A29<>A30;A30<>A28);DECALER(C28;NB.VIDE(A$28:A29);0))

                  Mais dans ce cas-là il faudrait pouvoir ne conserver que la partie d'une formule d'une case par exemple le cas où elle est vraie

                  =SOMME(INDIRECT("A2:A" & B11))
                  1. Contributeur
                    Re
                    désolé voila tout ce que j'ai trouvé pour tenter de résoudre vitre problème, à savoir le transfert de la colonne A dans une autre colonne en complétant par formule les cellules sans code.
                    http://www.cijoint.fr/cjlink.php?file=cj201007/cijLmxciK9.xls
                    crdlmnt
                    PS: bien entendu, vous pouvez reporter par égalité la colonne B entre les colonnes du second tableau
                    Crdlmnt

                    EDIT
                    dans le modèle remplacer en C2
                    =SI(ESTVIDE(A3);A2;A3)
                    Par
                    =SI(ESTVIDE(A3);D2;A3)

                    pour éviter le report d'un blanc lorsque deux se suivent en colonne A