johnmpl
Board Regular
- Joined
- Jun 14, 2013
- Messages
- 237
- Office Version
- 365
- Platform
- Windows
Buenos días.
Mi pregunta tiene que ver con sacar las iniciales de un nombre en Excel. He hecho una fórmula (no matricial) que funciona solo hasta 4 nombres (pudiesen ser más). La fórmula es la siguiente (el Nombre está en B5):
=SI.ERROR(IZQUIERDA(B5);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR(" ";B5)+1;1);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR("*";SUSTITUIR(B5;" ";"*";2))+1;1);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR("*";SUSTITUIR(B5;" ";"*";3))+1;1);"")
Si está en B5 el nombre "John Jairo Vergara Domínguez", la fórmula devuelve JJVD. Si está escrito "Ivan Palacios", devuelve IP, lo que está perfecto... pero quiero más...
He pensado en una fórmula matricial que me devuelva las iniciales de cada nombre sin importar la cantidad de palabras que estén en la celda, para hacer la fórmula más dinámica. La fórmula que he realizado es la siguiente:
{=EXTRAE(" "&B5;ENCONTRAR("#";SUSTITUIR(" "&B5;" ";"#";FILA(INDIRECTO("1:"&LARGO(B5)-LARGO(SUSTITUIR(B5;" ";""))+1))))+1;1)}
Esta función funciona muy bien, porque logra su cometido: extrae las iniciales de cada nombre sin importar el número de palabras que tenga. Si escribo en B5 el nombre "John Jairo Vergara Domínguez", la función alberga las iniciales en una matriz: {"J";"J";"V";"D"}. Pero aquí viene la pregunta... ¿Cómo hacer para que estas letras que están en la matriz se muestren en una sola celda? es decir, en la celda me de JJVD, debido que, si realizo la fórmula matricial, solo me muestra la primera inicial. Sé que se puede hacer la fórmula matricial en varias celdas, y que en cada celda se generaría una inicial por celda, pero lo que quiero es que el resultado se observe en una sola celda. Muchas gracias por sus amables y prontas respuestas a mi inquietud.
Mi pregunta tiene que ver con sacar las iniciales de un nombre en Excel. He hecho una fórmula (no matricial) que funciona solo hasta 4 nombres (pudiesen ser más). La fórmula es la siguiente (el Nombre está en B5):
=SI.ERROR(IZQUIERDA(B5);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR(" ";B5)+1;1);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR("*";SUSTITUIR(B5;" ";"*";2))+1;1);"")&SI.ERROR(EXTRAE(B5;ENCONTRAR("*";SUSTITUIR(B5;" ";"*";3))+1;1);"")
Si está en B5 el nombre "John Jairo Vergara Domínguez", la fórmula devuelve JJVD. Si está escrito "Ivan Palacios", devuelve IP, lo que está perfecto... pero quiero más...
He pensado en una fórmula matricial que me devuelva las iniciales de cada nombre sin importar la cantidad de palabras que estén en la celda, para hacer la fórmula más dinámica. La fórmula que he realizado es la siguiente:
{=EXTRAE(" "&B5;ENCONTRAR("#";SUSTITUIR(" "&B5;" ";"#";FILA(INDIRECTO("1:"&LARGO(B5)-LARGO(SUSTITUIR(B5;" ";""))+1))))+1;1)}
Esta función funciona muy bien, porque logra su cometido: extrae las iniciales de cada nombre sin importar el número de palabras que tenga. Si escribo en B5 el nombre "John Jairo Vergara Domínguez", la función alberga las iniciales en una matriz: {"J";"J";"V";"D"}. Pero aquí viene la pregunta... ¿Cómo hacer para que estas letras que están en la matriz se muestren en una sola celda? es decir, en la celda me de JJVD, debido que, si realizo la fórmula matricial, solo me muestra la primera inicial. Sé que se puede hacer la fórmula matricial en varias celdas, y que en cada celda se generaría una inicial por celda, pero lo que quiero es que el resultado se observe en una sola celda. Muchas gracias por sus amables y prontas respuestas a mi inquietud.