IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comptage double colonnes liées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Météorologue
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Météorologue
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut Comptage double colonnes liées
    Bonjour à tous,

    Suite à mes recherches infrutueuses sur le forum et google je viens à vous.

    J'ai une macro de 300 lignes qui marche à la perfection qui consolide des fichiers de données, fait un tas de calcul sur des données météo au niveau tempé, précip etc...
    A présent je m'attaque au vent.

    Voici comment est articulé mon classeur.
    Une feuille "paramètres", une feuille "clim_mensuelle_01" et une troisième "clim_mensuelle_02". Ensuite chaque feuille "Jour1", "Jour2"... contient les respectivement données météo de chaque jour.

    Objectif :

    J'essaie de créer une rose des vents grâce au graphique type radar. Mais avant tout j'essaie de créer un tableau de valeur sur chaque feuille "Jourx" pour faire mon graph.

    J'aimerai l'articuler comme suit :
    Pour chaque direction, le poucentage de vent compris entre 1.39 et 4.4m/s
    Pour chaque direction, le poucentage de vent compris entre 4.4 et 8 m/s
    Enfin, pour chaque direction, le poucentage de vent sup à 8m/s.

    Avec le Nord compris entre 348.75° et 11.25°, le NNE 11.25° et 33.75°, NE entre 33.75° et 56.25°...etc

    Les données :

    J'ai deux colonnes : en A la direction qui est un nombre en degré (ex :280), en B la vitesse (ex : 3,4) classé par date (chaque minute a sa ligne).
    Au total j'ai 1440 lignes de données.

    Problématique :

    Pour un vent compris entre 1.39 et 4.4 m/s, combien de fois j'ai une valeur de vent comprise entre 348.75 et11.25, puis entre 11.25 et 33.75...etc (16 valeurs de direction en tout)


    J'ai tenté le nb.si, les filtres, le tri mais je n'arrive à rien.
    La seule solution que j'ai trouvée mais qui fastidieuse :
    Filtrer les colonnes, copier le tableau, le coller ailleurs faire un comptage tout ça pour une seule direction.
    Avec 16 directions par feuille et 31 feuilles la macro va passer du temps dessus...

    Question un peu hors sujet. Je n'y connais rien en base de donnée, mais serait-ce plus "facile" si les donnée étaient dans une bdd ?

    J'essaierai de poster le classeur prochainement.

    Je remercie d'avance ceux qui ont lu mon long post en entier ; )
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Alors je précise tout de suite que je ne maîtrise pas vraiment les fonction compliquées d'Excel du genre SOMMEPROD() mais je pense que c'est vers ce genre de formule que tu vas devoir te tourner.
    Cette formule donne la moyenne des degrés N pour >348,75 et <11,25 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SOMMEPROD(A2:A1441*(A2:A1441>348,75))/NB.SI(A2:A1441;">"&348,75)+SOMMEPROD(A2:A1441*(A2:A1441<11,25))/NB.SI(A2:A1441;"<"&11,25)
    Et celle-ci, la moyenne de la vitesse du vent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SOMMEPROD(B2:B1441*(A2:A1441>348,75))/NB.SI(A2:A1441;">"&348,75)+SOMMEPROD(B2:B1441*(A2:A1441<11,25))/NB.SI(A2:A1441;"<"&11,25)
    Mais tout ça est à vérifier étant donné que je ne suis pas un expert dans ce genre de formules. D'autres intervenants vont te donner de bien meilleures formules mais c'est une piste à creuser.

    Hervé.

  3. #3
    Candidat au Club
    Homme Profil pro
    Météorologue
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Météorologue
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut
    Merci beaucoup Hervé !

    J'avais vu cette fonction dans mes recherches mais je ne l'avai pas comprise et surtout je comprennais pas comment une "somme de produit" pouvait être utilisée pour compter.

    Néanmoins j'ai creusé un peu plus en direction de cette fonction, (l'aide Excel se résume au archi strict minimum de la "somme d'un produit") et sur internet j'ai réussi à comprendre un peu comment ça marche (vite fait).

    Mis en code ça donne :
    Pour le NNE par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(SOMMEPROD((B2:B1441>1.4)*(A2:A1441>=11.25))-SOMMEPROD((B2:B1441>1.4)*(A2:A1441>33.75)))-(SOMMEPROD((B2:B1441>4.4)*(A2:A1441>=11.25))-SOMMEPROD((B2:B1441>4.4)*(A2:A1441>33.75)))
    Ce qui pourrait se résumer par :
    Je compte toutes les vents de direction supérieures à 11.25 ET avec une vitesse sup à 1.4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((B2:B1441>1.4)*(A2:A1441>=11.25))
    Je lui soustrait tous les vent de direction supérieures à 33.75 ET avec une vitesse sup à 1.4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((B2:B1441>1.4)*(A2:A1441>33.75))
    A présent j'ai tous les vent supérieurs à 1.4 comrpis entre 11.25 et 33.75. Maintenant il faut soustraire à ce résultat intermédiaire tous les vents sup à 4.4 :

    Je compte toutes les vents de direction supérieures à 11.25 ET avec une vitesse sup à 4.4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((B2:B1441>4.4)*(A2:A1441>=11.25))
    Je lui soustrait tous les vent de direction supérieures à 33.75 ET avec une vitesse sup à 4.4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((B2:B1441>4.4)*(A2:A1441>33.75))
    On devrait avoir tous les vent compris entre 11.25 et 33.75 et de vitesse comprise entre 1.4 et 4.4.

    A priori ça a l'air de marcher (mais comment vraisemblablement vérifier ça avec 1440 lignes de données).

    Si jamais quelqu'un voit une erreur...

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A priori ça a l'air de marcher (mais comment vraisemblablement vérifier ça avec 1440 lignes de données).
    En relevant ses manches et en le faisant manuellement afin de comparé le résultat attendu avec le résultat retourné par les formules ! Si ça colle pour deux ou trois, il y a de grandes chances que ce soit bon pour tout.

    Hervé.

Discussions similaires

  1. comptage ligne colonne
    Par lilemy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2007, 15h12
  2. [C# 2.0] Colonnes liées d'un DataGridView
    Par hobotalker dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/05/2006, 10h41
  3. Ordrer par une colonne liée
    Par p0Kep0K dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/04/2006, 13h17
  4. colonnes liées de zones de listes modifiables
    Par Mr White dans le forum Access
    Réponses: 9
    Dernier message: 20/10/2005, 10h42
  5. TDBLookupComboBox double colonnes
    Par atasekpo dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/07/2005, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo