Saltar al contenido

johnmpl

Moderadores
  • Contador de contenido

    2860
  • Unido

  • Última visita

  • Days Won

    148

Sobre johnmpl

  • Rango
    Miembro

Información de perfil

  • Sexo Hombre

Configuraciones

  • Campo que utilizas como separador de argumentos ;

Visitantes recientes del perfil

1907 visitas de perfil
  1. Asginación automática....

    ¡Hola, a todos! Si es con fórmula, aprovechando el archivo de @Snake, bastaría con: ="PUERTA N° "&1+RESIDUO(FILAS(B$2:B2)-1;5) ¡Bendiciones!
  2. ¡Hola, @rafaga8! (y @Mauricio_ODN). Puedes usar el siguiente código VBA: Sub ConcatenaGrupos() Dim Datos As Range, Celda As Range Dim dic As Object Dim i&, it$, a, Res Set Datos = Range("A1").CurrentRegion Set Datos = Datos.Offset(1).Resize(Datos.Rows.Count - 1) Set dic = CreateObject("Scripting.Dictionary") For i = 1 To Datos.Rows.Count dic.Item(Datos(i, 1).Value) = Datos(i, 1).Value Next i ReDim Res(1 To dic.Count, 1 To 2) For i = 0 To dic.Count - 1 it = dic.keys()(i) Res(i + 1, 1) = it Set Celda = Datos.Find(it, Datos.Cells(Datos.Cells.Count), xlFormulas, xlWhole) a = Application.Transpose(Celda.Offset(, 1).Resize(Application.CountIf(Datos, it))) Res(i + 1, 2) = Join(a, ", ") Next i With Range("E2") .CurrentRegion.Offset(1).Clear .Resize(UBound(Res, 1), UBound(Res, 2)) = Res .CurrentRegion.Columns.AutoFit End With Set Datos = Nothing: Set Celda = Nothing Set dic = Nothing: Erase a, Res End Sub Revisa el archivo adjunto (Pulsa sobre la flecha naranja). ¡Bendiciones! muestra.xlsm
  3. Establecer simultaneidad entre fechas

    Hola, @gabyragolia! (y @Cristian 1985) El archivo no debe superar los 100kb de capacidad. Prueba comprimiendo los datos en .rar o .zip; o, en su defecto, súbelo a un servidor externo tipo dropbox, onedrive, google drive, mediafire, etc. y nos compartes el link. ¡Bendiciones!
  4. La fórmula está haciendo relación a las referencias estructuradas, las cuales puedes visualizar en el siguiente enlace: https://support.office.com/es-es/article/Usar-referencias-estructuradas-con-las-tablas-de-Excel-f5ed2452-2337-4f71-bed3-c8ae6d2b276e Si no estás cómodo con ellas, basta con que reemplaces la fórmula por: =--B2. El doble negativo es una operación modular, la cual permite, entre otras cosas, a convertir un texto numérico a un número reconocido por Excel. Por definición, las fechas reconocidas por Excel son números seriales. Las siguientes fórmulas son equivalentes: =B2+0 =B2*1 =B2/1 =B2^1 ¡Espero haberte ayudado, Dios te bendiga!
  5. ¡Hola, a todos! En el adjunto, dejo 3 propuestas que te pueden servir. Debes tener en cuenta que las fechas que tienes en el Excel no son reconocidas por excel como fecha, sino como texto. Por ende, hice una sencilla fórmula al lado para convertirlas en fecha Excel. Este proceso también se podría hacer en la misma columna, pero lo dejo en la columna de al lado para que, si ingresas más datos, estas nuevas fechas se conviertan correspondientemente. Los listados los he convertido a Tabla, para que si ingreses nuevos datos, la fórmula los coja automáticamente sin modificarla manualmente. Revisa el adjunto, por favor, ¡y Comentas! ¡Bendiciones! Rango máx y min.zip
  6. ¡Hola, a ambos! La fórmula propuesta por @GabrielRaigosa falla cuando no hay certificados dentro de los rangos estipulados. Dejo dos opciones para resolver: Una usando la función AGREGAR (disponible a partir de Excel 2010) y otra usando K.ESIMO.MENOR y K.ESIMO.MAYOR matricial. ¡Bendiciones! Max y Min Rango.xlsx
  7. Rellenar rangos incompletos

    ¡Hola, @M0sh! Revisa, por favor, el archivo adjunto. Haz clic en la flecha azul. ¡Bendiciones! Completar Rangos.xlsm
  8. ¡Hola, @dagor! ¡Bienvenido al foro! Revisa el adjunto, donde te muestro una forma - entre varias - de solucionarlo. ¡Bendiciones! Busqueda en tabla.xlsx
  9. ¡Hola, @miulrg! Revisa por favor el archivo adjunto. ¡Bendiciones! Ejemplo (1).xlsx
  10. ¡Hola, a todos! No me he querido perder la fiesta. Así que dejo otra opción en el adjunto. ¡Bendiciones! TRASLADOS TARIFAS.xlsx
  11. ¡Hola, @digitalboy! Esta parte es solo por compatibilidad con versiones anteriores. No veo en la práctica ninguna baja en rendimiento. Es más eficiente para vba leer en una iteración (loop) un variant o array que un range (desde la misma ayuda de Excel viene esto). Sub performance2() Dim arr, ti!, i&, a& ti = Timer arr = Range("A1:A1000000") For i = LBound(arr) To UBound(arr) a = arr(i, 1) Next Debug.Print Timer - ti End Sub En cuanto a los ejemplos subidos por el consultante, entre Range("A1") y Cells(1,1), cells es más eficiente que range, y es ligeramente más eficiente Cells(1,1) que Cells(1,1).Value ó Cells(1,1).Value2. ¡Bendiciones!
  12. Lo puse manualmente, simplemente para que vieras que hice cambios en los nombres. ¡Bendiciones!
  13. ¡Hola de nuevo, a ambos! Adjunto una muestra reducida del archivo para que quede en el foro. Ten en cuenta que los nombres deben ser iguales en ambas partes para que pueda haber coincidencia... a menos que quieras "complicar la cosa". Como recomendación, no buscaría por nombre, sino por número de cédula. Si analizas bien la fórmula, podrás hacer el cambio, teniendo en cuenta que también deben ser iguales en ambos sitios, para no aplicar funciones adicionales de texto para hacer la equivalencia, o comodines, dependiendo de como tengas los datos. ¡Bendiciones! Ejm.xlsx
  14. ¡Hola @leones55! Sube un archivo ejemplo Excel (no mayor a 100kb) de lo que tienes y deseas obtener, para que así obtengas ayuda más certera de lo que quieres. En caso tal que tu archivo ejemplo supere ese peso, súbelo en un servidor externo tipo dropbox, onedrive, etc. y nos compartes el link. ¡Bendiciones!
  15. ¡hola, @gomecin! Puedes probar con: Hoja1.Cells(1, 1).Value2 o, inclusive mejor, sin la propiedad value - puesto que es la propiedad por defecto -: Hoja1.Cells(1, 1) Algo a tener en cuenta es que, cuando utilices variables, decláralas. No las dejes "en el aire", puesto que el sistema las tomará como si fuesen de tipo Variant, y ocupa más memoria. Podrías hacer: Dim t1!, t2!, t3!, t4!, t5!, t6!, ti!, bucle&, x&, a& Dim ws1 as Worksheet . . . Set ws1 = Hoja1 ti = Timer For x = 1 To bucle a = ws1.Cells(1, 1) Next t4 = Timer - ti Ten en cuenta que: Dim t1! es lo mismo que Dim t1 as single Dim a& es lo mismo que Dim a as long ¡Bendiciones!
×