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
×
×
  • 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.