Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul de moyennes dépendantes d'une autre variable

7 réponses
Avatar
rico
Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes environ ;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui, 0
non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque ligne/établissement,
j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.

7 réponses

Avatar
Daniel
Bonjour.
Avec les départements en A1:A20 et les valeurs 1 et 0 en B1:B20, formule de
la ligne 1 :
=SOMMEPROD(($A$1:$A$20¡)*($B$1:$B$20=1))/NB.SI($A$1:$A$20;A1)
à recopier vers le bas.
Cordialement.
Daniel
"rico" a écrit dans le message de news:

Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes environ
;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui, 0
non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque ligne/établissement,
j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.




Avatar
rico
Merci beaucoup pour ton aide, je vais essayer ça!

Euh par contre c'est bizarre, je vois pas mon propre message (celui que tu
cites en dessous), c'est normal?
Désolé, j'y connais rien en newsgroup.

"Daniel" a écrit dans le message de
news:
Bonjour.
Avec les départements en A1:A20 et les valeurs 1 et 0 en B1:B20, formule
de

la ligne 1 :
=SOMMEPROD(($A$1:$A$20¡)*($B$1:$B$20=1))/NB.SI($A$1:$A$20;A1)
à recopier vers le bas.
Cordialement.
Daniel
"rico" a écrit dans le message de news:

Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes
environ


;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui,
0


non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque
ligne/établissement,


j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.








Avatar
Daniel
Non, mais des fois, ça arrive...
Daniel
"rico" a écrit dans le message de news:

Merci beaucoup pour ton aide, je vais essayer ça!

Euh par contre c'est bizarre, je vois pas mon propre message (celui que tu
cites en dessous), c'est normal?
Désolé, j'y connais rien en newsgroup.

"Daniel" a écrit dans le message de
news:
Bonjour.
Avec les départements en A1:A20 et les valeurs 1 et 0 en B1:B20, formule
de

la ligne 1 :
=SOMMEPROD(($A$1:$A$20¡)*($B$1:$B$20=1))/NB.SI($A$1:$A$20;A1)
à recopier vers le bas.
Cordialement.
Daniel
"rico" a écrit dans le message de news:

Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes
environ


;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui,
0


non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque
ligne/établissement,


j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.












Avatar
FFO
Salut rico
J'ai bien une solution Macro dont voici le code
Soit
colonne A : les etablissements
Colonne b : les départements
Colonne c : les adoptions

Code :

For i = 1 To Range("B1").Offset(65535, 0).End(xlUp).Row
n = 0
r = 0
For Each c In Worksheets("Feuil1").Range([B1], [B1].Offset(65535,
0).End(xlUp))
If Range("B" & i) = c Then
n = n + 1
If c.Offset(0, 1) = 1 Then
r = r + 1
End If
End If
Next
Range("B" & i).Offset(0, 2) = r / n * 100
Next

Si pour 10 lignes c'est immédiat
pour 1000 lignes 20 secondes de traitement sont nécessaire soit prés de 4
minutes pour 11000 lignes

Peut être un peu long
Dis moi


Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes environ ;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui, 0
non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque ligne/établissement,
j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.





Avatar
rico
En fait la solution de Daniel marche bien visiblement. En réalité ma base
est beaucoup plus compliquée que ce que j'en ai dit mais c'était pour saisir
le principe.

Je ne m'y connais pas suffisamment en macros pour adapter celle-ci aux
autres contraintes qui me sont imposées par la base (il y a aussi des
années, les établissements ne sont pas présents sur toutes les années et des
tas d'autres complications dans le genre, je vais ajouter un conditionnel de
statut de l'établissement...). Je ne pourrai donc pas tester cette solution
à moins d'y passer beaucoup de temps.

Mais je tiens à vous remercier pour votre réactivité et la qualité de vos
réponses, merci beaucoup!

Rico

"FFO" a écrit dans le message de
news:
Salut rico
J'ai bien une solution Macro dont voici le code
Soit
colonne A : les etablissements
Colonne b : les départements
Colonne c : les adoptions

Code :

For i = 1 To Range("B1").Offset(65535, 0).End(xlUp).Row
n = 0
r = 0
For Each c In Worksheets("Feuil1").Range([B1], [B1].Offset(65535,
0).End(xlUp))
If Range("B" & i) = c Then
n = n + 1
If c.Offset(0, 1) = 1 Then
r = r + 1
End If
End If
Next
Range("B" & i).Offset(0, 2) = r / n * 100
Next

Si pour 10 lignes c'est immédiat
pour 1000 lignes 20 secondes de traitement sont nécessaire soit prés de 4
minutes pour 11000 lignes

Peut être un peu long
Dis moi


Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes
environ ;


mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui,
0


non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque
ligne/établissement,


j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.







Avatar
rico
Bonjour!

La formule marche donc toujours bien effectivement, mais je crois que j'ai
surestimé ma capacité à pouvoir la comprendre sans aide. Pourtant j'ai de
bonnes bases en calcul matriciel! Le problème (je crois) est que je ne
comprends pas bien le fonctionnement du "=" dans "$A$1:$A$20¡" et dans
"$B$1:$B$20=1".

Je dois réaliser la même opération mais en introduisant une distinction
entre public et privé (codé "public" ou "privé"). Je pense que je pourrai le
faire seul si je comprenais la formule mais j'ai besoin d'un peu d'aide je
crois.

Merci d'avance!

Erik

"Daniel" a écrit dans le message de
news:
Bonjour.
Avec les départements en A1:A20 et les valeurs 1 et 0 en B1:B20, formule
de

la ligne 1 :
=SOMMEPROD(($A$1:$A$20¡)*($B$1:$B$20=1))/NB.SI($A$1:$A$20;A1)
à recopier vers le bas.
Cordialement.
Daniel
"rico" a écrit dans le message de news:

Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes
environ


;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui,
0


non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque
ligne/établissement,


j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.








Avatar
Daniel
Bonjour.
Dans "$A$1:$A$20¡", chaque cellule de la plage dans "$A$1:$A$20" est
comparée à A1. Le résultat est une matrice de valeurs VRAI ou FAUX selon le
résultat de la comparaison. Si la matrice résultante est multipliée, les
valeurs VRAI et FAUX sont transposées respectivement en 1 et 0. Une manière
simple de le visualiser est de mettre en surbrillance "$A$1:$A$20" dans la
barre des formules. Tu appuies ensuite sur F9 pour obtenir les valeurs
résultantes (cliques ensuite sur la croix rouge, ou appuie sur "Annul" pour
revenir à la formule initiale.
A ta disposition pour de plus amples explications.
Daniel
"rico" a écrit dans le message de news:
%
Bonjour!

La formule marche donc toujours bien effectivement, mais je crois que j'ai
surestimé ma capacité à pouvoir la comprendre sans aide. Pourtant j'ai de
bonnes bases en calcul matriciel! Le problème (je crois) est que je ne
comprends pas bien le fonctionnement du "=" dans "$A$1:$A$20¡" et dans
"$B$1:$B$20=1".

Je dois réaliser la même opération mais en introduisant une distinction
entre public et privé (codé "public" ou "privé"). Je pense que je pourrai
le
faire seul si je comprenais la formule mais j'ai besoin d'un peu d'aide je
crois.

Merci d'avance!

Erik

"Daniel" a écrit dans le message de
news:
Bonjour.
Avec les départements en A1:A20 et les valeurs 1 et 0 en B1:B20, formule
de

la ligne 1 :
=SOMMEPROD(($A$1:$A$20¡)*($B$1:$B$20=1))/NB.SI($A$1:$A$20;A1)
à recopier vers le bas.
Cordialement.
Daniel
"rico" a écrit dans le message de news:

Bonjour!

je souhaiterais savoir si la chose suivante est possible :
je dispose d'une base de données d'établissements de 11000 lignes
environ


;
mes variables sont les suivantes :

Etablissement Département Adoption d'une mesure de sécurité (1 oui,
0


non)

Je souhaiterais ajouter une colonne : taux d'adoption moyen dans le
département : est-ce possible? (en gros, pour chaque
ligne/établissement,


j'aurais le taux d'adoption dans le département de l'établissement en
question).

Peut-on automatiser la tâche?

Merci d'avance pour votre aide!

Si je ne suis pas clair, n'hésitez pas à me le signaler ou demander des
précisions.