Compter à partir d'une certaine cellule jusqu'à une cellule vide

1

J'essaie de créer une formule dynamique qui compte toutes les lignes de la cellule D3 vers le bas jusqu'à ce qu'une cellule vide soit atteinte. Je souhaite pouvoir ajouter de nouvelles données chaque jour et que la plage soit automatiquement mise à jour et inclure les données les plus récentes pour donner une série de sous-totaux et de moyennes.

Quelle est la formule pour avoir une plage qui inclut des cellules de D3 jusqu'à la prochaine cellule vide qui sera mise à jour et inclura de nouvelles données lorsque la dernière cellule vide est remplie avec les données d'un nouveau jour?

Charlie
la source
Pouvez-vous préciser ce que vous essayez de faire et où vous avez besoin de range? Essayez-vous de définir une plage nommée dynamique que vous pouvez utiliser dans d'autres formules?
Raystafarian
Dans la colonne CI, vous avez 2 lignes d’en-têtes, puis les données commencent en D3. Celles-ci sont ajoutées au jour par jour car elles affichent le total des téléchargements pour chaque jour. Les données atteignent actuellement D297 avant qu'il y ait une boîte totale dans D303. Je veux avoir une plage afin que le total soit mis à jour chaque fois qu'une cellule entre D298 et D302 est remplie (c'est-à-dire non vide). Au fur et à mesure que de nouvelles données sont ajoutées, la zone de totalisation diminue lorsque j'insère de nouvelles lignes pour contenir davantage de données. Je souhaite donc étendre la plage en haut de la zone de totalisation (c'est-à-dire une cellule au-dessus de la zone totale).
Charlie
Votre boîte totale est une somme ou un nombre de cellules contiguës non vierges?
Raystafarian
Votre question n'est pas claire: devez-vous compter les cellules (votre première phrase) ou devez-vous modifier les données non vides?
Raystafarian
Je veux avoir une plage nommée qui contient toutes les cellules contenant des données dans ma colonne D allant de D3 jusqu’à une cellule vide. Cela devrait ensuite créer une formule dynamique qui devrait inclure de nouvelles données ajoutées quotidiennement
Charlie

Réponses:

2

Laissez-moi m'assurer que j'ai bien compris:

  • La colonne D contient beaucoup de données que vous souhaitez totaliser.
  • Les lignes 1 et 2 sont des lignes d'en-tête et contiennent du texte.
  • Les lignes 3 et inférieures, dans la colonne D, contiennent les valeurs à additionner.
  • Au-dessous des données à totaliser, il y a une cellule dans laquelle vous souhaitez que le total soit placé.
  • Il peut y avoir ou non des cellules vides entre les données à totaliser et la cellule qui affiche les données.

Compte tenu de ce qui précède, si vous n'avez pas réellement besoin d' une plage nommée à d'autres fins, la formule est assez simple:

=SUM(INDIRECT(CONCATENATE("D3:D",CELL("row")-1)))

Procédure pas à pas:

  • SUM additionne toutes les valeurs numériques (en excluant automatiquement les blancs et les valeurs non numériques) dans les cellules spécifiées.
  • INDIRECT vous permet de créer une référence de cellule via une formule.
  • CONCATENATE vous permet de joindre des portions de chaînes et les résultats de formules en une seule chaîne.
  • "D3: D" est la première partie de la référence que nous voudrons éventuellement transmettre à SUM.
    • Ceci identifie une plage de cellules commençant à D3 et se terminant à une autre cellule de la colonne D.
    • Comme elle est fournie sous forme de chaîne au lieu d'une référence de cellule réelle, cela ne sera pas modifié si la cellule est déplacée ou copiée - la plage pointera toujours vers la colonne D et commencera toujours à la ligne 3.
  • CELL vous permet d'obtenir des informations sur une cellule. Ici, nous obtenons le numéro de ligne de la cellule en cours. C'est ce qui permet à la formule d'ajuster automatiquement le numéro de ligne, peu importe où elle est placée.
  • -1 est utilisé pour soustraire 1 du numéro de ligne renvoyé par CELL, référençant ainsi la ligne au-dessus de la cellule en cours.

Pour le D303, ce sera effectivement le même que:

=SUM(D3:D302)
Iszi
la source
0

Je pense que ma réponse est la suivante: dans Excel 2010, comment créer un modèle avec une fonction qui se termine automatiquement dans la dernière cellule contenant des données? peut être utile.

Je recommande fortement les tables si vous le pouvez, elles ont également une fonction intégrée dans le nombre total de lignes.

Sinon, retomber sur la plage nommée dynamique.


EDIT
Comme indiqué précédemment, vous souhaitez pouvoir utiliser une plage nommée dynamique en tant que plage source pour un tableau croisé dynamique:

Cela nécessite une légère modification de la plage nommée dynamique. Tout d'abord, vous devez utiliser votre plage pour inclure les titres de colonne. Le tableau croisé dynamique comporte donc des en-têtes. Vous devrez ensuite l'étendre dans toutes les colonnes pertinentes.

=OFFSET(Sheet1!$F$1,0,0,COUNTA(Sheet1!$F$1:$F$12),COUNTA(Sheet1!$F$1:$G$1))

Ici, vous pouvez constater qu'au lieu de terminer la formule avec, ),)nous avons ajouté une référence de colonne qui renvoie la plage de colonnes en couvrant la première ligne de toutes les colonnes requises.

Lorsque vous insérez un tableau croisé dynamique, utilisez le nom de cette plage.


NOTES L'
emballage du OFFSET dans un COUNT de toute sorte ne fonctionnera pas si vous voulez utiliser la plage nommée dans un tableau croisé dynamique, mais ce n'est pas nécessaire, vous pouvez simplement exécuter le décompte sur le tableau croisé dynamique.

Si vous et vos utilisateurs utilisez tous 2007 ou une version ultérieure, utilisez une table à la place, elle restera dynamique même si vous ajoutez plus de colonnes et ne vous obligera jamais à entrer et à augmenter la hauteur de la plage nommée. Vous pourrez toujours renvoyer le tableau à un tableau croisé dynamique.

Travail d'horloge
la source
ok je pense que tout ce dont j'ai besoin est de modifier la fin de cette formule: = OFFSET (SheetName! $ A 2,0,0,0 $, COUNTA (SheetName! $ A $ 2: $ A $ 500)), afin que le compte à rebours passe de A2 jusqu'à la prochaine cellule vide. Cela me donnera la plage dynamique que je recherche. J'ai donc besoin de la formule "compter jusqu'à la cellule blanche" pour remplacer l'A500
Charlie le
Cette formule est la chose la plus proche que je connaisse d'un vrai next blank rowcalcul. La seule chose qui n’est pas dynamique, c’est que vous avez défini une plage maximale. Je ne crois pas qu'il soit possible de le rendre vraiment dynamique, sauf si vous utilisez VBA ou quelque chose de trop ésotérique à ma connaissance. Quelle est la taille de votre plage de données? Il suffit de régler le 500 pour qu’il soit supérieur au maximum que vous pensez pouvoir atteindre. Si vous ne pouvez vraiment pas travailler avec une plage donnée comme celle-ci, je recommande de nouveau les tableaux Excel, car ils seront vraiment dynamiques.
CLockeWork
Vous aboutiriez donc à une formule qui ressemblerait à ceci: = COUNTA (MyRange) où le nom MyRange créerait une plage allant de A2 (ou le résultat de votre choix) au premier espace vide de cette colonne, où il ne sera pas supérieur. que la plage maximale indiquée à la fin de la formule de plage nommée
CLockeWork
Ok, j'ai maintenant une formule Counta (D3: D305) qui sélectionne toutes les cellules que je veux dans ma gamme. Comment convertir cette formule en une plage?
Charlie
Créez une plage nommée comme celle-ci =OFFSET(SheetName!$D$3,0,0,COUNTA(SheetName!$D$3:$D$400),)(notez le D400; il n’ya pas de mal à ajouter un peu de marge de manoeuvre), alors votre formule est =COUNTA(RangeName)la formule La somme de la somme ne serait pas une plage, mais si vous voulez pouvoir appeler le résultat de la formule n'importe où, puis enregistrez-la sous la forme d'une formule nommée, ou transformez cette plage en une plage nommée entière =COUNTA(OFFSET(SheetName!$D$3,0,0,COUNTA(SheetName!$D$3:$D$400),))=MyNamedFormula
:,