Saltar al contenido

Contar datos por dia


clipp

Recommended Posts

Amigos míos

Necesito de su enorme ayuda. Tengo una planilla de asistencia, en esta planilla se indica la persona, el dia trabajado, el turno y el area en la que se desempeña. Con los datos necesito contar (o sumar) la cantidad de gente que se encuentra en cada dia, esto realizarlo por area y por turno.

Lo he intentado (y dejo ejemplos de como lo hice) pero no me suma siempre tengo problemas que me cuente por feccha.

Espero me puedan ayudar

Saludos

Claudio

Reporte.xls

Enlace a comentario
Compartir con otras webs

Hola @[uSER=108086]clipp[/uSER]. Puedes usar la siguiente fórmula:

=SUMAPRODUCTO(('Hoja 2'!$B$3:$B$20=$B$3)*('Hoja 2'!$C$3:$C$20=B$4)*(DESREF('Hoja 2'!$C$3:$C$20;;SI.ERROR(COINCIDIR($A5;'Hoja 2'!$D$2:$IV$2;0);0))="x"))[/CODE]

Revisa el archivo adjunto y comentas!

No olvides pulsar en "Me gusta" en la respuesta (las respuestas) que te ayudó (ayudaron) a resolver tu duda. Dios te bendiga!

Reporte.xls

Enlace a comentario
Compartir con otras webs

hola de nuevo @[uSER=108086]clipp[/uSER]. Revisa los espacios en blanco (al final o al inicio) de los títulos (como 7x7 o 4x3), puesto que en el ejemplo que me mandaste, tenías espacios de más, y yo los borré manualmente. Los valores a comparar deben ser iguales.

P.D. Los espacios de más en Excel son fatales, ten cuidado con ellos.

P.D.2. Son tan "fatales" los espacios, que Excel creó una función para eliminar los espacios de más en las celdas, llamada ESPACIOS (o RECORTAR en Excel 2010 sin SP1).

Enlace a comentario
Compartir con otras webs

Muy probablemente no le funcionó porque tiene Excel 2003. Si es así @[uSER=108086]clipp[/uSER], prueba con la siguiente fórmula:

En la celda B5:

=SUMAPRODUCTO(('Hoja 2'!$B$3:$B$20=$B$3)*('Hoja 2'!$C$3:$C$20=B$4)*(DESREF('Hoja 2'!$C$3:$C$20;;SI(ESERROR(COINCIDIR($A5;'Hoja 2'!$D$2:$IV$2;0));0;COINCIDIR($A5;'Hoja 2'!$D$2:$IV$2;0)))="x"))[/CODE]

[b]En la celda G5:[/b]

[CODE]=SUMAPRODUCTO(('Hoja 2'!$B$3:$B$20=$G$3)*('Hoja 2'!$C$3:$C$20=G$4)*(DESREF('Hoja 2'!$C$3:$C$20;;SI(ESERROR(COINCIDIR($A5;'Hoja 2'!$D$2:$IV$2;0));0;COINCIDIR($A5;'Hoja 2'!$D$2:$IV$2;0)))="x"))[/CODE]

Subo archivo de nuevo. Dios te bendiga!

Reporte(1) AE (1).zip

Enlace a comentario
Compartir con otras webs

Ok... ya por interno, me dijo que quería ver como funcionaba mi fórmula. El nuevo archivo lo posteo por acá. La fórmula de @[uSER=52414]silvana[/uSER] es más corta, pero consume más recursos del sistema a la hora de trabajar con más datos. Igual, es un buen aporte. Dios te bendiga! Subo el último archivo con las correcciones. Tema Solucionado.

Hoja de reporte.rar

Enlace a comentario
Compartir con otras webs

bueno

aprovechando que aun no cierran el tema, @[uSER=13171]Jhon[/uSER], te adjunto una nota del maestro JLD , respecto de las funciones volátiles, las que tampoco se consideran tan buenas, cuando hay muchos datos por calcular:

Finalicemos la nota diciendo que la influencia de las funciones volátiles en una hoja de Excel será significativa sólo cuando se haga uso intensivo de ellas, algo similar a lo que ocurre con las fórmulas matriciales. Por eso, y como en muchos otros aspectos de la vida, las cuestiones no son absolutas. Usar funciones volátiles no es ni buena ni mala práctica; todo es una cuestión de cantidad.

Pues eso, lo mismo para Sumaproducto, en todo caso, en bases extensas, ya sería mejor una macro que las calcule..

que estén bien. :)

Silvia

Enlace a comentario
Compartir con otras webs

Es claro lo que dices @[uSER=52414]silvana[/uSER], y estoy totalmente de acuerdo. Quiero que sepas que mi intención no es "malograr" tus aportes ni mucho menos. Siento si ha sido así, porque no ha sido mi intención, ya que aún me siento un novato en este maravilloso mundo de Excel. En la fórmula que aplicas, se hace un poco lenta por usar al final de Sumaproducto una matriz bidimensional, mientras que si se usa un vector a Excel le queda un poco más rápido calcular. Estoy seguro que debe haber muchas maneras de hacerlo mucho más rápido, y siempre de la diversidad de ideas que propone este foro aprendo... y esa es la idea.

De nuevo reitero mis disculpas. Dios te bendiga! y a seguir compartiendo!

P.D. Te puedo preguntar... cómo haces para escribir un nombre diferente, e ir linkeado a mi sin escribirse directamente? (escribes con la arroba "Jhon" para dirigirte a mi "johnmpl". Gracias!

Edito: Tal parece que el link no se refiere a mi. Acabo de notarlo. Bendiciones!

Enlace a comentario
Compartir con otras webs

Jhon, lo que yo hice, fue con la muestra que dió Clipp, no parece tan grande, y en mi máquina el cálculo sale en menos de un pestañeo... en fin, varias veces he leído que hay que tratar de no usar funciones volátiles, aunque a veces es necesario hacerlo.

En todo caso, ya el usuario decidirá cual usar, yo como tu, estoy aprendiendo, y con cada caso que resuelvo o intento resolver, aprendo un poco.

Con referencia a lo del link, @[uSER=77220]railar[/uSER], tiene la culpa, el me dijo que era para "invocar", no para linkear :mad: , jaja , la verdad, pensé que ser refería a "mencionar", pero no que eso llevaba a una alerta... OO

Saludos para todos y que estén bien.

Silvia

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.