Classer des données dans des intervalles

sylvain2006

XLDnaute Nouveau
Bonjour,

Voici le problème auquel je suis confronté :

J'ai plus de 200 000 données que je dois représenter sous forme d'un histogramme. L'axe des abscisses représente des intervalles, celui des ordonnées représente le nombre de personnes dans un intervale donné.
Comme j'ai énorméméent de donnée je peux pas classer à la main ces données
dans les intervalles.

Existe t-il un moyen dans excel de dire par exemple : "indiquer le nombre de personnes comprises dans l'intervalle [150;200]" , et ceci pour différents intervalles....

Merci d'avance pour toutes les idées !
 

pierrejean

XLDnaute Barbatruc
Re : Classer des données dans des intervalles

bonjour

pour t'aider il nous faudrait savoir comment se presentent tes données

pour ce faire, poste un fichier exemple avec une dizaines de données (non confidentielles (ou trafiquées pour etre anonymes)
 

sylvain2006

XLDnaute Nouveau
Re : Classer des données dans des intervalles

Merci pour vos réponses !
Je ne possède pas ici excel , mais au travail...je pourrais poster si vous voulez en debut de semaine.
Cependant, les données sont par exemple:

280,3500
184,4500
301,9900
213,1100
219,0200
177,1800
306,2600
205,5000
218,2400
146,3100
185,9700
185,1600
306,1600
200,1600
280,6400
229,4400
205,9700
156,3300
178,7400
235,1200
244,7100
200,6700
189,3900
226,9800
178,3700

Je voudrais alors classer ces données ds les intervalles suivants :
[0,50]
[50,100]
[100,150]
[150,200]
[200,250]
[250,300]
[300,350]

Dans cet exemple, nous avons donc pour l'intervalle [250,300] :2 effectifs
Et bien je voudrais procéder de la meme facon avec + d'intervalles et surtout beaucoup + de données....
Je mettrai ensuite ces résultats ds un histogramme, mais ca je sais faire :)
Merci encore.
 

Jocelyn

XLDnaute Barbatruc
Re : Classer des données dans des intervalles

Bonjour le Forum,
Bonjour sylvain2006, ALPHA155, pierrejean:)

En passant par une formule Sommeprod voir exemple

Jocelyn
 

Pièces jointes

  • sylvain2006.zip
    1.8 KB · Affichages: 272
  • sylvain2006.zip
    1.8 KB · Affichages: 267
  • sylvain2006.zip
    1.8 KB · Affichages: 268

pierrejean

XLDnaute Barbatruc
Re : Classer des données dans des intervalles

bonjour Sylvain

Une solution a ce problème

note : J'ais exploité le fait que la diference entre les intervalles est constante et egale a 50 (le chiffre est dans la macro)

Si tes intervalles sont differents ou pour toute autre nuance je suis a ta disposition pour adapter

Salut Jocelyn :):) (je regarde ton oeuvre)
 

Pièces jointes

  • sylvain.xls
    30 KB · Affichages: 320
  • sylvain.xls
    30 KB · Affichages: 304
  • sylvain.xls
    30 KB · Affichages: 295

pierrejean

XLDnaute Barbatruc
Re : Classer des données dans des intervalles

Re

Je me suis permis de reprendre le fichier de mon ami Jocelyn:):)

Il y a des valeurs entre 200 et 201 (par exemple) d'ou le 200,00001
 

Pièces jointes

  • sylvain2006.zip
    4.5 KB · Affichages: 163
  • sylvain2006.zip
    4.5 KB · Affichages: 174
  • sylvain2006.zip
    4.5 KB · Affichages: 180
Dernière édition:

sylvain2006

XLDnaute Nouveau
Re : Classer des données dans des intervalles

Alors la bravo à vous 2 ! C'est excatement ce que je voulais ! J'aimerais bien comprendre comment vous avez fait ca afin de pouvoir le mofifier avec mes vrais intervals et mes vraies données ! Comment puis je modifier tout ca ?
Merci d'avance et merci encore !
Sylvain
 

pierrejean

XLDnaute Barbatruc
Re : Classer des données dans des intervalles

bonjour Sylvain

Voila un nouveau fichier qui te permettra une adaptation automatique
Il te suffit de nommer Données la zone contenant tes données et leslimites la plage contenant les limites (cette plage doit etre horizontale et ne comporter qu'une ligne)

la macro:

Code:
Sub classement()
tableau = Range("Données")
limites = Range("leslimites")
ligne = Range("leslimites").Row + 1
col = Range("leslimites").Column
For n = LBound(tableau, 1) To UBound(tableau, 1)
 For m = LBound(tableau, 2) To UBound(tableau, 2)
   For l = LBound(limites, 2) To UBound(limites, 2) - 1
     If tableau(n, m) >= limites(1, l) And tableau(n, m) < limites(1, l + 1) Then
        Cells(ligne, col + l) = tableau(n, m)
        ligne = ligne + 1
     End If
   Next l
 Next m
Next n
debligne = Range("leslimites").Row + 1
Cells(ligne + 1, 1) = "Nbre par intervalle"
For n = col + 1 To col + UBound(limites, 2) - 1
Cells(ligne + 1, n).FormulaLocal = "=LIGNE()-" & debligne & "-NB.SI(" & Cells(debligne, n).Address & ":" & Cells(ligne, n).Address & ";"""")"
Next n
End Sub

nota: Je me suis vraiment fait plaisir a realiser ce petit exercice sur les tableaux et les boucles
 

Pièces jointes

  • sylvainb.zip
    9.8 KB · Affichages: 165

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 946
Membres
103 989
dernier inscrit
jralonso