NECESITO AYUDA URGENTE CON TABLAS DINÁMICAS POR FAVOR!!

13/01/2006 - 09:50 por Oscar | Informe spam
Hola a to2.

He creado en Excel 2000 una tabla dinámica de ventas, que extrae los datos
de una base de datos de Access. Hasta aquí todo correcto, todo me funciona
perfecto, la duda viene cuando quiero añadir campos calculados definidos por
mí, os pongo un ejemplo de qué es lo que quiero conseguir:

Cliente 2003 2004 2005
Cliente A 1000 5459 4586
Cliente B 5444 1523 7459
Cliente C 4568 1548 4893
Cliente D 4864 3843 4648

El ejemplo anterior muestra la tabla con la lista de clientes, en las
columnas muestra los años de la tabla y el valor es la suma del importe.
Ok, hasta aquí perfecto, pues lo que quiero hacer es poner entre medio de
cada columna (años) un valor que será un porcentaje de un cálculo de un año
respecto al otro. Ejemplo:

Cliente 2003 Porc 2004 Porc 2005
Cliente A 1000 30.5 5459 26.5 4586
Cliente B 5444 25.6 1523 15.4 7459
Cliente C 4568 12.4 1548 47.5 4893
Cliente D 4864 10.2 3843 55.2 4648

Los porcentajes me los acabo de inventar pero este es el resultado que
desearía conseguir de forma dinámica pero no lo acabo de conseguir. Espero
que podáis ayudarme. Muchas gracias.

Saludos,
Oscar.

Preguntas similare

Leer las respuestas

#6 Oscar
17/01/2006 - 11:07 | Informe spam
y en vez de agrupar es posible anadir una columna al lado del nombre, o
dentro del ambito de suma que haga este calculo???? lo que quiero conseguir
de forma dinamica, aunque no sea agrupando es poner una columna mas con un
valor calculado, yo lo he intentado hacer con campos calculados y funciona a
medias, en el cliente por ejemplo que me tendria que poner "S" me pone
error, pero me pone "algo" y me tiene en cuenta el criterio pero por alguna
razon me pone error. Alguna idea?? muchas gracias de nuevo.
Respuesta Responder a este mensaje
#7 KL
17/01/2006 - 12:44 | Informe spam
Hola Oscar,

Mira a ver si te vale este codigo.

Saludos,
KL

'
Sub Test()
Dim r As Long, rng As Range
Dim Grupo1 As Range, Grupo2 As Range

Application.ScreenUpdating = False
With ActiveSheet.PivotTables(1)
On Error Resume Next
Intersect(.DataBodyRange.EntireRow, _
.TableRange1).Ungroup
On Error GoTo 0
With .DataBodyRange
Set rng = .Offset(, -1). _
Resize(, .Columns.Count + 1)
End With

For r = 1 To rng.Rows.Count
If Application.CountIf(rng.Rows(r), ">P00") Then
If Grupo1 Is Nothing Then
Set Grupo1 = rng.Rows(r)
Else
Set Grupo1 = Union(Grupo1, rng.Rows(r))
End If
End If
Next
Grupo1.Group

Set rng = rng.Resize(, rng.Columns.Count + 1)
For r = 1 To rng.Rows.Count
If Application.CountIf(rng.Rows(r), ">P00") = 0 Then
If Grupo2 Is Nothing Then
Set Grupo2 = rng.Rows(r)
Else
Set Grupo2 = Union(Grupo2, rng.Rows(r))
End If
End If
Next
Grupo2.Group
End With
Application.ScreenUpdating = True
End Sub
'
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida