Répérer et extraire une série de données

Bonjour,

J'ai dans une colonne A plusieurs séries de données allant de 1 à 12 et parfois moins et dans une autre colonne B, d'autres données. J'aimerai dans une colonne C seulement isoler les séries allant de 1 à 12 de la colonne A et copier les données en face de cette série de la colonne B dans une colonne D, et encore dans une autre colonne (par exemple E, isolée les éléments ne constituant par la série 1 à 12 de la colonne A et dans la colonne F, mettre les données en face[/Barrer]

Exemple

A B

1 98

2 20

3 100

4 40

5 20

6 444

7 330

8 220

9 333

10 4444

11 33

12 22

[b][b]1 11

2 0[/b][/b]

1 1111

2 3333

3 333

4 23

5 2

6 4

7 111

8 4444

9 22

10 333

11 4444

12 12

Avec cela je veux obtenir :

C D

1 98

2 20

3 100

4 40

5 20

6 444

7 330

8 220

9 333

10 4444

11 33

12 22

1 1111

2 3333

3 333

4 23

5 2

6 4

7 111

8 4444

9 22

10 333

11 4444

12 12

Et

E F

1 11

2 0

Y aurait il une formule me permettant de faire cela ?

Bonsoir,

Ne crois-tu pas qu'un fichier Excel serait plus indiqué pour illustrer ton propos ?

Salut Imer,

Bien le bonjour MFerrand! Que de bonnes nouvelles, j'espère!?

Un double-clic démarre la macro.

Do
    iStart = IIf(iRow = 0, 2, iRow + 1)
    For x = 1 To 12
        iRow = IIf(iRow = 0, 2, iRow + 1)
        If Cells(iRow, 1) <> x Then _
            Range("E" & Range("E" & Rows.Count).End(xlUp).Row + 1).Resize(iRow - iStart, 2).Value = Range("A" & iStart & ":B" & iRow - 1).Value: _
            iRow = iRow - 1: _
            Exit For
        If iRow = Range("A" & Rows.Count).End(xlUp).Row And x < 12 Then _
            Range("E" & Range("E" & Rows.Count).End(xlUp).Row + 1).Resize(iRow - iStart + 1, 2).Value = Range("A" & iStart & ":B" & iRow).Value: _
            Exit For
        If x = 12 Then Range("C" & Range("C" & Rows.Count).End(xlUp).Row + 1).Resize(12, 2).Value = Range("A" & iStart & ":B" & iRow).Value
    Next
Loop Until iRow >= Range("A" & Rows.Count).End(xlUp).Row

A+

9listes.xlsm (16.49 Ko)

C'est hyper chouette. Un grand merci !!! Je l'essaye

Bon, c'est un peu la première fois que j'utilise un code.

Je trouve votre fiche excel superbe.

Par contre, je ne sais pas comment l'adapter au mien.

J'aurai aimé savoir comment insérer les deux boutons complet et incomplet sur mon fichier (ou le remplacer par un bouton "proceed").

j'aurai également aimé savoir comment insérer le code pour que les calculs ne se fassent que sur une feuille donnée, pour quelques colonnes données.

Comment faire en sorte de faire un "reset" pour relancer la machine avec de nouvelles données.

Un très grand merci

Isabelle

Bonjour Imer et le forum

Par contre, je ne sais pas comment l'adapter au mien.
J'aurai aimé savoir comment insérer les deux boutons complet et incomplet sur mon fichier (ou le remplacer par un bouton "proceed").
j'aurai également aimé savoir comment insérer le code pour que les calculs ne se fassent que sur une feuille donnée, pour quelques colonnes données.

C'est pour cela que "MFerrand" demande le fichier,

bonne journée a tous

cordialement ferdinand

Bonjour,

Cela aurait été avec plaisir, sauf que le fichier sur lequel je travaille ne m'appartient pas....

Mais si vous me donniez quelques clefs, je pourrais peut être trouvé; Et puis je voudrais bien apprendre.

En fouillant sur votre site, j'ai vu qu'on pouvait créer un code en faisant Alt F11 puis en créant un module...

Alors j'en suis là....

Isabelle

Salut Isabelle,

très difficile de te répondre sans connaître la structure de tes feuilles : il peut y avoir autant de solutions que de situations et puisque tu parles de plusieurs feuilles et/ou colonnes, l'option "Boutons" me paraît compliquée.

Donc, ma chère Isabelle, tu vas prendre ton courage à deux mains et :

  • nous fabriquer un mini-fichier anonyme bidon reprenant exactement la structure de tes données (une dizaine de lignes par type de feuille avec en-têtes, nombre de colonnes, etc...) que l'on puisse se faire une idée ;
  • expliquer clairement toutes les options de travail que tu souhaites pouvoir appliquer à tes données sans oublier d'indiquer où et comment afficher les résultats.

Nous nous ferons alors un plaisir de t'aider au mieux.

A+

Bonjour,

Voila une petite extraction du fichier.

Dans le premier onglet : c'est là où l'on met nos données

Dans les deux autres onglets, j'ai indiqué en rouge les colonnes concernées (4 par onglets):

  • Date (colonne B, dans les 2 onglets)
  • Indications des séries de 12 (Colonne J dans onlget "IRR correlation" et Colonne H onglet "Yield correlation",)
  • Dates à indiquer pour les séries de 12 complets (Colonne U dans onlget "IRR correlation" et Colonne R onglet "Yield correlation",)
  • Date à indiquer pour les séries incomplets (Colonne AI dans onlget "IRR correlation" et Colonne AE onglet "Yield correlation",).

Si néanmoins, vous pouvez me donner quelques explications cela m'arragerait. Car je devraistout recopier dans l'autre fichier que j'ai.

Encore une fois, vraiment un grand merci pour votre aide.

Bien à vous

Isabelle

8data.xlsm (271.13 Ko)

Salut Imer,

bon, ben.., déso, je ne comprends pas grand'chose!

Je ne vois pas comment tu dispatches tes données!

A partir des données 'To provide', explique de façon plus détaillée comment tu travailles, exactement comme si j'étais un Béotien de première classe! : ce qu'il faut éventuellement effacer, recommencer, remplacer, compléter...

J'imagine qu'il ne faut dispatcher que les dates, les formules faisant le reste???

Ton monde n'est pas le mien et tu avoueras qu'il y a un gouffre entre ta demande initiale et la situation réelle.

A+

Bonjour Curulis

Je vais essayé de faire simple mais l'exemple que vous m'avez donné était très bien fait.

Dans le cas présent, vous trouverez ci-joint le fichier un peu modifié. Cela reste une extraction d'un fichier beaucoup plus lourd.

Dans l'onglet "data to provide", dans les colonnes I-J-K, N-O, R-S et V-W

Nous insérons des séries de données que nous obtenons par ailleurs.

Ces données sont propres à chaque projet et si nous pouvions avoir un bouton "reset" pour l'ensemble des ces colonnes seulement, cela serait très bien.

Une fois que nous avons rentré ces données,

Dans l'Onglet "Irr Correlation", nous retrouvons celles indiquées dans la colonne I J K et N 0 de l'onglet "data to provide" dans les colonnes C D H I de l'onglet "Irr Correlation" triées en fonction de leur date (Colonne B).

La colonne J permet d'identifier les séries de 12 mois où nous avons des données de "GTI Pyrano (colonne H).

L'idée ici, c'est d'avoir des séries de 12 mois complets avec des données GHI, POA, GTI Pyrano et GTI Soda.

Si nous avons 12 mois complets, nous souhaitons inidquer les dates de ces mois dans la colonne U (dates équivalentes à celles indiquées dans la colonne B).

pour "les séries incompletes" mais pour lesquelles nous avons des données de GTI Pyrano, nous souhaitons indiquer les dates dans la colonne AI.

Pour l'onglet Yield, c'est exactement le même principe, sauf que nous avons besoin d'avoir des séries de 12 mois complets où le "yield meter" et "Availability" sont renseignés.

Dans ce cas, nous renseignons les dates des séries complètes dans la colonne R et les dates des séries incompletes dans la colonne AE.

Pensez-vous que cela soit possible ? Et si oui comment ?

Un très grand merci

Isabelle

8data.xlsm (273.98 Ko)

Bonjour Isabelle,

oui, bien sûr : tout est faisable... quand on a compris.

Pas le temps maintenant.. Je regarde ça dès que je peux.

A+

bonjour à tous

tout est bien embrouillé

en règle générale, on ne ventile pas les données si elles sont bien présentées (une colonne=1champ et 1ligne=1enregistrement)

quand on part de cette situation, on fait des TCD et des GCD.

parfois des SOMMEPROD pour extraire des sommes ponctuelles.

mois complet ou non, ça n'a plus d'importance

(ou alors il faut expliquer le problème des mois complets/incomplets)

note: pas de bouton reset. Il suffit d'effacer la zone de saisie

mieux : ne rien effacer, saisir les nouvelles données sous les autres. Tu peux ainsi comparer les résultats

note 2 : on ne note pas le mois, on note une date au format jj/mm/aa car Excel sait alors faire plein de choses automatiquement

note 3 : il existe des techniques pour recréer des données manquantes dans une série

bon travail

Bonjour,

Merci pour votre réponse. Pourriez vous m'indiquez ce qe sont les TCD et GCD. Sinon, l'origine de la ventilation et pour cacluler des correlations.

Concernant le bouton reset, c'est vrai que cela serait très pratique car parfois nous avons des bases de données plus ou moins longues et si justement une personne recopie sur une base ancienne, cela peut fausser toute l'analyse si par exemple il reste un peu de données de l'autre analyse.

Voila,

Encore un grand merci pour le temps que vous passez.

re

tu ne connais pas Excel. et tu voulais te lancer dans VBA

il faut d''abord apprendre le menu Accueil avec "mettre sous forme de tableau"

ensuite le menu Insérer tableau Croisé Dynamique TCD

(tu feras des graphiques CD ou GCD ensuite

ensuite le menu Données / obtenir (dans 2 mois)

note : inutile d'effacer d'anciennes données pour en introduire de nouvelles. A condition d'avoir une colonne de dates jj/mm/aa (Excel comprend ces dates et possède des tas d'automatismes)

joins un fichier exemple simplifié à mort, 4 colonnes et 10 lignes et le résultat attendu doivent suffire (sinon, c'est que tu dois revoir tes idées)

à te relire

Bonjour,

En fait, mon problème se résume à celle énoncée au tout début.

Je souhaite pouvoir indentifier et extraire une série de 12 mois qui s'enchainent et pour laquelle j'ai des données.

Et extraire le restant des données dans un autre tableau.

Je crois pas qu'un tableau croisée me permettrait d'identifier et extraire une série de 12 mois qui s'enchaine.

Bien à vous

Isabelle

Bonjour,

En suivant d'un peu loin l'évolution de cette discussion, il m'a semblé que la question portait sur le transfert de données d'une feuille vers deux autres feuilles selon certaines conditions...

Ce type de question se règle plutôt facilement dès lors que les données sont clairement identifiées et les conditions définies exhaustivement pour qu'il n'y ait aucune ambiguïté.

Il ne s'agit ensuite que de trouver des modalités pour réaliser la chose de la façon la plus économique...

En principe, si la discussion traîne, c'est que certains éléments manquent, ou manquent de précision !

J'ai donc été regarder de plus près le fichier...

1) D'abord feuille Data... : les dates figurent en I, N, R,V. Il y a alignement des dates pour I, N et V, mais R déroge. Pourquoi ? S'il s'agit d'une extraction de provenance extérieure pourquoi ne pourrait-on les aligner lors du recueil ?

Ce faisant on faciliterait les opérations ultérieures.

2) Le passage vers les deux autres feuilles est actuellement réalisé par formules... solution qui me paraît effectivement peu économique et assez lourde. On reproduit les données date + J K O de Data dans Irr... et date + S W de Data dans Yeld... (je ne tiens pas compte des champs calculés, mais uniquement des champs provenant de Data).

Cette phase est redondante, et si l'on envisage un transfert de données par macro, il convient donc d'en faire l'économie, et de viser le transfert vers les emplacements définitifs...

3) La condition première me semblait être de transférer des séries annuelles complètes, avec des mois 1 à 12 (janvier à décembre), or on voit dans Irr et Yeld une série d'avril à mars !

Il faut donc déjà confirmer ou infirmer cette première condition, et en outre indiquer clairement si l'on ne transfère que des séries de 12 mois complètes, et donc que les séries de moins de 12 mois ne sont pas à transférer.

4) La 2e condition est que les séries complètes de 12 mois comportent des données pour tous les mois, sans quoi elles seront à données incomplètes... La distinction doit être claire entre séries chronologiques complétes annuelles et séries à données complètes ou incomplètes.

Et confirmer si le caractère données complètes s'entend tous les champs devant comporter des données, soit J K O d'un côté, et S W de l'autre (réf. colonnes de Data), ou seulement certains à considérer obligatoires ?

Selon ce que j'avais cru comprendre, il fallait que des séries soient complètes (12 mois de l'année) pour être transférées (on ne transfère donc pas les autres) et pour celles transférées, elles iraient à deux emplacements distincts selon que les données sont complètes ou non.

Mais cela paraît encore incertain ! Il y a donc lieu de reformuler les conditions de façon que tous les cas possibles soient couverts.

La question portera ensuite sur l'ajustement des conditions de départ dans lesquelles on opèrera, de façon à pouvoir mettre en oeuvre des méthodes permettant une réalisation rapide et efficace.

Sous réserve de confirmation des éléments demeurés incertains, qui peuvent toujours modifier l'appréhension de la question, je pense qu'il convient d'opérer à partir de Data, sans ajout des colonnes calculées H, M, Q, U, mais avec alignement préalable des dates des colonnes dates, et sans transit vers B, C, D, H (Irr) ou B, D, E (Yeld).

Cordialement.

Bonjour Ferrand,

Merci pour vos questions.

En effet, vos remarques sont très justes et je viens de modifier le fichier pour essayer de le rendre plus claire et mettant manuellement les résultats souhaités..

Sinon pour répondre aux questions :

Question 1 :

dans l'onglet "data to provide".

Les colonnes I J K proviennent d'une même source. Avec cette source nous avons la correspondance date. GHI et POA.

Les colonnes N-O ; ce sont des données provenant d'une autre base. Les dates indiquées, ici dans le fichier excel que vous avez, sont à titre indicatif, mais peuvent être très différentes d'une base à une autre suivant la source de données que nous avons (parfois nous avons des bases de données que sur l'année 2017 par exemple).....

Idem pour les colonnes R-S et V-W.

En tout nous avons 4 bases de données différentes avec "dates et données" propre à chaque base.

Normalement, toutes les cellules en jaune doivent être effacées après chaque simulation (date compris- seul le fait d'indiquer des dates (ou le formatage date" dans les colonnes indiquant "date " reste).

Par contre, justement, le réalignement par ordre de date des données se fait dans les onlgets "Irr Correlation" et Yied Correlation".

Ci-dessous le tableau des correspondances:

Données des colonnnes J K et O dans "data to provide" : sont retriées par date (Année&Mois) dans les colonnes "C et D" puis "H" de l'onglet "Irr Correlation"

Données des colonnnes S et W dans "data to provide" sont retriées par date (Année&Mois) dans les colonnes "D et E de l'onglet "Yield correlation."

Question 2: Les bases de données sont assez longues et variables, parfois completes et parfois non avec des mois manquants. la taille minimale d'une base est 12 données (une année complete) et maximale de 200 données (pour le moment) .

L'objectif ici c'était de faciliter la tache de celui qui entre les données en concentrant sur une même feuille, toutes les entrées et en lui évitant d'avoir à aller chercher une date pour mettre la donnée correspondante en face.

Dans le premier onglet : à partir du moment où chaque donnée à une date, il peut mettre "date & données" dans l'ordre qu'il souhaite, elles seront retriées par la suite.

Question 3. pour nous ce qui compte ces d'avoir une année complete en terme représentatif. c'est à dire 12 mois qui se suivent. C'est 12 mois ne commencent pas forcément au 1er Janvier pour se terminer au 31 décembre.

Si on prend par exemple l'onglet "Yield correlation".

La colonne H permet d'identifier les séries complet et celles qui sont incomplete. C'est que j'ai une cellule en rouge avec 12 dedans, je sais que j'ai une série complete. Les séries completes seront utilisées dans colonnes R-S-T

Dans le fichier joint par exemple

La colonne H m'indique que j'ai 5 séries completes :

" de janvier 2005 à Décembre 2005"

Puis février 2014 à Janvier 2015

Puis Fev 2015 à Janv 2016

PuisFev 2016 à Janvi 2017

Puis Fev 2017 à Janvi 2018.

L'objectif, c'est que les dates correspondantes à ces séries soient indiquées dans la colonne R (je viens de modifier le fichier pour que cela s'affiche ainsi). mais l'objectif c'est, par une formule, que cela se fasse automatiquement.

Les cellules avec 0 ne sont pas utilisable.

Les dates des autres cellules (ne faisant pas partie d'une série de 12 mais utilisables) seront indiquées dans la colonne AE.

Ici par exemple : c'est janvier 2006 à Aout 2006

puis fevrier 2018 et mars 2018.

L'idée c'est aussi d'automatiser cette étape.

Même principe pour l'onglet "Irr correlation".

Donc les colonnes où j'aimerai "automatiser" l'entrée des données sont :

Onglet IRR correlation : colonne U et AI

Onglet "Yield correlation : colonne R et AE

Question 4 :

Ce sont en effet des séries chronologiques.

Si je reprend mon onglet Yield correlation,

Pour qu'un mois soit considéré comme "utilisable", il faut en effet que pour ce mois, me soit renseingé une donnée "Yield" (colonne D) et une donnnée Availability (colonne E). Si ce n'est pas le cas, alors cela me sera informé dans la colonne H par un 0.

Ainsi, si une date est utilisable, elle me sera indiquée dans la colonne H par une valeur supérieure à 0.

J'espère que cela est un peu plus claire.

Encore merci pour tout;

Je vous joins le fichier légèrement modifié.

9data.xlsm (273.68 Ko)

Re,

Excuse-moi mais si les conditions changent et deviennent mouvantes par rapport au post initial, je ne serai pas partant.

En ayant des séries chronologiques successives de février à janvier, on a en même temps simultanément les séries annuelles complètes de 2015, 2016 et 2017... Quels critères font privilégier tel ou tel choix ?

Et si d'autres part on retient des séries incomplètes en nombre de mois, les critères font défaut, une série de 2 mois est tout aussi incomplète qu'une série de 8...

Je vais préciser les bases sur lesquelles je serais intéressé à intervenir :

1) D'abord des critères formulés de façon rigoureuse, permettant de déterminer à coup sûr ce qu'on transfère et ce qu'on ne transfère pas, et permettant d'aboutir à une solution dans une configuration de données, et une seule.

2) Travail préalable de réalignement des dates à opérer s'il y a lieu exclusivement sur la feuille Data, sur laquelle seront ensuite définies et qualifiées (complètes ou incomplètes...) les séries à exporter sur les autres feuilles.

[Et je peux préciser que je suis intéressé à tester l'export par blocs de données entiers constituant les séries... ]

3) Export des séries retenues sur leurs emplacements définitifs, soit sans retravail sur les feuilles destinataires, disparition des formules, hormis celles relatives aux champs calculés à partir des champs exportés, sachant qu'on peut prolonger l'export par le calcul des champs ajoutés, sans formules, ou l'insertion des formules à la suite de l'export

[Et l'autre intérêt pour moi de ton opération est de tester quelles méthodes ou variantes de méthodes permettent d'aboutir à la durée d'exécution la plus réduite de tout cet ensemble ! ]

Soit passer de la situation préalable sur Data, à la situation finale sur les deux autres feuilles, sans transiter par des situations intermédiaires.

Cordialement.

re à vous

salut MFerrand au passage

je ne comprends toujours pas pourquoi on est dans une situation aussi complexe

si tu nous en disais plus sur le BUT de ce fichier

  • de quoi il parle (élèves, rejets polluants, surface bétonnée, inondations, longueurs de skis...)
  • quel résultat il doit sortir (comparaison avec un budget ou un objectif, bilan comptable, bilan énergétique, taux de radiations...)

note : pour faire des simulations, on n'efface pas les données précédentes, on ajoute les nouvelles données de la nouvelle simulation sous les précédentes

(à condition d'avoir une colonne "Numéro de simulation"

car Excel comprend

il peut même te faire des comparaisons de simulations.

à te relire

Rechercher des sujets similaires à "reperer extraire serie donnees"