Acceder a campo de datos

11/12/2006 - 19:26 por lusmig | Informe spam
He creado una tabla dinámica con varios campos:cliente,tipo operacion
y fecha operacion en el area FILA del diagrama que el asistente
proporciona para construir la tabla y los campos Importe e Iva en el
area DATOS .Lo que quería era crear otra columna dentro del area de
datos llamada Importe Acumulado que me fuera acumulando los importes de
la columna importe.He intentado acceder
al contenido de los campos de la columna Importe de la siguiente forma:

ActiveSheet.PivotTables("Tabla
dinámica1").PivotFields("IMPORTE").PivotItems(1).Value

Pero en vez de devolverme el primer valor de la columna Importe me
devuelve
el menor de los valores de dicha columna.Ademas me sustituye un punto
por una coma.¿como trata excel los campos de datos en una tabla
dinámica?¿como puedo acceder al valor de cada celda de la columna
Importe desde una macro en hecha en visual basic?

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/12/2006 - 06:54 | Informe spam
hola, luis !

He creado una tabla dinamica con varios campos... en el area FILA... y los campos Importe e Iva en el area DATOS
Lo que queria era crear otra columna dentro del area de datos llamada Importe Acumulado
que me fuera acumulando los importes de la columna importe.
He intentado acceder al contenido de los campos de la columna Importe de la siguiente forma:
ActiveSheet.PivotTables("Tabla dinamica1").PivotFields("IMPORTE").PivotItems(1).Value
Pero en vez de devolverme el primer valor de la columna Importe me devuelve el menor de los valores de dicha columna.
Ademas me sustituye un punto por una coma. como trata excel los campos de datos en una tabla dinamica?
como puedo acceder al valor de cada celda de la columna Importe desde una macro en hecha en visual basic?



revisa el apartado 'P' [de pivot tables] de la siguiente pagina:
-> http://www.contextures.com/tiptech.html

si no lo encuentras ahi [o sus diferentes enlaces]... sera necesario desarrollar algoritmos mas 'dedicados' -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 lusmig
12/12/2006 - 13:25 | Informe spam
Hola Héctor le he echado un vistado al apartado P de la pagina que me
comentas (ya la conocía) y si que trae información interesante acerca
de las tablas dinámicas pero no encontré nada que pudiera orientarme
para resolver mi problema ...Si se te ocurre algo pues comentamelo ...
sino déjalo ya buscaré otra forma ...

Un saludo y gracias !!!!


Héctor Miguel ha escrito:

hola, luis !

> He creado una tabla dinamica con varios campos... en el area FILA... y los campos Importe e Iva en el area DATOS
> Lo que queria era crear otra columna dentro del area de datos llamada Importe Acumulado
> que me fuera acumulando los importes de la columna importe.
> He intentado acceder al contenido de los campos de la columna Importe de la siguiente forma:
> ActiveSheet.PivotTables("Tabla dinamica1").PivotFields("IMPORTE").PivotItems(1).Value
> Pero en vez de devolverme el primer valor de la columna Importe me devuelve el menor de los valores de dicha columna.
> Ademas me sustituye un punto por una coma. como trata excel los campos de datos en una tabla dinamica?
> como puedo acceder al valor de cada celda de la columna Importe desde una macro en hecha en visual basic?

revisa el apartado 'P' [de pivot tables] de la siguiente pagina:
-> http://www.contextures.com/tiptech.html

si no lo encuentras ahi [o sus diferentes enlaces]... sera necesario desarrollar algoritmos mas 'dedicados' -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
12/12/2006 - 21:52 | Informe spam
hola, luis !

... he echado un vistado al apartado P de la pagina que me comentas (ya la conocía)
y si que trae informacion interesante acerca de las tablas dinamicas
pero no encontre nada que pudiera orientarme para resolver mi problema
Si se te ocurre algo pues comentamelo ... sino dejalo ya buscare otra forma ...



prueba con la siguiente alternativa [aunque no imagino el arreglo 'real' de tu TD] -?-

1) agrega una columna [o campo] para los acumulados en tu listado 'base' de la TD [obviamente]...
necesitaras iniciar con una formula de suma-acumulativa del tipo: =suma(d$2:d2) [o similar]

2) ordena tu listado en el mismo orden en que aparecen los campos en el area de filas en tu TD

3) activa el asistente para TD e incluye en el area de datos la nueva columna en el origen de tu TD

4) selecciona el nuevo elemento desde las filas de tu TD y sigue estos pasos:
a) haz un click-secundario y selecciona la opcion de: -> campo [de la tabla dinamica]
b) cambia la opcion de funcion de suma a -> max
c) cambia su nombre [p.e.] a Suma de Importe Acumulado

-> no te olvides del orden de los datos en tu listado original siempre que actualices sus datos [y refrescar la TD] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 lusmig
04/01/2007 - 17:16 | Informe spam
Hola Héctor no se si te he entendido bien pero no me funciona lo que
me has indicado.Primero me hablas de que inicie con una formula de
suma-acumulativa del tipo
suma(d$2:d2), ¿pero que pasa cuando tengo 1000 o 2000
registros?,ademas si cambio el orden de los campos de fila se
desordenan los importes acumulados y necesito que los campos de fila se
puedan mover y se actualicen los importes acumulados correctamente...
otra cosa ,si cambio la funcion de suma a max no me da el importe
acumulado...

Héctor Miguel ha escrito:

hola, luis !

> ... he echado un vistado al apartado P de la pagina que me comentas (ya la conocía)
> y si que trae informacion interesante acerca de las tablas dinamicas
> pero no encontre nada que pudiera orientarme para resolver mi problema
> Si se te ocurre algo pues comentamelo ... sino dejalo ya buscare otra forma ...

prueba con la siguiente alternativa [aunque no imagino el arreglo 'real' de tu TD] -?-

1) agrega una columna [o campo] para los acumulados en tu listado 'base' de la TD [obviamente]...
necesitaras iniciar con una formula de suma-acumulativa del tipo: =suma(d$2:d2) [o similar]

2) ordena tu listado en el mismo orden en que aparecen los campos en el area de filas en tu TD

3) activa el asistente para TD e incluye en el area de datos la nueva columna en el origen de tu TD

4) selecciona el nuevo elemento desde las filas de tu TD y sigue estos pasos:
a) haz un click-secundario y selecciona la opcion de: -> campo [de la tabla dinamica]
b) cambia la opcion de funcion de suma a -> max
c) cambia su nombre [p.e.] a Suma de Importe Acumulado

-> no te olvides del orden de los datos en tu listado original siempre que actualices sus datos [y refrescar la TD] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Héctor Miguel
05/01/2007 - 03:24 | Informe spam
hola, luis !

... no se si te he entendido bien pero no me funciona lo que me has indicado.
Primero me hablas de que inicie con una formula de suma-acumulativa del tipo suma(d$2:d2)
pero que pasa cuando tengo 1000 o 2000 registros?
ademas si cambio el orden de los campos de fila se desordenan los importes acumulados
y necesito que los campos de fila se puedan mover y se actualicen los importes acumulados correctamente...
otra cosa ,si cambio la funcion de suma a max no me da el importe acumulado...



1) toma en cuenta el primer comentario que te hago en la propuesta anterior...
"prueba con la siguiente alternativa [aunque no imagino el arreglo 'real' de tu TD] -?-"

2) considera que el comentario anterior 'obecece' a que [hasta la fecha] NO has expuesto/comentado/mencionado/...
a) cual es el 'arreglo' que tienes de los datos 'base/fuente/origen/...' para tu TD [ni el de la TD misma] :(
b) que formulas contiene el listado de origen [como para no 'distorsionar' los "importes acumulados correctamente" -???-
o sea... los 'detalles' que no se alcanzan a 'ver' [desde este lado del mensaje] :))

3) tienes al menos dos [o tres] alternativas para que nos podamos 'enterar' de lo que no has comentado:
a) explicar, lo mas 'conciso' [pero apegado a 'la realidad'] posible... esos 'detalles'
b) 'subir' un archivo con datos/instrucciones en algun sitio 'publico' para que lo obtenga quien desee participar con propuestas
c) enviarme una copia de tu archivo [en .ZIP plis] a mi correo [quitando de la direccion que aparece el 'NO...SPAM...PLS'] ;)

comentas por donde le damos ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida