J'ai un ensemble de données dans Excel et dans une colonne se trouve une estimation (nombre de semaines)
Je veux une formule Excel pour l'insérer dans
où si la valeur est 0 - 10 alors mettez-le petit. Si la valeur est comprise entre 10 et 20, indiquez-le dans Moyen, etc. . .
s'il y a une manière élégante de le faire en plus d'avoir imbriqué si les déclarations sont toutes assemblées?
Ce n'est peut-être pas tout à fait ce que vous recherchiez, mais pourquoi ne pas utiliser la fonctionnalité de mise en forme conditionnelle d'Excel
EDIT: En tant que remplaçant, vous pouvez créer une fonction vba agissant comme une formule permettant d'effectuer le calcul pour vous. Quelque chose comme:
Function getBucket(rng As Range) As String
Dim strReturn As String
Select Case rng.Value
Case 0 to 10
strReturn = "Small"
Case 11 To 20
strReturn = "Medium"
Case 21 To 30
strReturn = "Large"
Case 31 To 40
strReturn = "Huge"
Case Else
strReturn = "OMG!!!"
End Select
getBucket = strReturn
End Function
Une autre méthode pour créer ceci consisterait à utiliser les __ conditionnels if
... ce qui signifie que vous référencez une cellule qui a une valeur et en fonction de cette valeur, cela vous donnera un compartiment tel que small
.
Par exemple, =if(b2>30,"large",if(b2>20,"medium",if(b2>=10,"small",if(b2<10,"tiny",""))))
Donc, si la cellule b2
avait la valeur 12
, elle renverrait le mot small
.
J'espère que c'est ce que vous cherchez.
Si tout ce que vous avez à faire est count combien de valeurs appartiennent à chaque catégorie, il s'agit d'une question statistique classique et peut être résolue très élégamment avec un "histogramme".
Dans Excel, vous utilisez le complément d'analyse de données (si vous ne le possédez pas déjà, reportez-vous au lien ci-dessous). Une fois que vous avez compris les histogrammes, vous pouvez séparer vos données dans des compartiments - appelés "bacs" - très rapidement, ajuster facilement vos bacs et cartographier automatiquement les données.
Il s’agit de trois étapes simples: 1) Mettez vos données dans une colonne 2) Créez une colonne pour vos bacs (10, 20, 30, etc.) 3) Sélectionnez Données. -> Analyse des données -> Histogramme et suivez les instructions pour sélectionner la plage de données et les bacs (vous pouvez placer les résultats dans une nouvelle feuille de calcul et tracer les résultats à partir de ce même menu).
http://office.Microsoft.com/en-us/Excel-help/create-a-histogram-HP001098364.aspx
Vous recherchez la fonction LOOKUP. s'il vous plaît voir la page suivante pour plus d'informations:
La fonction LOOKUP () est un bon moyen de créer des compartiments.
Dans cet exemple contient la cellule A1 est un nombre de jours. Le deuxième paramètre est une liste de valeurs. Le troisième paramètre est la liste des noms de compartiment.
= RECHERCHE (A1, {0,7,14,31,90,180,360}, {"0-6", "7-13", "14-30", "31-89", "90-179", "180 -359 ","> 360 "})
Voici une solution qui:
=INDEX({"Small","Medium","Large"},LARGE(IF([INPUT_VALUE]>{0,11,21},{1,2,3}),1))
Remplacez [INPUT_VALUE] par la référence de cellule appropriée et veillez à appuyer sur Ctrl + Maj + Entrée car il s'agit d'une formule matricielle.
Chacune des constantes du tableau peut être étendue pour être arbitrairement longue; aussi longtemps que la formule ne dépasse pas le maximum de 8 192 caractères d'Excel. La première constante doit contenir les valeurs de retour, la seconde doit contenir des seuils ordonnés et la troisième doit simplement être des entiers ascendants.
Peut-être que cela pourrait vous aider:
=IF(N6<10,"0-10",IF(N6<20,"10-20",IF(N6<30,"20-30",IF(N6<40,"30-40",IF(N6<50,"40-50")))))
Il suffit de remplacer les valeurs et le texte en petit, moyen et grand.
Si les conditions sont la meilleure façon de le faire. Si vous voulez le nombre, utilisez un tableau croisé dynamique des compartiments. C'est le moyen le plus simple et si les conditions peuvent aller pour plus de 5-6 seaux
Je préfère étiqueter les seaux avec une formule numérique. Si la taille du seau est de 10, les étiquettes sont alors 0,1,2, ...
=INT(A1/10)
Si vous placez la taille du seau 10 dans une cellule distincte, vous pouvez facilement le modifier.
Si la cellule B1 contient le compartiment (0,1,2, ...) et que la colonne 6 contient les noms Low, Medium, High, cette formule convertit un compartiment en nom:
=INDIRECT(ADDRESS(1+B1,6))
Alternativement, cela marque les seaux avec la plus petite valeur de l’ensemble, c’est-à-dire 0,10,20, ...
=10*INT(A1/10)
ou cela les étiquette avec la gamme 0-10,10-20,20-30-30, ...
=10*INT(A1/10) & "-" & (10*INT(A1/10)+10)
J'utilise cette astuce pour un seau de données égal. Au lieu du résultat de texte, vous obtenez le numéro. Voici un exemple pour quatre seaux. Supposons que vous ayez des données dans la plage A1:A100
. Mettez cette formule en B1:
=MAX(ROUNDUP(PERCENTRANK($A$1:$A$100,A1) *4,0),1)
Remplissez la formule dans toute la colonne B et vous avez terminé. La formule divise la plage en 4 compartiments égaux et renvoie le numéro de compartiment dans lequel la cellule A1 se trouve. Le premier compartiment contient les 25% les plus bas des valeurs.
Ajuste le nombre de seaux selon ton souhait:
=MAX(ROUNDUP(PERCENTRANK([Range],[OneCellOfTheRangeToTest]) *[NumberOfBuckets],0),1)
Le nombre d'observations dans chaque compartiment sera égal ou presque égal. Par exemple, si vous avez 100 observations et que vous souhaitez le scinder en 3 compartiments (comme dans votre exemple), les compartiments contiendront 33, 33, 34 observations. Donc presque égal. Vous n'avez pas à vous soucier de cela - la formule fonctionne pour vous.