Saltar al contenido

Recommended Posts

publicado

Buenas noches colegas. Espero que se encuentren bien de salud.

Hace un par de días solicité a este foro (en el apartado de Macro), ayuda sobre cómo lograr obtener la edad de los empleados y recibí dos excelentes respuestas de los Profesores Antoni y JSD, a los cuales les agradezco de manera infinita su pronta y eficaz ayuda, pero me quedé con una duda.

Yo uso una fórmula para extraer el día, mes y año de nacimiento partiendo del número de Carnet de Identidad. Este documento lo poseen todos los cubanos y consta de 11 dígitos, los dos primeros representan el AÑO, los dos siguientes el MES y los otros dos que siguen el DÍA de nacimientos, los 5 restantes forman parte de una nomenclatura donde consta tomo, folio y sexo de cada persona.

Ejemplo (Mi número de Identidad)

66020108609

66 es el año de nacimiento (1966)

02 es el mes de nacimiento (Febrero)

01 día de nacimiento (1)

O sea, que mi fecha de nacimiento quedaría de la siguiente manera: 01/02/1966.

Partiendo de esta fecha yo puedo obtener un grupo de resultados. ¿Dónde está el problema?

Cuando el individuo nace a partir del 2000 se me complica obtener los datos reales. La fórmula que yo empleé:

=FECHA(VALOR(EXTRAE([@[C. Identidad]];1;2));VALOR(EXTRAE([@[C. Identidad]];3;2));VALOR(EXTRAE([C. Identidad];5;2)))

En la tabla del ejemplo que anexo verán dos casos (con fondos mostaza y amarillo). En uno nació en el 2003 y pone 1903, en el otro nació en el 2001 y pone 1901.

Necesito ayuda para ver que puedo hacer, porque con esa fecha yo pretendo mostrar en un ListBox los Cumpleaños del día.

Gracias de antemano y buenas noches.

Saluos

Pino

Cumpleaños Foro.xlsm

publicado (editado)

Hola,

Puedes cambiar la fórmula de C5 así:

=FECHA(IZQUIERDA(B5;2)+(100*(IZQUIERDA(B5;2)<40));EXTRAE(B5;3;2);EXTRAE(B5;5;2))

Saludos,

Editado el por Victor7
publicado

¡Saludos a ambos!

No creo @Victor7 que la fórmula que has propuesto funcione de forma adecuada tal cual y como está

hace 5 horas, Victor7 dijo:
=FECHA(IZQUIERDA(B5;2)+(100*(IZQUIERDA(B5;2)<40));EXTRAE(B5;3;2);EXTRAE(B5;5;2))

(comparas números con textos).

Dejo otra propuesta (en C5, y le colocas formato de fecha) :

=--TEXTO(19+(IZQUIERDA(B5;2)<"25")&IZQUIERDA(B5;6);"0-00-00")

¡Bendiciones!

publicado

Buenos días colegas.  Buenos días Víctor. 

Aplique la fórmula que usted me sugirió pero obtengo el mismos resultado. 

Agradecido por su respuesta. En espera de la variante. 

Pino.

publicado

Buenos días John Jairo. Su propuesta funciona perfectamente.

Gracias por su tiempo. Gracias también al amigo Víctor. Bendiciones a todo el foro.

Mis respetos. 

Pino

publicado

Maestro @John Jairo V me parece que hay un detalle donde el consultante no está considerando (o tal vez no sea sobresaliente).

Sr. @pinoji ¿Son años cumplidos? La fórmula propuesta por el maestro cumple con la solicitud, pero si se analizan en la tabla de ejemplos hay dos (pero podrían ser más) donde el año completo no se ha cumplido.

image.thumb.png.b3798d1bedfe9c8bb98c17ca7c2efa9b.png

Como se está comparando contra la fecha de HOY(), el ejemplo Diciembre y Noviembre aún no llega, así que los individuos involucrados no tienen la edad descrita. Seguramente no importa porque se busca la fecha de cumpleaños.

Si lo desea y busca ser exacto con los años le propongo evaluar la comparación de los años con argumentos de AÑO, MES y DIA

=AÑO(HOY()) - AÑO(M22) - (SI(O(MES(HOY()) < MES(M22), Y(MES(HOY()) = MES(M22), DIA(HOY()) < DIA(M22))), 1, 0))

 

publicado

Hola de nuevo a todos,

Efectivamente, cometí un error al copiar/pegar la fórmula; no tomé la definitiva, que es ésta:

=FECHA(1900+IZQUIERDA(B5;2)+(100*(--IZQUIERDA(B5;2)<40));EXTRAE(B5;3;2);EXTRAE(B5;5;2))

...aunque no tengo claro si en algún caso es posible que haya ambigüedad: por ejemplo, un número de identidad 230101... ¿equivale a un nacimiento en 1923 o en 2023? 

He hecho una pequeña investigación, y parece que en Cuba hay una cierta cantidad de personas centenarias:

Cuba: país de centenarios - BBC News Mundo

así que............. aunque la clave, quizá, esté en que no se conceda el NI hasta que se cumpla una determinada edad, pero.........

Saludos,

Cumpleaños Foro (B).xlsm

publicado

Buenas noches colegas.

Muy interesante la propuesta de Israel Cassales, realmente no había valorado o detenido a pensar en lo que plantea, pero tiene mucha razón, aunque lo que necesito es el cumpleaños, pero si puede serme muy útil para otros proyectos donde sí necesite algo más exacto. En cuanto a usted Victor, nada, todos nos equivocamos a diario, lo importante es reflexionar y admitirlo. Es impresionante cómo se aprende en un FORO como este, cuantas cosas obviamos y son necesarias y es que Excel tiene eso de particular, podemos llegar a un mismo destino aún tomando por diferentes caminos, eso es lo que lo hace "RICO" en contenido, eso es lo que hace que nos fascine a muchos de nosotros.

Nunca me arrepentiré de pertenecer a este maravilloso Foro, como al Foro TodoExcel. Lo he manifestado en varias ocasiones y lo patento; son los dos mejores Foro de Excel que existen (es mi modesta opinión).

Ah, y a usted Victor, sí, estamos entre los países con más vieja población. Cuba cuenta con una de las poblaciones más envejecidas de América Latina y del planeta. Esto es una desgracia, no un mérito y cada día se nos envejece más, primero por la situación económica  y que hace que existan más muertes que nacimientos. Las mujeres en edad fértil no quieren parir... y por otro lado, el éxodo masivo que está experimentando nuestra isla desde hace aproximadamente dos años (aunque desde 1959 no ha dejado de serlo) nos ha dejado en una situación muy desfavorable, aumentando este índice negativo para una nación.

A todos mil gracias por sus aportes y ayudas. Tienen mis respetos y consideraciones.

Un saludo.

Pino.

publicado

Buenas a todos, @Victor7  según la página Confección del Carné de Identidad | Trámites en Cuba (cubatramite.com) daría respuesta a tu comentario. 

hace 15 horas, Victor7 dijo:

...aunque no tengo claro si en algún caso es posible que haya ambigüedad: por ejemplo, un número de identidad 230101... ¿equivale a un nacimiento en 1923 o en 2023?

 

Cita

Está compuesto por 11 dígitos:

  • Los 6 primeros dígitos corresponden a la fecha de nacimiento (año/mes/día).
  • El séptimo dígito define el siglo de nacimiento del ciudadano. (El dígito 9 señala que el ciudadano nació en el siglo XIX; del 0 al 5 que nació en el siglo XX; y los dígitos 6, 7 y 8 indican que nació en el siglo XXI).
  • El octavo y el noveno dígito son números aleatorios.
  • El décimo y el onceno dígito corresponden al sexo. (Los dígitos impares para el sexo femenino y los pares para el sexo masculino).

saludos

publicado

Hola de nuevo a todos,

Con el detalle clarificador (que yo desconocía) de @JasallBcn , se elimina el problema que yo intuía sobre la dualidad de siglo de nacimiento.  Así pues, podemos utilizar esta fórmula en todos los casos:

=FECHA(IZQUIERDA(B5;2)+100*O(--EXTRAE(B5;7;1)={6\7\8});EXTRAE(B5;3;2);EXTRAE(B5;5;2))

O, siguiendo el algoritmo utilizado por @John Jairo V :

=--TEXTO(19+O(--EXTRAE(B5;7;1)={6\7\8})&IZQUIERDA(B5;6);"0000-00-00")

obtendremos el resultado deseado .  En este último caso,  recuerdo, debe asignarse a la celda destino formato fecha.

Adjunto el archivo sólo con 5 ejemplos donde se advierten las diferencias.

Saludos,

Cumpleaños Foro (C).xlsm

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
  • 109 ¿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
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • 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.