Todo se publica por Israel Cassales
-
Identificar nuevas filas agregadas y removidas en una tabla
Hola, Aunque parece claro lo que busca, aún deja espacio a la especulación. Entiendo que parte de una lista el primer día del mes y cada día que pasa la lista sufre cambios. Es decir tienes adiciones y eliminaciones, pero no menciona si el primer día de cada mes, la lista es igual a la anterior del último día del mes pasado. Yo supondría que sí. Tiene que desarrollar en su tema cómo es que esa lista va creciendo, ¿Extrae, copia y pega, vincula, etc.? Además está el orden de los eventos y menciona que recibe un archivo por cada día. Considerando esas explicaciones puedo participar con una idea, y hago énfasis es una idea. Algo pragmático para encontrar las diferencias sería usar la función COINCIDIR() Para los nuevos su matriz de comparación será hacia “atrás” en el rango. Y para los eliminados será hacia “adelante”. Lo mostrado anteriormente fue un ejemplo y con el filtro puede ver los resultados. Después para acomodarlo en un solo resultado puede usar esas matrices combinando ORDENARPOR() con APILARV() Si le interesa la idea podría intentarlo y regresar con su avance o sus comentarios. También esperar un poco a que un Maestro le comparta alguna idea adicional. Saludines
-
INVERTIR NOMBRES Y APELLIDOS
@Héctor Miguel Fíjate que el contar las palabras o los espacios, considero no es el desafío principal, sino la interpretación. Por ejemplo, LUNA puede ser nombre o apellido y como éste hay múltiples situaciones. Lo que me sorprende es el origen de los datos, por lo regular en los desarrollos el nombre o nombres y los apellidos se escriben en cuadros de texto independientes, algo que no pasa con los usuarios tradicionales cuando hacen su plantillas en las hojas de Excel, por lo regular los dejan juntos y luego ocurre que los necesitan separar para extraer por decir algo el número de identificación RFC, DNI, etc., concatenando algunas letras de los nombres y pasan este tipo de escenarios. Saludines.
-
INVERTIR NOMBRES Y APELLIDOS
AYUDA EXCEL.xlsx
-
INVERTIR NOMBRES Y APELLIDOS
Saludos totales, Bueno, se tiene que editar un poco porqué el tratar de gestionar las múltiples variantes en los nombres aunque no es complicado hay que intentar ser creativos. =CONCATENAR(EXTRAE(A2, HALLAR("#", SUSTITUIR(A2, " ", "#", LARGO(A2) - LARGO(SUSTITUIR(A2, " ", "")) - C2)) + 1, LARGO(A2))," ",SUSTITUIR(A2,(EXTRAE(A2, HALLAR("#", SUSTITUIR(A2, " ", "#", LARGO(A2) - LARGO(SUSTITUIR(A2, " ", "")) - 1)) + 1, LARGO(A2))),"")) También se debería poder simplificar un poco: =LET( texto, A2, espaciosTotales, LARGO(texto) - LARGO(SUSTITUIR(texto, " ", "")), posicionSegundoEspacio, HALLAR("#", SUSTITUIR(texto, " ", "#", espaciosTotales - 1)), textoRestante, EXTRAE(texto, posicionSegundoEspacio + 1, LARGO(texto)), nombreRestante, SUSTITUIR(texto, textoRestante, ""), CONCATENAR(textoRestante, " ", nombreRestante) ) Y bueno, si nos ponemos creativos para anticipar opciones, se podrían reemplazar el "Y" y los "DE" con los "DEL" por "" para eliminarlos. Lo anterior es solo una idea, no es exacta para TODAS las posibles combinaciones, así por lo general hay que personalizar.
-
Formulas anidadas con diferentes condicionales
Saludos cordiales. Antes de que cierren el tema, algo diferente que me parece oportuno comentar para los diferentes posibles lectores es que antes podías anidar efectivamente hasta 7 IF, ahora pueden ser hasta 64. Aunque no se recomienda pero se puede, y en esos casos es mejor combinar SI() con O() y también con Y()
-
Mantener una fecha con día fijo
Para una posible ayuda le recomiendo que deje un libro de ejemplo que evite las conjeturas y las deducciones porque su redacción final es confusa. Trate de ser lo más explicito que pueda.
-
Información sobre pivot table
Por si quiere el rango en la celda. Sub ColocarRangoEnCelda() Dim pt As PivotTable Dim rangoDatos As Range ' Ajuste "Hoja2" al nombre de su hoja y "TablaDinamica1" al nombre de su tabla dinámica Set pt = Worksheets("Hoja2").PivotTables("TablaDinamica1") ' Obtener el rango de datos de la tabla dinámica Set rangoDatos = pt.TableRange1 ' Colocar el rango de datos en la celda C1 de la Hoja2 Worksheets("Hoja2").Range("C1").Value = rangoDatos.Address End Sub
-
Información sobre pivot table
Saludos cordiales a todos. Para evitar conjeturas y deducciones al lector se recomienda dejar un libro de ejemplo, esto ayuda a proponer ideas específicas en caso de tenerlas. En base a lo leído del tema un código como este debería servir. Debe editar a su conveniencia. Saludos. Sub ObtenerRangoTablaDinamica() Dim pt As PivotTable Dim rangoDatos As Range ' Ajuste "Hoja2" al nombre de su hoja y "TablaDinamica1" al nombre de su tabla dinámica Set pt = Worksheets("Hoja2").PivotTables("TablaDinamica1") ' Obtener el rango de datos de la tabla dinámica Set rangoDatos = pt.TableRange1 ' Mostrar el rango de datos en una caja de mensaje MsgBox "El rango de datos es: " & rangoDatos.Address End Sub
-
Poner consecutivo cada 2 celdas dentro de una fila
En base a lo explicado participo con esta idea: =SI(RESIDUO(COLUMNA(), 3) = 0, MAX($C4:C4) + 1, "") Poner consecutivo en fila cada 2 celdas.xlsx
-
Calculadora de partidos de un torneo mixto de padel
Excelente propuesta Maestro @John Jairo V yo tuve problemas para aterrizar el cálculo en una sentencia.
-
Calculadora de partidos de un torneo mixto de padel
Mira intente otro ejemplo: El problema aquí no es crear esa macro que no esté considerando cada partido dos veces, ejemplo: una vez cuando el HOMBRE_01 juega con la MUJER_01 contra el HOMBRE_02 y la MUJER_02, y otra vez cuando el HOMBRE_02 juega con la MUJER_02 contra el HOMBRE_01 y la MUJER_01. Entonces sí, son efectivamente el mismo partido, por lo que deberíamos contarlos solo una vez y discriminarlos, ese considero es el detalle. En tu caso, estás buscando un “diseño de torneo de parejas mixtas”, donde cada hombre juega con cada mujer exactamente una vez, y cada pareja juega contra cada una de las otras parejas exactamente una vez. Esto es un problema más de matemáticas que de programación, y aunque existen algoritmos para resolverlo algunos son bastante complejos y pueden ser difíciles de implementar en VBA. Por ejemplo buscando en Internet lo tuyo se considera un problema de combinatoria y se podría resolver con un algoritmo conocido como “round-robin”, lo que habría que hacer es crearlo en VBA pero en el contexto de tu consulta sería de una manera un poco diferente. En lugar de seleccionar elementos de un grupo para procesar, estamos generando todas las combinaciones posibles de parejas de jugadores para los partidos de padel. Cada jugador juega con cada otro jugador exactamente una vez, lo cual es similar al concepto de “Round-Robin” de dar a cada elemento en un grupo una oportunidad equitativa. Así que en el adjunto que te mando inicie con HOMBRE_01 y sus combinaciones, luego HOMBRE_02 y sus combinaciones, sería seguirlo construyendo con los 10 que hacen falta. Pero solo es una idea, esperando te ayude a lograr lo que buscas ya que una vez entendido los ejemplos que mencionas de momento no puedo aportar algo adicional. Mixto.xlsb
-
Calculadora de partidos de un torneo mixto de padel
Mixto.xlsb
-
FELICIDADES
Mis mejores deseos para cada uno de los que participan en el foro, consultantes, miembros, maestros, moderadores, administradores... Y a cada quien que pase por aquí. ¡Feliz Año 2024! Saludines
-
INVERTIR NOMBRES Y APELLIDOS
Tu libro Consulta de Afiliados AFP - PTO ILO.xlsx
-
INVERTIR NOMBRES Y APELLIDOS
En base a lo explicado participo con la siguiente propuesta que debería poder cumplir con lo expuesto. Saludines. =CONCATENAR(DERECHA(D4,LARGO(D4)-HALLAR(" ",D4,HALLAR(" ",D4)+1)), " ", IZQUIERDA(D4,HALLAR(" ",D4,HALLAR(" ",D4)+1)-1)) Por favor solo cambia tu separador de argumentos de (;) a (,)