Autor Tema: ayuda con excel 2007  (Leído 3986 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
ayuda con excel 2007
« : abril 03, 2012, 12:06:54 pm »
Buen dia compañeros!

Me pueden ayudar con una cuestion de excel por favor. La cosa esta asi: tengo una tabla con tres columnas, la primera con el nombre de 5 personas con 20 registros en total, el nombre de la persona se repite varias veces. La segunda columna tiene una hora de inicio y la tercera tiene una hora final.

Ahora lo que quiero es q en otra hoja del mismo libro de excel se me muestren los datos ya filtrados. Por ejemplo, en la hoja uno del libro que me salga solo los registros de la persona 1, en la hoja dos, solo los registros de la persona 2 y asi sucesivamente.

Ya lo intente haciendo un if y colocando nombre a los rangos y utlilizar el vlookup pero solo logro que se me muestre un registro de la persona X y necesito que se me muestren todos los de esa persona.

Yo se que esta complicado y ya me rompi la cabeza para hacerlo pero nada!

Agradezco de antemano la ayuda que me puedan dar!
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!

Desconectado JGuillen™

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3449
  • PHP,C#,MySQL,SQL
Re: ayuda con excel 2007
« Respuesta #1 : abril 03, 2012, 12:25:28 pm »

Desconectado TK!

  • The Communiter-
  • *
  • Mensajes: 2478
Re: ayuda con excel 2007
« Respuesta #2 : abril 03, 2012, 02:04:50 pm »
Ya probaste usar tabla dinamica???

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
Re: ayuda con excel 2007
« Respuesta #3 : abril 03, 2012, 02:11:20 pm »
Intentare con el filtro a ver que ondas y sip ya intente con tabla dinamica pero como es una plantilla la que voy a generar no creo que sea muy conveniente, digo yo vea! Crees que quedaria bien?
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!

Desconectado TK!

  • The Communiter-
  • *
  • Mensajes: 2478
Re: ayuda con excel 2007
« Respuesta #4 : abril 03, 2012, 02:18:03 pm »
Intentare con el filtro a ver que ondas y sip ya intente con tabla dinamica pero como es una plantilla la que voy a generar no creo que sea muy conveniente, digo yo vea! Crees que quedaria bien?
Fijate que yo usaba tabla dinamica asi como plantilla pero cada vez que se refresca pierde el formato la tabla =/ asi que si seria un pequeño inconveniente, pero igual, podes tener el formato de la plantilla y llamar los datos de la tabla dinamica (Y)

Desconectado mil123

  • Sv Full Member
  • *
  • Mensajes: 558
Re: ayuda con excel 2007
« Respuesta #5 : abril 03, 2012, 03:00:16 pm »
Tmabien podrias usar una combinacion de if, con la formula BUSCARV()

=BUSCARV(parámetro1;parámetro2;parámetro3;parámetro4)
Explicación de los parámetros:
parámetro1: valor a buscar.
parámetro2: matriz donde se busca el valor, esta matriz debe disponer en la primera columna lo que se desea encontrar, y en la siguientes columnas el valor que se desea mostrar.
parámetro3: se indica la columna que se va a mostrar en caso de que se encuentre el valor buscado.
parámetro4: campo opcional, indica si la matriz donde se buscan los datos está ordenado o no.

yo la uso bastante....

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
Re: ayuda con excel 2007
« Respuesta #6 : abril 03, 2012, 05:13:59 pm »
Hey no sabia eso de la tabla dinamica, umm esta de ver el detalle. Y pues con el buscarv ya lo he tratado de utilizar dentro de un if y solamente logro capturar un registro no se como hacer para que me los tomara todos :s
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!

Desconectado Capricorn Shura

  • The Communiter-
  • *
  • Mensajes: 1737
  • Everybody was a noob once...
Re: ayuda con excel 2007
« Respuesta #7 : abril 03, 2012, 08:32:49 pm »
Pero no querés que sea dinámico? Estandaricemos tu ejemplo, vos tenés 3 nombres que se repiten en la primera columna, en la segunda columna tenés la hora de entrada según el nombre y en la tercera la hora de salida (como que registraras la hora de entrada y salida de una persona a su trabajo). Lo que vos querés es que en la sheet2 o libro2 apareza digamos Juan García y todos sus registros, en la sheet3 o libro3 aparezca José Pérez con todos sus registros. La pregunta es: ¿vos querés que al introducir nuevos registros en la sheet1 o libro1, la sheet2 y 3 se actualicen con un simple refresh? o ¿lo querés hacer manualmente?

Con tablas dinámicas puedes hacerlo con un registro inicial y al filtrar como te interesa das doble click sobre un dato y te crea automáticamente un registro en un libro nuevo con lo que necesités. La otra opción sin usar tablas dinámicas (y más manual) es que con filtros ordenés por nombres y cuando ya tengás ordenado por nombre solo seleccionás a por decir alguien, Juan García y copias su registro para pegarlo en un libro nuevo.

Desconectado gcastellanos

  • Sv Member
  • ***
  • Mensajes: 196
    • Enter Computadoras
Re: ayuda con excel 2007
« Respuesta #8 : abril 04, 2012, 12:08:22 am »
Vamos a ver si te entendí...
Como las tablas dinámicas te pueden dar problema, he probado usando macro; en la primera hoja están los registros y he puesto 3 hojas más de ejemplo con datos filtrados usando macro.

Acá está el archivo:
http://hop.tl/zLQ6gE2WTvvQVnZQvc

Si te manda advertencia no te preocupés que no tiene nada malicioso el archivo, tenés que tener habilitado el uso de macros.

Los rangos en la macro están fijos, no se cómo los tenés en tu archivo, las hojas de datos tienen cierto formato con colores simulando una plantilla.
Esta es la macro que he usado para filtrar según el nombre de la persona escrito en cada hoja:


    Sheets("100").Select
    Range("B5:F31").Select
    Selection.ClearContents
    Nombre = Cells(2, 3).Value
    Sheets("Detalle").Select
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2, Criteria1:= _
        Nombre
    Range("A2:E34").Select
    Selection.Copy
    Sheets("100").Select
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B3").Select
    Sheets("Detalle").Select
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2

Porque lo que hago, no lo entiendo; pues no hago lo que quiero, sino lo que aborrezco, eso hago. (Rom. 7:15)

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
Re: ayuda con excel 2007
« Respuesta #9 : abril 04, 2012, 10:52:22 am »
Pero no querés que sea dinámico? Estandaricemos tu ejemplo, vos tenés 3 nombres que se repiten en la primera columna, en la segunda columna tenés la hora de entrada según el nombre y en la tercera la hora de salida (como que registraras la hora de entrada y salida de una persona a su trabajo). Lo que vos querés es que en la sheet2 o libro2 apareza digamos Juan García y todos sus registros, en la sheet3 o libro3 aparezca José Pérez con todos sus registros. La pregunta es: ¿vos querés que al introducir nuevos registros en la sheet1 o libro1, la sheet2 y 3 se actualicen con un simple refresh? o ¿lo querés hacer manualmente?

Con tablas dinámicas puedes hacerlo con un registro inicial y al filtrar como te interesa das doble click sobre un dato y te crea automáticamente un registro en un libro nuevo con lo que necesités. La otra opción sin usar tablas dinámicas (y más manual) es que con filtros ordenés por nombres y cuando ya tengás ordenado por nombre solo seleccionás a por decir alguien, Juan García y copias su registro para pegarlo en un libro nuevo.


A mi me gustaria que fuera dinamica asi como dices tu con las tablas dinamicas pero en realidad esa parte de las tablas no me la podia, me puedes indicar algun lugar por favor donde pueda ver mas info de eso porque en realidad me parece excelente.

Gracias por la ayuda!!!!
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
Re: ayuda con excel 2007
« Respuesta #10 : abril 04, 2012, 11:05:05 am »
Vamos a ver si te entendí...
Como las tablas dinámicas te pueden dar problema, he probado usando macro; en la primera hoja están los registros y he puesto 3 hojas más de ejemplo con datos filtrados usando macro.

Acá está el archivo:
http://hop.tl/zLQ6gE2WTvvQVnZQvc

Si te manda advertencia no te preocupés que no tiene nada malicioso el archivo, tenés que tener habilitado el uso de macros.

Los rangos en la macro están fijos, no se cómo los tenés en tu archivo, las hojas de datos tienen cierto formato con colores simulando una plantilla.
Esta es la macro que he usado para filtrar según el nombre de la persona escrito en cada hoja:


    Sheets("100").Select
    Range("B5:F31").Select
    Selection.ClearContents
    Nombre = Cells(2, 3).Value
    Sheets("Detalle").Select
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2, Criteria1:= _
        Nombre
    Range("A2:E34").Select
    Selection.Copy
    Sheets("100").Select
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B3").Select
    Sheets("Detalle").Select
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2




Pouta! este me vergon esta ese archivo es exactamente como lo deseo pero aun no le entiendo mucho jejejejeje en este caso como puedo hacer para aumentar el rango de evaluacion de datos ya que son entre 500 y 700 registros en total??

Muchisimas gracias!!!
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!

Desconectado gcastellanos

  • Sv Member
  • ***
  • Mensajes: 196
    • Enter Computadoras
Re: ayuda con excel 2007
« Respuesta #11 : abril 04, 2012, 02:28:51 pm »

Pouta! este me vergon esta ese archivo es exactamente como lo deseo pero aun no le entiendo mucho jejejejeje en este caso como puedo hacer para aumentar el rango de evaluacion de datos ya que son entre 500 y 700 registros en total??

Muchisimas gracias!!!

He modificado un poco la macro para que sea un tanto flexible, adjunto el archivo modificado y acá la macro explicada:

Archivo:
http://hop.tl/b6_fomoUzpNXDfvLrH

Macro:
    Dim hoja As String
    hoja = ActiveSheet.Name  'Almacena el nombre de la hoja destino (donde se copiarán los datos filtrados) en variable "hoja"
    Range("B5:F31").Select  'selecciona para limpiar datos antes de colocar los nuevos, esto es en la hoja de plantilla
    Selection.ClearContents 'Borra los datos antes seleccionados
    Nombre = Cells(2, 3).Value  'Guarda en la variable "Nombre", el nombre para filtrar sus registros, en este caso el nombre está en fila 2, col 3
    Sheets("Detalle").Select  'Se hubica en la hoja origen de los registros, acá se llama "Detalle"
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2, Criteria1:=Nombre   'Selecciona registros desde A1 hasta E21 y filtra por nombre, acá llega hasta fila 21, se puede aumentar
    Range("A3:E3").Select  'Se ubica al inicio de los datos filtrados que va a copiar
    Range(Selection, Selection.End(xlDown)).Select  'Marca los datos filtrados hasta el final
    Selection.Copy  'Copia el rango seleccionado
    Sheets(hoja).Select  'Selecciona la hoja destino para pegar los datos
    Range("B5").Select  'En la hoja destino, se ubica en la primera celda donde se copiarán los datos
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False   'Copia los datos
    Range("B3").Select
    Sheets("Detalle").Select  'Regresa a la hoja origen de datos para quitar el filtro
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2  'Elimina el filtro para dejar los datos como estaban
    Range("B2").Select
    Sheets(hoja).Select  'Se pasa a la hoja destino para mostrar los datos

Si querés me enviás tu archivo para insertarle la macro y dejarlo a la medida.
Porque lo que hago, no lo entiendo; pues no hago lo que quiero, sino lo que aborrezco, eso hago. (Rom. 7:15)

Desconectado gdogui

  • Sv Member
  • ***
  • Mensajes: 286
  • It is time to change
Re: ayuda con excel 2007
« Respuesta #12 : abril 07, 2012, 12:45:06 pm »
He modificado un poco la macro para que sea un tanto flexible, adjunto el archivo modificado y acá la macro explicada:

Archivo:
http://hop.tl/b6_fomoUzpNXDfvLrH

Macro:
    Dim hoja As String
    hoja = ActiveSheet.Name  'Almacena el nombre de la hoja destino (donde se copiarán los datos filtrados) en variable "hoja"
    Range("B5:F31").Select  'selecciona para limpiar datos antes de colocar los nuevos, esto es en la hoja de plantilla
    Selection.ClearContents 'Borra los datos antes seleccionados
    Nombre = Cells(2, 3).Value  'Guarda en la variable "Nombre", el nombre para filtrar sus registros, en este caso el nombre está en fila 2, col 3
    Sheets("Detalle").Select  'Se hubica en la hoja origen de los registros, acá se llama "Detalle"
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2, Criteria1:=Nombre   'Selecciona registros desde A1 hasta E21 y filtra por nombre, acá llega hasta fila 21, se puede aumentar
    Range("A3:E3").Select  'Se ubica al inicio de los datos filtrados que va a copiar
    Range(Selection, Selection.End(xlDown)).Select  'Marca los datos filtrados hasta el final
    Selection.Copy  'Copia el rango seleccionado
    Sheets(hoja).Select  'Selecciona la hoja destino para pegar los datos
    Range("B5").Select  'En la hoja destino, se ubica en la primera celda donde se copiarán los datos
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False   'Copia los datos
    Range("B3").Select
    Sheets("Detalle").Select  'Regresa a la hoja origen de datos para quitar el filtro
    ActiveSheet.Range("$A$1:$E$21").AutoFilter Field:=2  'Elimina el filtro para dejar los datos como estaban
    Range("B2").Select
    Sheets(hoja).Select  'Se pasa a la hoja destino para mostrar los datos

Si querés me enviás tu archivo para insertarle la macro y dejarlo a la medida.


Hey viejo!! muchisimas gracias por tu ayuda!!! en serio te pasaste!!!

Ya pude construir la plantilla :D
La muerte esta tan segura de su victoria, que deja toda una vida de ventaja!!!