4 agosto, 2021

SUMAR EL CONTENIDO NUMÉRICO DE UNA CELDA O DE UN RANGO CON TYPESCRIPT

Hola a todos y feliz año!!

Este es el primer post de 2021 y espero que os resulte interesante!. Para esta nueva temporada he querido comenzar con un poco de programación en typescript.

La idea es la de replicar una de mis UDF's de VBA en typescript, en concreto la función SumarV.

Con esta función lo que se consigue es sumar todos los caracteres numéricos de una celda o de un rango, se suman los números naturales de ese rango, caracter a caracter.

Por ejemplo, de esta cadena: addreYYY254ff1 vamos a sumar la parte numérica: 2+5+4+1: es decir: 12

Para conseguir esto con typescript yo he escrito la siguiente función:

/**
 * @customfunction
 * @param {string[][]} MiRango
 */
function SumarV(MiRango) {
  let MiCadena: ''
  let sum = 0;
  //Agrupamos elementos seleccionados
  MiRango.forEach(nCadena => {
    nCadena.forEach(nValor => {
      MiCadena += nValor;
    })
  })
  //Eliminamos todo caracter no númerico
  var Numeros: string = MiCadena.replace(/[^0-9]/g, "");
  let nNumero = Numeros.split('');
  //Sumamos todos los números caracter a caracter
  for (let i = 0; i < nNumero.length; i++) {
    sum += +(nNumero[i])
  }
  return sum
}

En este caso, me gustaría resaltar los parámetros para seleccionar rangos (muy importante) y la técnica utilizada. Primero unir todas las cadenas o elementos del rango seleccionado, a continuación eliminar caracteres no numéricos y finalmente sumar la cifra resultante número a número.

Y esto es todo, como podéis observar he replicado perfectamente la función creada en VBA por typescript.

: )

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡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

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies