Incrémenter les lignes en fonction des colonnes

Bonjour,

J'aimerais compter le nombre de cellules remplies dans mes colonnes. Pour cela, je sais qu'il faut utiliser la fonction NBVAL. Mon problème est le suivant :

Voici le cas de mon exemple (mis en pièce jointe) qui est évidemment avec très peu de données; mais mon document original est colossal!

j'ai deux feuilles : feuille1 et feuille2

Dans la feuille1 j'ai 6 colonnes, A, C et E sont celles qui m'intéressent pour ce cas précis. Ce sont les colonnes dans lesquelles j'aimerais compter le nombre de cellules remplies.

Dans la feuille 2 je n'ai qu'une colonne qui va stocker les comptes.

En A1 est stocké le nombre de cellules remplies dans la colonne A de la feuille 1 ; A1=NBVAL(Feuil1!A2:A14)

En A2 est stocké le nombre de cellules remplies dans la colonne C de la feuille 1 ; A2=NBVAL(Feuil1!C2:C14)

En A3 est stocké le nombre de cellules remplies dans la colonne E de la feuille 1 ; A3=NBVAL(Feuil1!E2:E14)

Donc en faisant cela j'ai le résultat final attendu mais le problème c'est que je n'ai pas que trois colonnes. Mais 600! Y aurait-il un moyen d'incrémenter sur les lignes (A1:A600 ; pour la feuille 2) en fonction des colonnes (A, C, E, G...etc ; de la feuille 1)? Vous avez remarqué que dans la feuille 1, les colonnes vont de deux en deux!

Merci

zazoo

93exemples.xls (18.00 Ko)

Bonjour zazoo,

Essaie avec cette formule à mettre en A2 de la feuille2 :

=NBVAL(DECALER(Feuil1!$A$2;;2*LIGNE()-4;13;1))

La fonction DECALER te permet de sélectionner une plage dynamique.

La partie 2*LIGNE()-4 te permet ici de déplacer la plage où tu comptes les valeurs, de 2 colonnes vers la droite à chaque fois que tu passes à la ligne suivante dans la feuille2.

Le 13 est à adapter. C'est le nombre de lignes que contient ton tableau de la feuille1.

160exemples-v1.zip (6.52 Ko)

Merci beaucoup

Néanmoins, je ne comprends pas très bien pourquoi 2*LIGNE()-4 fait cela.

LIGNE() renvoie le numéro de la ligne, n'est-ce pas?

Donc si je suis en A2 LIGNE() = 2 et 2*LIGNE()-4 = 0

Donc si je suis en A3 LIGNE() = 3 et 2*LIGNE()-4 = 2 (je décale de 2)

Donc si je suis en A4 LIGNE() = 4 et 2*LIGNE()-4 = 4 (je décale de 2 par rapport à la précédent et donc 4 par rapport à la première?)

Donc si je suis en A5 LIGNE() = 5 et 2*LIGNE()-4 = 8 (et là qu'est-ce qui se passe?)

J'ai constaté que même si j'ajoute des colonnes votre formule fonctionne donc c'est bien moi qui n'est pas compris comment l'utiliser...

Merci de votre aide

zazoo

Bonjour

zazoo a écrit :

Donc si je suis en A5 LIGNE() = 5 et 2*LIGNE()-4 = 8 (et là qu'est-ce qui se passe?)

Il se passe que tu dois réviser ta table de 5. (Je plaisante - C'est bien sûr une étourderie de ta part)

2*5 = 10

10-4 = 6

Amicalement

Nad

Merci beaucoup

Néanmoins, je ne comprends pas très bien pourquoi 2*LIGNE()-4 fait cela.

LIGNE() renvoie le numéro de la ligne, n'est-ce pas?

Donc si je suis en A2 LIGNE() = 2 et 2*LIGNE()-4 = 0

Donc si je suis en A3 LIGNE() = 3 et 2*LIGNE()-4 = 2 (je décale de 2)

Donc si je suis en A4 LIGNE() = 4 et 2*LIGNE()-4 = 4 (je décale de 2 par rapport à la précédent et donc 4 par rapport à la première?)

=NBVAL(DECALER('feuil1'!$A$2;;2*LIGNE()-4;13;1))

$A$2 (c'est la colonne A ou je commence à compter dans la feuille 1? Et 2 parce que en '1' il y a le nom de la colonne?)

Pourquoi deux ";"?

Ou se trouve l'information qui dit que c'est sur les colonnes qu'on va se déplacer de deux à chaque fois?

Et enfin pourquoi "1" à la fin?

J'ai constaté que même si j'ajoute des colonnes votre formule fonctionne donc c'est bien moi qui n'est pas compris comment l'utiliser...

Merci de votre aide

zazoo

-- 01 Avr 2011, 15:12 --

Désolé Nad, je viens de voir ta réponse...

Et oui, étourderie! Excusez moi...

Zazoo

Re,

J'attendais tes questions pour expliquer car pas facile d'expliquer sinon.

Alors :

zazoo a écrit :

$A$2 (c'est la colonne A ou je commence à compter dans la feuille 1? Et 2 parce que en '1' il y a le nom de la colonne?)

C'est ça. Et les dollars c'est pour bloquer la cellule A2 lorsque tu étires ta formule.
zazoo a écrit :

Pourquoi deux ";"?

Voici ce que dit l'aide Excel concernant la fonction DECALER :

DECALER(réf;lignes;colonnes;hauteur;largeur)

La "réf" est la cellule à laquelle tu vas décaler. (ici : A2)

"lignes" est le nombre de ligne que tu souhaites décaler par rapport à A2. Ex : si t'avais mis 5 ça aurait fait A7.

Ici cet argument est omis (d'où les deux ";") car on a pas besoin de décaler. On aurait pu mettre ";0;" au lieu de ";;"

"colonnes" est le nombre de colonnes que tu souhaites décaler. Ici 2*LIGNE()-4 te permet de décaler de 2 en 2 à chaque fois que tu passes à la ligne suivante.

C'est peut-être pas clair, alors n'hésite pas à demander des précisions ou consulter l'aide excel.

"hauteur" c'est le nombre de ligne que contient ton tableau (feuille1). ici : 13 lignes

"largeur" c'est le nombre de colonne du tableau dans lequel tu comptes tes valeurs. ici : 1 = 1 colonne.

Re

J'avais préparé un petit fichier sur ce lien :

https://forum.excel-pratique.com/cours-astuces/fonction-decaler-t17830.html

Ça peut t'aider à comprendre la fonction DECALER

Nad

Salut Nad,

Une illustration vaut effectivement mieux que 1000 mots ! Nickel ton fichier.

super nad!

merci

-- 01 Avr 2011, 16:06 --

Bonjour,

et oui je sais que j'ai déjà dit que le problème était résolu, mais un autre se pose...

première feuille : 1-10, mes données que je veux compter.

feuille 2 : le résultat des comptes (avec la formule que vous m'avez donnée et adaptée).

Ca marche puisque en C2 j'ai le bon compte. Mais après ce n'est plus le cas, que 576!

Le problème c'est le format de me cellules en J, L, N, P, R, T, V, X, Z

Les valeurs dans ces colonnes sont des copies d'une autre colonne (la colonne H). Mais en faisant cette copie, les cellules vides sont devenues des "0". Or ca ne vas pas pour que je puisse faire mes comptages. Du coup je suis passée en format de cellule standard;standard;;

J'ai bien récupéré des cases vides mais Excel me les compte comme si elles étaient pleines????

Que dois-je faire?

Merci

zazoo

Ps: J'ai aussi ouvert un autre message pour que d'autres jettent un oeil.

Rechercher des sujets similaires à "incrementer lignes fonction colonnes"