Tablas dinámicas complejas

12/02/2004 - 17:39 por Martape | Informe spam
Hola a todos!
A ver si alguien me puede ayudar.
Tengo en un libro de Excel muchas pestañas con datos
sobre clientes. Cada pestaña corresponde a un mes
determinado.
Lo que quiero hacer es una tabla donde se me diga cuántas
veces sale cada cliente, no por pestaña sino en el total
de todas las pestañas.
La función count se queda corta.
Lo ideal sería una tabla dinámica, pero esta, solo
consigo hacerla en una de las pestañas; no encuentro la
manera de hacer una tabla dinámica que incluya todas las
pestañas que tengo a la vez.
Quisiera saber si se puede hacer esto, y si se os ocurre
alguna otra manera de hacer esto, aunque no sea con
tablas dinámicas.
Cada mes las pestañas aumentan, y en principio, no tengo
posibilidad de unirlas todas en una.

Muchas gracias a todos por vuestra
ayuda

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
12/02/2004 - 19:56 | Informe spam
Una función personalizada podría hacer el trabajo, algo como:

Function ContarEnTodasLasHojas(Buscado As Variant) As Long
Dim wksH As Worksheet
For Each wksH In Worksheets
If wksH.Name <> Application.Caller.Parent.Name Then
ContarEnTodasLasHojas = ContarEnTodasLasHojas + WorksheetFunction.CountIf(wksH.UsedRange, Buscado)
End If
Next wksH
Set wksH = Nothing
End Function

Esta función tendrías que pegarla en un módulo creado por ti (no en ninguno de los de las hojas ni en el del libro). Lo que hace es contar las veces que aparece el argumento "Buscado" en todas las hojas _excepto_ en la que llama a la función.

No sé si hará exactamente lo que necesitas, y además es posible que se pudiera refinar --por ejemplo, diciéndole a la función los rangos en que debe contar--, pero con los datos que nos has dado no veo posible ser más concreto por ahora.

La sintaxis es:

=BuscarEnTodasLasHojas(ValorBuscado)

si lo que se busca fuera un número, o

=BuscarEnTodasLasHojas("TextoBuscado")

si fuera una cadena de texto.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Martape" escribió en el mensaje news:f53f01c3f186$d93a1580$
Hola a todos!
A ver si alguien me puede ayudar.
Tengo en un libro de Excel muchas pestañas con datos
sobre clientes. Cada pestaña corresponde a un mes
determinado.
Lo que quiero hacer es una tabla donde se me diga cuántas
veces sale cada cliente, no por pestaña sino en el total
de todas las pestañas.
La función count se queda corta.
Lo ideal sería una tabla dinámica, pero esta, solo
consigo hacerla en una de las pestañas; no encuentro la
manera de hacer una tabla dinámica que incluya todas las
pestañas que tengo a la vez.
Quisiera saber si se puede hacer esto, y si se os ocurre
alguna otra manera de hacer esto, aunque no sea con
tablas dinámicas.
Cada mes las pestañas aumentan, y en principio, no tengo
posibilidad de unirlas todas en una.

Muchas gracias a todos por vuestra
ayuda
Respuesta Responder a este mensaje
#2 Héctor Miguel
12/02/2004 - 21:02 | Informe spam
¿que tal, chicos? [solo por no 'dejarlo en el tintero'] :))

Martape escribio
... libro ... muchas pestañas con datos sobre clientes. Cada pestaña corresponde a un mes determinado.
... hacer una tabla donde se me diga cuantas veces sale cada cliente, no por pestaña sino en ... todas las pestañas.
... count se queda corta [...] ... saber si se puede hacer esto ... aunque no sea con tablas dinamicas.
... las pestañas aumentan, y en principio, no tengo posibilidad de unirlas todas en una.

Fernando Arroyo escribio
Una funcion personalizada podría hacer el trabajo, algo como: [...]





para casos 'similares' y dado que funciones como 'Contar.Si', 'BDFuncion' [...] NO 'trabajan' con rangos 3-D :((
una combinacion de 'otras' funciones con matrices 'estaticas' [o 'construidas segun necesidad'] es util [tambien] ;)
p.e. suponiendo que las hojas [en sus pestañas] se llamaran: 'Ene', 'Feb', 'Mar' [...]
y que se habra de 'contar' [buscando] en el rango 'A2:A35' [de cada hoja]
las celdas que 'contengan' el nombre del cliente [p.e. 'Cliente 01']
una formula [de entre otras varias y diversas posibilidades y circunstancias] seria:
[tomando en cuenta que 'mi' separador de argumentos es la coma ',' NO punto y coma ';']:
=SumaProducto(Contar.Si(Indirecto({"Ene"\"Feb"\"Mar"}&"!a2:a35"),"=Cliente 01"))
Pros: las hojas en la matriz 'constante' =>{"Ene"\"Feb"\"Mar"}<= NO 'necesitan' estar 'ordenadas' ;)
puedes 'ampliar' [o 'recortar' o... 'tijeretear'] la matriz [p.e. =>{"Ene"\"Abr"\"Jun"\"Nov"}< tambien puedes 'construir' [segun necesidades] CUALQUIERA de los 'parametros' de la formula
[p.e.] 'tomar' la matriz [en lugar de 'constante'] de un rango de celdas con los nombres de las hojas
-o- 'tomar' el rango 'de busqueda' y/o el 'valor a comparar' de otras celdas que los 'construyan'
Cons: [probablemente] tendras que 'encontrar' el caracter 'separador' de la matriz constante => ',' o ';' o... '\' < 'cuidar' si el nombre de las hojas incluye espacios [o son solo numeros] que 'quede' delimitado por apostrofos =>'<[p.e.] =SumaProducto(Contar.Si(Indirecto("'"&{"Ene 01"\"Feb 02"\"Mar 03"}&"'!a2:a35"),"=Cliente 01"))

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida