FONCTION ou MACRO comptant le nombre de ligne
Résolu
Elariana
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà j'ai un problème avec mon tableau. J'ai beau cherché depuis ce matin sur différents forum, je ne trouve pas la réponse à mon problème. Je ne sais toujours pas si je dois utiliser une macro ou une simple fonction peut me suffire.
Je vous expose mon problème.
J'aimerai compter le nombre de ligne d'un tableau répondant au critère d'une autre colonne. Cela parait simple de premier abord mais si je fais appel à vous c'est que cela se complique, je vais donc tenter d'illustrer le problème :
J'ai donc plusieurs colonnes
A (identifiant) - ... - AH (date)
J'aimerai donc compter le nombre de ligne en A avant une certaine date rentrer en colonne AH.
Là ou cela se complique est que le tableau a plusieurs lignes fusionnées (exemple ligne 9 et 10 correspondent au même identifiant). J'ai donc pour d'auter raison du scinder les cellules correspondant à la date en AH pour faire des fonctions SOMMEPROD. Maintenant le problème est d'éviter les doublons.
Bref, un problème un peu compliqué donc je peux aiguiller car ce n'est pas facile à exposer.
N'hesitez pas à m'aider et me poser des questions.
Bien à vous
Elariana
P.S : je travail sous open office calc, mais si j'ai la solution sous excel cela me va bien !
Voilà j'ai un problème avec mon tableau. J'ai beau cherché depuis ce matin sur différents forum, je ne trouve pas la réponse à mon problème. Je ne sais toujours pas si je dois utiliser une macro ou une simple fonction peut me suffire.
Je vous expose mon problème.
J'aimerai compter le nombre de ligne d'un tableau répondant au critère d'une autre colonne. Cela parait simple de premier abord mais si je fais appel à vous c'est que cela se complique, je vais donc tenter d'illustrer le problème :
J'ai donc plusieurs colonnes
A (identifiant) - ... - AH (date)
J'aimerai donc compter le nombre de ligne en A avant une certaine date rentrer en colonne AH.
Là ou cela se complique est que le tableau a plusieurs lignes fusionnées (exemple ligne 9 et 10 correspondent au même identifiant). J'ai donc pour d'auter raison du scinder les cellules correspondant à la date en AH pour faire des fonctions SOMMEPROD. Maintenant le problème est d'éviter les doublons.
Bref, un problème un peu compliqué donc je peux aiguiller car ce n'est pas facile à exposer.
N'hesitez pas à m'aider et me poser des questions.
Bien à vous
Elariana
P.S : je travail sous open office calc, mais si j'ai la solution sous excel cela me va bien !
A voir également:
- Libreoffice calc compter nombre de lignes
- Libreoffice - Télécharger - Suite bureautique
- Nombre de jours entre deux dates excel - Guide
- Partage de photos en ligne - Guide
- Comment mettre libreoffice en blanc - Guide
- Erreur 509 libreoffice calc ✓ - Forum LibreOffice / OpenOffice
13 réponses
Bonjour,
Un peu embrouillé tout ça.
Si mon interprétation est correcte il faut dénombrer les lignes qui répondent à deux conditions :
la date en colonne AH est antérieure à une date fixée (en $AG$3 par exemple)
et la cellule correspondante en colonne A n'est pas vide
Dans cette hypothèse on peut appliquer =SOMMEPROD((AH2:AH100<$AG$3)*(A2:A100<>""))
Attention avec les cellules fusionnées la cellule qui contient une valeur n'est pas toujours celle que l'on croit en fonction de l'alignement choisi.
Un peu embrouillé tout ça.
Si mon interprétation est correcte il faut dénombrer les lignes qui répondent à deux conditions :
la date en colonne AH est antérieure à une date fixée (en $AG$3 par exemple)
et la cellule correspondante en colonne A n'est pas vide
Dans cette hypothèse on peut appliquer =SOMMEPROD((AH2:AH100<$AG$3)*(A2:A100<>""))
Attention avec les cellules fusionnées la cellule qui contient une valeur n'est pas toujours celle que l'on croit en fonction de l'alignement choisi.
Cela répond en partie à ma question, car il me compte bien le nombre de ligne, le problème vient des cellules scinder. Je m'explique :
Pour un identifiant de la colonne A (identifiant), je peux avoir deux lignes fusionnés mais scindées en AH pour le champ date qui est donc mis en doublon. Cette formule proposée ne prend donc pas en compte mes doublons.
Pour un identifiant de la colonne A (identifiant), je peux avoir deux lignes fusionnés mais scindées en AH pour le champ date qui est donc mis en doublon. Cette formule proposée ne prend donc pas en compte mes doublons.
Bonjour tout le monde,
Pour un identifiant de la colonne A (identifiant), je peux avoir deux lignes fusionnés mais scindées en AH pour le champ date qui est donc mis en doublon. Cette formule proposée ne prend donc pas en compte mes doublons.
Donc ça revient à dire que seule la présence d'une date t'interesse....
=NB.SI(AH2:AH100;"<" & $AG$3)
eric
Pour un identifiant de la colonne A (identifiant), je peux avoir deux lignes fusionnés mais scindées en AH pour le champ date qui est donc mis en doublon. Cette formule proposée ne prend donc pas en compte mes doublons.
Donc ça revient à dire que seule la présence d'une date t'interesse....
=NB.SI(AH2:AH100;"<" & $AG$3)
eric
Non justement la présence la date est intéressante uniquement comme critère, car avec cette fonction proposée, je compte les lignes de la colonne AH (champ date) et donc cela en compte les doublons.
En fait mon tableau se constitue de la sorte
En colonne A j'ai mes identifiant. : La plupart du temps j'ai un identifiant pour une seule ligne, mais certaine ligne sont fusionné je me retrouve donc avec un identifiant pour deux lignes. Par contre la ligne n'est pas fusionné dans sa totalité, notamment au niveau de la colonne AH (champ date) ou les lignes ont été scindés pour permettre d'autres calcul.
Vous me suivez toujours ?
En fait mon tableau se constitue de la sorte
En colonne A j'ai mes identifiant. : La plupart du temps j'ai un identifiant pour une seule ligne, mais certaine ligne sont fusionné je me retrouve donc avec un identifiant pour deux lignes. Par contre la ligne n'est pas fusionné dans sa totalité, notamment au niveau de la colonne AH (champ date) ou les lignes ont été scindés pour permettre d'autres calcul.
Vous me suivez toujours ?
Merci de ton aide.
Alors j'ai simplifié le tableau pour résumer la colonne AH se trouve en J maintenant et l'identifiant qui m'intéresse en A B ou C au choix ce la ne change rien. J'ai fait un tableau général en bas à droite pour comprendre les différents calculs que j'entreprends. La ligne en rouge correspond au résultat sur lequel j'aimerai tomber avec une formule ou macro.
Lien openoffice calc :http://www.cijoint.fr/cjlink.php?file=cj201008/cijTx0yIWL.ods
lien excel : http://www.cijoint.fr/cjlink.php?file=cj201008/cij5yAA15M.xls
Alors j'ai simplifié le tableau pour résumer la colonne AH se trouve en J maintenant et l'identifiant qui m'intéresse en A B ou C au choix ce la ne change rien. J'ai fait un tableau général en bas à droite pour comprendre les différents calculs que j'entreprends. La ligne en rouge correspond au résultat sur lequel j'aimerai tomber avec une formule ou macro.
Lien openoffice calc :http://www.cijoint.fr/cjlink.php?file=cj201008/cijTx0yIWL.ods
lien excel : http://www.cijoint.fr/cjlink.php?file=cj201008/cij5yAA15M.xls
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Effectivement c'est une erreur de ma part, en A6 il faudrait 2009.
Mais plus loin dans le tableau (car celui-ci est un extrait) on peut trouver des codes avec 2010.
Mais plus loin dans le tableau (car celui-ci est un extrait) on peut trouver des codes avec 2010.
Non justement ils doivent être de 2, 3 et 4.
En fait la ligne 7 - 8 et 9 -10 représente deux conventions pour 4 dates. Le résultat 3,5,6 ne prend pas en compte les doublons.
J'espère être clair.
Merci pour ton aide
En fait la ligne 7 - 8 et 9 -10 représente deux conventions pour 4 dates. Le résultat 3,5,6 ne prend pas en compte les doublons.
J'espère être clair.
Merci pour ton aide
En comptant les codes en colonne C: entrer en M14
=SOMMEPROD(($J$6:$J$100<="30/06/2009"*1)*($C$6:$C$100<>""))
Suggestion pour M15:
=SOMMEPROD(($I$6:$I$11="oui")*($J$6:$J$11<="30/06/09"*1)*($F$6:$F$11))
Il est possible d'améliorer le tableau récapitulatif: en M13 entrer 30/06/2009 et mettre la cellule au format personnalisé mmm aaaa pour afficher juin 2009. Idem pour N13, O13 etc.
Dans les formules remplacer "30/06/2009"*1 par M$13.
Les formules sont ainsi "copiables" horizontalement.
=SOMMEPROD(($J$6:$J$100<="30/06/2009"*1)*($C$6:$C$100<>""))
Suggestion pour M15:
=SOMMEPROD(($I$6:$I$11="oui")*($J$6:$J$11<="30/06/09"*1)*($F$6:$F$11))
Il est possible d'améliorer le tableau récapitulatif: en M13 entrer 30/06/2009 et mettre la cellule au format personnalisé mmm aaaa pour afficher juin 2009. Idem pour N13, O13 etc.
Dans les formules remplacer "30/06/2009"*1 par M$13.
Les formules sont ainsi "copiables" horizontalement.
Super la formule fonctionne parfaitement. Merci beaucoup.
Maintenant pour avoir l'air moins bête, pourrais-tu me donner une explication à cette formule. Notamment sur la deuxième partie : *($C$6:$C$100<>""))
Concernant ta suggestion pour M15, il me semble que c'est la formule que j'ai mis dans la cellule non ?
Merci de ton aide l'ami
EDIT : finalement je n'arrive pas à la faire fonctionner dans mon tableau, je réessaye et vous tiens au courant
Maintenant pour avoir l'air moins bête, pourrais-tu me donner une explication à cette formule. Notamment sur la deuxième partie : *($C$6:$C$100<>""))
Concernant ta suggestion pour M15, il me semble que c'est la formule que j'ai mis dans la cellule non ?
Merci de ton aide l'ami
EDIT : finalement je n'arrive pas à la faire fonctionner dans mon tableau, je réessaye et vous tiens au courant
Super merci beaucoup de ton aide, la formule fonctionne cette fois parfaitement.
Pour ce qui est de la structure du tableau, j'ai en fait hérité de ce tableau, et je suis donc censé faire des tableaux intermédiaires pour réaliser des graphiques. Je pense à l'avenir en modifier la structure ou encore mieux l'integrer sur une base de donnée.
Voila merci pour tout
Pour ce qui est de la structure du tableau, j'ai en fait hérité de ce tableau, et je suis donc censé faire des tableaux intermédiaires pour réaliser des graphiques. Je pense à l'avenir en modifier la structure ou encore mieux l'integrer sur une base de donnée.
Voila merci pour tout
bonjour à tous
une question simple !!
je voudrais, sur ma colonne A, en partant de la dernière ligne (65536) remonter à la première ligne du dessus qui est renseignée (par ex ligne 1300) et mettre dans ma macro une variable : for i = 2 to 1300
le but final , en partant de cet exemple, est de filter différentes valeurs de la colonne A, de la ligne 2 à 1300 (ici). le nombres de lignes pouvant varier ...
ensuite, est-ce que je dois intégrer un nouvelle variable pour faire un filtre auto, en fonction de la valeur de ma cellule??
merci
une question simple !!
je voudrais, sur ma colonne A, en partant de la dernière ligne (65536) remonter à la première ligne du dessus qui est renseignée (par ex ligne 1300) et mettre dans ma macro une variable : for i = 2 to 1300
le but final , en partant de cet exemple, est de filter différentes valeurs de la colonne A, de la ligne 2 à 1300 (ici). le nombres de lignes pouvant varier ...
ensuite, est-ce que je dois intégrer un nouvelle variable pour faire un filtre auto, en fonction de la valeur de ma cellule??
merci
merci eric
j'ai une dernière question, je voudrais qu'il me copie les infos de chaque ligne (don i=i+1) mais j'ai tenté les Rows, range ou cells, mais il ne veut pas. la syntaxe ne doit pas être bonne ! !
Range(i, 26).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
c'est pour copier les infos de chaque ligne dans un new fichier
merci
j'ai une dernière question, je voudrais qu'il me copie les infos de chaque ligne (don i=i+1) mais j'ai tenté les Rows, range ou cells, mais il ne veut pas. la syntaxe ne doit pas être bonne ! !
Range(i, 26).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
c'est pour copier les infos de chaque ligne dans un new fichier
merci
Re,
[A1:A1300].AutoFilter Field:=1, Criteria1:=ActiveCell
Mais tu n'es pas obligé d'activer une cellule pour l'utiliser, c'est même une perte de temps dans la macro.
Par exemple si ton critère est en E1 (ligne 1 colonne 5) :
[A1:X1300].AutoFilter Field:=1, Criteria1:=Cells(1,5)
eric
edit: tu as changé ta question....
je verrais ça après manger
[A1:A1300].AutoFilter Field:=1, Criteria1:=ActiveCell
Mais tu n'es pas obligé d'activer une cellule pour l'utiliser, c'est même une perte de temps dans la macro.
Par exemple si ton critère est en E1 (ligne 1 colonne 5) :
[A1:X1300].AutoFilter Field:=1, Criteria1:=Cells(1,5)
eric
edit: tu as changé ta question....
je verrais ça après manger