Calcular Mediana con datos desde una tabla dinámica

Calcular Mediana y Moda con dats agrupados en una tabla dinámica, sin Power Pivot (excel 2003)

Los registros

Puntajes son aprox 1500 y las comunas son aprox 76, los grupos son todos distintos

1 Respuesta

Respuesta
2

Es que una vez que agrupaste los valores en la tabla dinámica, perdiste esa posibilidad.

Como ejemplo analicemos "solo" la comuna a1.

Los datos que te arroja la tabla dinámica solo son la cantidad de valores (9) y el promedio (68.1111), pero como ves en los datos que inventé en la columna D, tenemos otra muestra que tiene la misma cantidad de valores y el mismo promedio, por lo que si hiciera una tabla dinámica, no habría forma de saber si los datos los saqué de tus datos originales o de los que yo inventé.

Salu2

¡Gracias! 

Gustavo, muchas gracias por tu interés en solucionar mi problema

lo que tu indicas, lo entiendo, pero la idea es utilizar de alguna forma, en una macro la información que provee la tabla dinámica.

Pero no importa, olvidemos la tabla dinámica, como puedo recorrer los datos base, para completar de alguna forma el rango =mediana(b2:b10), para calcular la mediana del primer grupo, la mediana del segundo grupo =mediana(b11:b24) y así sucesivamente, algo así

="MEDIANA(B"&2&":B"&F2&")"

no sé, con algún ciclo iterativo

de antemano gracias

Fijate si te sirve el siguiente código (no sé cuanto sepas de macros)...

Te muestro los datos antes de la ejecución de la macro

Luego de la ejecución de la macro

La macro es la siguiente...

Sub calculaMediana()
'toma los datos de las columnas A (clave) y B (valores)
'la columna debe estar ordenada por ambas columnas
'deja los resultados en el rango E2:F2, hacia abajo
Dim fDesde As Long, fHasta As Long, fResult As Long
Dim comunaActual As String
fDesde = 2
fResult = 2
Do While Cells(fDesde, 1) <> ""
  comunaActual = Cells(fDesde, 1)
  fHasta = fDesde
  Do While Cells(fHasta, 1) = comunaActual
    fHasta = fHasta + 1
  Loop
  Cells(fResult, 5) = comunaActual
  Cells(fResult, 6).FormulaR1C1 = "=MEDIAN(R" & fDesde & "C2:R" & (fHasta - 1) & "C2)"
  fDesde = fHasta
  fResult = fResult + 1
Loop
End Sub

Salu2

¡Gracias! 

Gustavo muchísimas gracias

Excelente y acertada solución, justo lo que necesitaba.

gracias en poco, me solucionaste un gran problema

gracias nuevamente

fj

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas