domingo, 14 de junio de 2020

EXCEL: Abrevia nombres o palabras

Excel formula: Abbreviate names or words

Fórmula genérica

=TEXTJOIN("",1,SI(ESNUMERO(COINCIDIR(CODIGO(EXTRAE(A1,FILA(INDIRECTO("1:"&LARGO(A1))),1)),FILA(INDIRECTO("65:90")),0)),EXTRAE(A1,FILA(INDIRECTO("1:"&LARGO(A1))),1),""))

Explicación

Para abreviar el texto que contiene letras mayúsculas, puede probar esta fórmula de matriz basada en la función TEXTJOIN, una nueva función disponible en Office 365 y Excel 2019. Puede usar este enfoque para crear iniciales a partir de nombres o crear siglas. Solo las letras mayúsculas sobrevivirán a esta fórmula, por lo que el texto fuente debe incluir palabras en mayúscula. Puede usar la función NOMPROPIO para poner en mayúscula las palabras si es necesario.

En el ejemplo que se muestra, la fórmula en C5 es:

=TEXTJOIN("",1,SI(ESNUMERO(COINCIDIR(CODIGO(EXTRAE(B5,FILA(INDIRECTO("1:"&LARGO(B5))),1)),FILA(INDIRECTO("65:90")),0)),EXTRAE(B5,FILA(INDIRECTO("1:"&LARGO(B5))),1),""))

Cómo funciona esta fórmula

Trabajando de adentro hacia afuera, la función EXTRAE se usa para convertir la cadena en una matriz de letras individuales:

EXTRAE(B5,FILA(INDIRECTO("1:"&LARGO(B5))),1)

En esta parte de la fórmula, EXTRAE, FILA, INDIRECTO y LARGO se utilizan para convertir una cadena en una matriz o letras, como se describe aquí.

EXTRAE devuelve una matriz de todos los caracteres en el texto.

{"W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e "}

Esta matriz se alimenta a la función CODIGO, que genera una matriz de códigos ascii numéricos, uno para cada letra.

Por separado, FILA e INDIRECTO se utilizan para crear otra matriz numérica:

FILA(INDIRECTO("65:90")

Esta es la parte inteligente. Los números del 65 al 90 corresponden a los códigos ascii para todas las letras mayúsculas entre A-Z. Esta matriz entra en la función COINCIDIR como matriz de búsqueda, y la matriz original de códigos ASCII se proporciona como valor de búsqueda.

COINCIDIR luego devuelve un número (basado en una posición) o el error # N / A. Los números representan letras mayúsculas, por lo que la función ESNUMERO se usa junto con la función SI para filtrar los resultados. Solo los caracteres cuyo código ASCII esté entre 65 y 90 se incluirán en la matriz final, que luego se vuelve a ensamblar con la función TEXTJOIN para crear la abreviatura o acrónimo final.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT