Sélectionner n enregistrements non vides

Bonjour,

Malgré mes recherches, je n'ai pas trouvé de réponse à mon problème

Je cherche à calculer des moyennes mobiles sur une liste verticale

Le problème c'est qu'il y a parfois des cellules vides dans la liste

Il faudrait donc une formule (dans l'idéal pas de VBA) pour sélectionner n enregistrements non vides

Par exemple dans ce fichier la formule =MOYENNE(D$64:DECALER(D$64;$C12-1;0)) ou plus simplement MOYENNE(D64:D70) sélectionne les 7 dernières cellules.

Or, il ne s'agit pas d'une moyenne mobile 7 car il y a seulement 5 enregistrements et 2 vides

J'avais pensé à utiliser la fonction décaler de n cellules vides (obtenus par NB.VIDE()

Mais cela ne fonctionne pas si des cellules vides se trouvent dans les n enregistrements à décaler

Avez-vous svp une solution ?

Merci d'avance

Cordialement

Nicolas

Bonjour,

tu as essayé moyenne.si ?

P.

Bonsoir

J'ai essayé moyenne.si mais je n'ai pas réussi à mettre dans le critère un nombre d'enregistrements non vides

C'est possible ?

Cordialement

Bonsoir,

D'abord la fonction MOYENNE ne prend pas en compte les cellules vides ou contenant du texte, il n'y a donc aucun problème qui fausserait la moyenne lié aux cellules vides sur une période. Relire l'aide sur les fonctions qu'on utilise, cela peut servir !

Ensuite tu fais des moyennes sur des périodes variables croissantes ! Je ne sais dans quel but, mais rien à voir avec une moyenne mobile !

Es-tu sûr de savoir ce que tu fais ?

Je sais que la fonction MOYENNE ne prend pas en compte les cellules vides

J''avais bien lu merci mais ça ne règle pas mon problème

Il n'y a pas de tri croissant. Ce sont des valeurs qui seront actualisés chaque jour.

Donc il s'agira bien de moyennes mobiles (sur les 7, 20, 50 derniers enregistrements)

Peut etre n'ai-je pas été clair dans ma question.

Je souhaiterais une moyenne sur les 7 premiers enregistrements non vides de la liste

Comme la moyenne ne prend pas en compte les cellules vides j'ai dans mon exemple une moyenne de 5 cellules alors que j'en voudrais 7.

En d'autres termes, comment sélectionner les x premiers enregistrements non vides de la liste ?

Merci

Ton problème n'a aucun sens. Une moyenne mobile est toujours liée à une série chronologique, c'est une méthode de lissage de certaines composantes des variations de la série pour en mettre d'autres en évidence...

Quelle que soit la période chronologique unitaire sur laquelle on applique un calcul de moyenne mobile des données enregistrées, si une donnée manque dans la période elle ne peut évidemment pas être remplacée ! Elle ne peut qu'être supposée se confondre à la moyenne calculée, ce qui est un moindre mal. Si tu te mets à décaler sous prétexte que des données manquent, ce n'est plus une impécision, c'est un biais que tu introduis qui n'aura pour effet que de rendre les résultats faux et inutilisables.

Bonjour,

Dans l'échantillon, on a en moyenne 0,3% de données manquantes.

Pourquoi ne pas utiliser la valeur n-1 quand une cellule est vide ?

Evidemment, tout dépend de la précision recherchée.

Cdlt.

Merci Jean Eric,

En fait mes données seront actualisées chaque jour par Reuters

Et quelquefois, Reuters intègre une ligne pour samedi et dimanche (dans ces cas là, les cellules sont vides ce qui fausse mes moyennes mobiles.

Pour MFerrand, je dois calculer des croisements de moyennes mobile (MM7 vs MM50 par exemple sur une même donnée)

Je dois donc neutraliser les données vides des samedi et dimanche.

Re,

J'avais bien compris la chose. Je me demandais simplement si tu avais vraiment besoin d'autant de précision dans tes calculs.

Tu fais ton calcul manuellement, tu prends ma proposition et tu analyses les écarts. Les écarts sont-ils significatifs ?

Ce que j'ai proposé, en intégrant une formule qui récupère la valeur n-1, peut être adapté.

A savoir supprimer purement et simplement les cellules vides (attention aux valeurs = 0 !?) . Surtout, si les cellules vides correspondent à des jours non-travaillés (weekends et jours fériés).

Mais après, on en revient aux remarques de MFerrand (que je salue).

Il y a une expression en métropole pour qualifier la chose.

Cdlt.

La question est un problème de méthode : soit les samedis et dimanches doivent être intégrés dans la série, soit non. Une fois la méthodologie clairement établie et justifiée, on peut calculer.

A calculer n'importe comment, sans étayer solidement les raisons de la méthodes utilisées, c'est ainsi qu'on fait des statistiques qui permettent de justifier tout et son contraire.

"Croisements de moyennes mobiles", ça c'est une notion nouvelle en statistique ! Une moyenne mobile, c'est un filtre, pour filtrer une tendance ou une autre. Qu'on en fasse plusieurs pour faire ressortir des tendances distinctes, c'est logique, c'est une façon en quelque sorte de "désimbriquer" des tendances fusionnées dans la série brute. Je ne vois pas bien ce qu'on peut "croiser" vu que l'action consisterait plutôt à "décroiser". Mais ça c'est pas grave !

Ce qui importe, ce sont les choix de méthode préalables, et qu'on ne perde jamais de vue qu'à ce stade on ne fait qu'émettre des hypothèses qui seront à valider par les résultats d'autres méthodes d'analyse (là "croiser" ou "recouper" peut s'appliquer !)

Cordialement.

Bonjour MFerrand,

J'ai écrit une connerie

Cdlt.

Salut !

Je n'en sais rien, mais a-priori non !

Je n'ai pas lu ton intervention avant de lâcher la mienne...

Et on ne parle pas exactement de la même chose !

On peut essayer de "croiser" !!!

Oui j'ai besoin d'une totale précision (Ces croisements de moyennes mobiles me donnent des signaux qui doivent être précis)

Et oui, je dois neutraliser les cellules vides afin d'avoir le nombre exact de données à moyenner. C'est d'ailleurs l'objet de ma demande

Vous pouvez vous interroger sur le bien fondé de cette dernière, mais j'ai un problème de formule, pas un problème de méthode.

La méthode n'a jamais posé de problème. D'ailleurs c'est celle qu'utilise Reuters.

Quant aux croisements de moyenne mobile, c'est un des indicateurs le plus utilisés

Trêve de digression, enfin j'espère...

Pour en revenir à nos moutons, ma formule de la moyenne mobile 21 me donne 0,4579 (car elle s'établit su la plage D24:D44)

Je devrais obtenir 0,4681 en neutralisant les 25 et 28 mars (séances sans bourse).

La plage devrait être D24:D46 ou j'aurai bien 21 cellules non vides. Ce résultat est confirmé par Reuters

Merci de votre aide


Il faut que je réduise le fichier pour l'envoi...

11classeur2.xlsx (44.40 Ko)

Evidemment ! Il n'y a que des financiers pour.... (pas difficile de poursuivre ma pensée)

Tu m'excuseras de ne surtout point participer, mais outre que je ne participe pas quand je considère qu'une démarche n'est pas fondée, je risquerais de contribuer à fournir des outils générateurs de catastrophes de tous ordres à des gens qui en sont plus que coutumiers (et au bénéfice desquels il me semble que la célèbre citation du curé Meslier a fait l'objet d'adaptation d'assez longue date mais qui mériteraient même d'être actualisées...)

- Relire l'aide sur les fonctions qu'on utilise, cela peut servir

- Es-tu sûr de savoir ce que tu fais ?

- Ton problème n'a aucun sens

- A calculer n'importe comment, sans étayer solidement les raisons de la méthode utilisées, c'est ainsi qu'on fait des statistiques qui permettent de justifier tout et son contraire.

- Evidemment ! Il n'y a que des financiers pour....

Voilà en quelques phrases les douceurs envoyées par MFerrand à une question simple sur Excel (c’est bien le but de ce forum, non ?)

Et après ces agressions verbales, c’est au tour du jugement de valeur, du procès d’intention pour finir sur la condescendance.

Alors pitié MFerrand, merci comme vous dites de ne surtout point participer… parce que vous me faites perdre mon temps à défaut d’avoir des solutions.

Et puisque vous êtes un sacré donneur de leçon, permettez-moi de vous rappeler les règles du forum. Il y a un passage sur la politesse… Comme vous le dites si bien : je cite : « cela peut servir »

Il est vraiment désolant que ces "apprentis sorciers" de la finance "de haute volée" fassent toujours autant preuve d'arrogance après des années de crise qui auront couté des millions d'emplois dans le monde!

Pas une semaine sans un nouveau scandale financier impliquant ces truands en col blancs qui savent si bien vous vendre leurs "solutions" dans leurs agences!!!!! Par contre quand ils ont fait trop de bêtises, les politiques de tous bords qui sont à leur solde sont là pour les sauver avec notre argent!

Bref, désolé de faire encore "une digression" Nico13 mais il faut remettre l'église au milieu du village. C'est facile de prendre les gens de haut en se faisant passer pour la victime, mais la roche tarpéienne est proche du Capitole!

Sinon pour ton fichier (qui sert sûrement à créer un outil pour enrichir les déjà riches) il n'y a pas de solutions simple. Il faut combiner un compteur, une recherche verticale et un NBVAL pour arriver au bon nombres d'itérations voulu.

A+

Bonjour,

Une dernière tentative à tester pour les calculs.

On supprime les cellules vides.

Cdlt.

Private Sub DEMO()
    Application.ScreenUpdating = False
    Set ws = ActiveSheet
    Set rng = ws.Range("D64:H1063")
    On Error Resume Next
    Set rng2 = rng.SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then rng2.Delete
    Set rng2 = Nothing: Set rng = Nothing: Set ws = Nothing
End Sub

Et puisque vous êtes un sacré donneur de leçon, permettez-moi de vous rappeler les règles du forum. Il y a un passage sur la politesse… Comme vous le dites si bien : je cite : « cela peut servir »

Pleinement d'accord avec toi sur le respect des règles de politesse : de façon que je considère succinctes, les règles du Forum recommandent d'user des civilités en usage dans notre société lorsque l'on amorce une discussion et au fil de son déroulement, ce qui est bien naturel et ne constitue nullement une contrainte, car sans cela il deviendrait difficile d'établir une relation et toute discussion deviendrait vite impossible.

Et je te remercie de produire un échantillon réduit d'expressions que j'ai utilisées, même détachées de leur contexte, car cela montre bien qu'au-delà de la politesse formelle élémentaire je respecte (terme qui ne me convient que partiellement car je ne le prends pas comme une obligation) des règles un peu plus étendues : pas d'insultes (tu n'aurais manqué de les reprendre s'il y en avait), pas de mise en cause de la personne en tant que telle, débat centré sur les questions soumises à la discussion (qui peut être vif si des désaccords sur l'analyse ou les solutions apparaissent, ce qui n'a rien d'anormal et fait souvent avancer les choses), sans pour autant censurer ses opinions, aussi bien techniques (cela apporte de la diversité) que plus larges (aucune technique n'est neutre et toutes peuvent être diversement connotées socialement, et nous ne sommes pas dans une bulle hors de la société), sans que cela me détourne de l'aspect technique de la question.

J'avoue que je peux volontiers me laisser aller à un peu de provocation (je pense utile d'essayer de susciter auprès de mes concitoyens de la réflexion qui puisse s'écarter un peu des sentiers battus...) mais suffisamment bien enveloppée (j'oserais dire) pour ne pas déroger ouvertement aux règles ci-dessus. Et d'ailleurs, tu n'en cites pas ! C'est bien un signe...

Pour en revenir à la question (avant de quitter définitivement ce sujet), je me suis penché un peu plus qu'il n'était apparu sur le document que tu as livré, court mais il y aurait énormément de choses à en dire, qui dépassent là très largement le cadre du sujet, en deux mots cependant (car il est toujours bon d'élargir l'horizon de sa réflexion) : les analyses de type système (ou systémiques, bien que certaines ne se réclament pas de cette doctrine), qu'elles portent sur des domaines mécaniques, physiologiques, sociaux, etc. mettent en évidence des phénomènes de rétroaction, utilisés pour générer une régulation du système, ton document fait par contre apparaître comment des outils statistiques sont utilisés pour produire une amplification de tendance, effet totalement dérégulateur. Cela se traduit sans doute par ce qu'on appelle vulgairement spéculation, mais l'intérêt est de voir qu'on a affaire à un système qui s'auto-dérégule et qui ne peut donc être régulé que de l'extérieur du système...

A par ça, j'ai noté la signification de "croisement" dans le jargon de métier, et j'ai aussi noté que mes considérations statistiques sur lesquelles tu es passé un peu rapidement en les ignorant, étaient confirmées (logique, je n'ai pas inventé ce que j'ai dit, et les méthodes mises en oeuvre ne datent pas d'aujourd'hui).

Il est donc bien établi que ton calcul porte sur une série chronologique et que l'unité de temps est le jour de cotation. Les jours qui n'en sont pas doivent être éliminés de la série, les jours qui en sont non... Ton problème n'est donc pas bien compliqué, et remettre sur pieds manuellement une série utilisable, il y a longtemps que tu en aurais terminé...

Merci Jean Eric

Rechercher des sujets similaires à "selectionner enregistrements vides"