2010-04-28 32 views
6

Tengo un conjunto de datos en Excel y en una columna es una estimación (número de semanas)¿Cómo convertir valores de Excel en cubos?

Quiero una fórmula de Excel del cangilón en

  • Pequeño
  • Medio
  • grande

donde si el valor es 0 - 10 entonces ponlo pequeño. Si el valor es 10 - 20, colóquelo en Medium, etc. . .

si hay alguna manera elegante de hacerlo además de anidar si todas las declaraciones juntas?

Respuesta

4

Puede ser no exactamente lo que está buscando, pero ¿qué hay con la funcionalidad de formato condicional de Excel

EDIT: Como alternativa, puede crear una función de VBA que actúa como una fórmula que va a hacer el calulation para usted . algo así como

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

La herramienta adecuada para que se va a crear una gama con sus límites y los nombres correspondientes. Puede usar la función vlookup(), con el cuarto parámetro establecido en True para crear una búsqueda de rango .

enter image description here

+0

@Oddthinking: lo siento, pero el 4to parámetro debe ser "Verdadero"! –

5

Otro método para crear esta estaría utilizando los if condicionales ... lo que significa que haría referencia a una celda que tiene un valor y en función de ese valor se le dará el cubo como small.

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

Así que si la celda b2 tenía un valor de 12, luego volverá la palabra small.

Espero que esto sea lo que estás buscando.

6

Si todo lo que necesita hacer es recuento cuántos valores caen en cada categoría, entonces esto es una cuestión estadística clásica y puede ser resuelto muy elegante con un "histograma"

En Excel, utiliza el complemento de análisis de datos (si aún no lo tiene, consulte el siguiente enlace). Una vez que comprenda los histogramas, puede segregar sus datos en cubetas, llamados "contenedores", de manera muy rápida, ajustar sus contenedores fácilmente y trazar automáticamente los datos.

Son tres sencillos pasos: 1) Ponga sus datos en una sola columna 2) Cree una columna para sus contenedores (10, 20, 30, etc.) 3) Seleccionar datos -> Análisis de Datos -> Histograma y siga las instrucciones para seleccionar el rango de datos y contenedores (se puede poner los resultados en una nueva hoja de cálculo y gráfico de los resultados de este mismo menú)

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

+0

El enlace no funciona. Esto lo hace: https://support.office.com/en-us/article/Create-a-histogram-b6814e9e-5860-4113-ba51-e3a1b9ee1bbe – JustAC0der

0

Si las condiciones son la mejor manera de hacerlo. Si desea que el recuento use la tabla dinámica de cubos. Es la manera más fácil y si las condiciones también pueden durar más de 5-6 depósitos

2

Una buena forma de crear depósitos es la función LOOKUP().

En este ejemplo, la celda A1 contiene un recuento de días. El v el segundo parámetro es una lista de valores. El tercer parámetro es la lista de nombres de depósitos.

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

2

Tal vez esto podría ayudarle a:

=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 con sustituir los valores y el texto a pequeña, mediana y grande.

0

Prefiero etiquetar cubos con una fórmula numérica. Si el tamaño del cubo es 10, entonces esta etiqueta los cubos 0,1,2, ...

=INT(A1/10) 

Si pones el tamaño de cubo 10 en una celda separada se puede variar fácilmente.

Si la celda B1 contiene el cubo (0,1,2, ...) y la columna 6 contiene los nombres bajo, medio, alto, entonces esta fórmula convierte un cubo a un nombre:

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

Alternativamente , esta etiqueta los cubos con el menor valor en el conjunto, es decir, 0,10,20, ...

=10*INT(A1/10) 

o este los etiqueta con la gama 0-10,10-20,20-30 ,. ..

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

Aquí es una solución que:

  • es independiente
  • No requiere VBA
  • no se limita de la misma manera como si aquélla fuera de balde máximos
  • No requiere valores precisos como lo hace BUSCAR

 

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

 

Reemplazar [valor_entrada] con la referencia de celda apropiada y asegúrese de presionar Ctrl + Shift + Enter, ya que es una fórmula de matriz.

Cada una de las constantes de matriz se puede expandir arbitrariamente; siempre que la fórmula no exceda el máximo de Excel de 8.192 caracteres. La primera constante debe contener los valores de retorno, la segunda debe contener umbrales ordenados y la tercera simplemente debe ser un número entero ascendente.