2010-04-28 9 views
6

Ho una serie di dati in Excel e in una colonna è una stima (numero di settimane)Come convertire i valori di Excel in bucket?

voglio una formula di Excel benna in

  • Piccolo
  • Media
  • Grande

dove se il valore è 0-10, quindi mettilo Piccolo. Se il valore è 10 - 20, mettilo in Medium, ecc. . .

se esiste un modo elegante per farlo, oltre a fare annidare se le istruzioni vengono messe insieme?

risposta

4

Può essere non del tutto quello che stavi cercando, ma il modo di usare la funzionalità di formattazione condizionale di Excel

EDIT: Come alternativa è possibile creare una funzione VBA che agisce come una formula che farà il calulation per voi . qualcosa come

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 
7

Lo strumento giusto per che è quello di creare una serie con i tuoi limiti ei nomi corrispondenti. È quindi possibile utilizzare la funzione vlookup(), con il 4 ° parametro impostato su True per creare una ricerca gamma .

enter image description here

+0

@Oddthinking: scusa ma il 4 ° parametro deve essere 'True'! –

5

Un altro metodo per creare questa sarebbe utilizzando le if condizionali ... il che significa che ci si riferimento a una cella che ha un valore e, a seconda che il valore che vi darà il secchio come small.

Per esempio, =if(b2>30,"large",if(b2>20,"medium",if(b2>=10,"small",if(b2<10,"tiny",""))))

Quindi, se la cella b2 aveva un valore 12, allora tornerà la parola small.

Spero che questo sia quello che stai cercando.

6

Se tutto quello che dovete fare è conteggio quanti valori rientrano in ciascuna categoria, allora questa è una classica domanda statistiche e può essere molto elegantemente risolto con un "istogramma".

In Excel, si utilizza il componente aggiuntivo Analisi dati (se non lo si possiede già, fare riferimento al collegamento seguente). Una volta compresi gli istogrammi, è possibile separare i dati in bucket, denominati "bin", in modo molto rapido, regolare facilmente i raccoglitori e mappare automaticamente i dati.

Sono tre semplici passaggi: 1) Inserire i dati in una colonna 2) Creare una colonna per i propri contenitori (10, 20, 30, ecc.) 3) Selezionare Dati -> Analisi dei dati -> Istogramma e seguire le istruzioni per la selezione l'intervallo di dati e bidoni (si può mettere i risultati in un nuovo foglio di lavoro e il grafico i risultati di questo stesso menu)

http://office.microsoft.com/en-us/excel-help/create-a-histogram-HP001098364.aspx

+0

Il collegamento non funziona. Questo fa: https://support.office.com/en-us/article/Create-a-histogram-b6814e9e-5860-4113-ba51-e3a1b9ee1bbe – JustAC0der

0

Se le condizioni sono il modo migliore per farlo. Se si desidera che il conteggio utilizzi una tabella pivot di bucket. È il modo più semplice e le condizioni if ​​possono andare oltre 5-6 bucket

2

Un buon modo per creare bucket è la funzione LOOKUP().

In questo esempio contiene la cella A1 un conteggio di giorni. Il secondo parametro è un elenco di valori. Il terzo parametro è l'elenco dei nomi dei bucket.

= LOOKUP (A1, {0,7,14,31,90,180,360}, {"0-6", "7-13", "14-30", "31-89", "90-179 ", "180-359", "> 360"})

2

Forse questo potrebbe aiutare:

=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"))))) 

basta sostituire i valori e il testo da piccole, medie e grandi dimensioni.

0

Preferisco etichettare i bucket con una formula numerica. Se la dimensione del secchio è 10 allora questa etichetta i secchi 0,1,2, ...

=INT(A1/10) 

Se si mette la dimensione secchio 10 in una cella separata si può facilmente variare di esso.

Se la cella B1 contiene il secchio (0,1,2, ...) e la colonna 6 contiene i nomi basso, medio, alto allora questa formula converte un secchio a un nome:

=INDIRECT(ADDRESS(1+B1,6)) 

alternativa , questa etichette i secchi con il minimo valore della serie, cioè 0,10,20, ...

=10*INT(A1/10) 

o questa loro una etichetta con la gamma 0-10,10-20,20-30 ,. ..

=10*INT(A1/10) & "-" & (10*INT(A1/10)+10) 
1

Ecco una soluzione che:

  • è autonomo
  • Non richiede VBA
  • non si limita allo stesso modo come se rivolti secchio massimi
  • Non richiede precisi valori come fa LOOKUP

 

=INDEX({"Small","Medium","Large"},LARGE(IF([INPUT_VALUE]>{0,11,21},{1,2,3}),1)) 

 

Sostituire [valore_input] con il riferimento di cella appropriata e assicurarsi di premere Ctrl + Maiusc + Invio quanto si tratta di una formula di matrice.

Ciascuna delle costanti di matrice può essere espansa per essere arbitrariamente lunga; purché la formula non superi il massimo di Excel di 8.192 caratteri. La prima costante dovrebbe contenere i valori di ritorno, la seconda dovrebbe contenere soglie ordinate, e la terza dovrebbe semplicemente essere numeri interi ascendenti.

Problemi correlati