Hola a todos!.
Hace un rato me he puesto a experimentar con algunos métodos de programación en Typescript, uno de ellos es .Slice(). Según la documentación que os he aportado se define como: El método slice() devuelve una copia de una parte del array dentro de un nuevo array empezando por inicio hasta fin (fin no incluido). El array original no se modificará.
Teniendo en cuenta la definición y los parámetros, he programado una custom function con la vamos a poder extraer de un rango seleccionado la parte que le indiquemos en los argumentos. Es decir, la misma función que conocemos en Excel como Extrae(), pero aplicado a un rango.
Por ejemplo:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2022/05/CUSTOM-FUNCTION-PARA-EXTRAER-PARTE-DE-UN-RANGO.-METODO-SLICE.png?resize=950%2C1024&ssl=1)
Por ejemplo, si tenemos dos rangos, uno con números y el otro con letras (el abecedario) y queremos extraer a partir de la celda 4 (incluida) los siguientes 5 caracteres, el resultado será un nuevo rango con estas letras: d, e, f, g, h.
La función que he utilizado es la siguiente:
/**
* @customfunction
* @param {string[][]} miRango
* @returns {string[][]}
*/
function extraeRango(miRango,inicial,items) {
miRango = miRango.toString().split(",");
return [miRango.slice(inicial-1, inicial-1 + items)]
}
Y también funcionará para el rango de números. Como podéis observar se trata de una función muy simple que se ha construido con tres líneas de código.
Ni que decir tiene, que esto lo podremos replicar con otras fórmulas, con otras funciones definidas y con otros lenguajes. Pero si lo necesitáis en Typescript para alguno de vuestros procesos, aquí os lo dejo.
Espero que sea de utilidad!!
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies