24 septiembre, 2023

PROGRAMAR FUNCIÓN PARA SUMAR LOS ELEMENTOS DE UN RANGO CON TYPESCRIPT

Hola a todos!

Sumar es sin duda una de las operaciones que más repetimos a lo largo de nuestra jornada. Muchos de nuestros cálculos se desarrollan en la hoja de cálculo utilizando la función suma o sumando las celdas directamente. Sin embargo, en el mundo de la programación esto no resulta tan sencillo y debemos tener en cuenta todos los métodos y para que nos sirve cada uno.

En el caso de Typescript voy a mostrar dos formas, aunque existen más, para obtener la suma de los elementos seleccionados de un rango. Esto lo podremos hacer en un script (en la pestaña de automatización) o con una función (custom function), en el ejemplo de hoy, será con una función en el que englobaré las dos técnicas.

Imaginad este rango de números:

Pues bien, vamos a plantear que queremos la suma de toda la columna (ya, sé, ya sé, se puede hacer en la hoja sumando con la función o por cada celda, pero lo tememos que hacer con typescript porque estamos programando).

Aquí os dejo la función que he creado con los dos métodos que vamos a comentar seguidamente:

/**
* @customfunction
* @param {number[][]} miRango
* @returns {number[][]}
 */
function methSuma(miRango) {
 var fin = miRango.length;
  var sumaLoop=0
 var j =0
 var miRango = miRango.toString().split(",");
  //función de flecha con el método reduce
  var sumaFlecha= miRango.reduce((a, b) => a*1 + b*1, 0)
    console.log(sumaFlecha)
  //recorriendo la matriz y sumando cada elemento
  for (let j = 0; j < fin; j++) 
    sumaLoop += (miRango[j]*1)
   console.log(sumaLoop)
  // expresamos la salida construyendo dos tuplas
  var resultado1 = ['OPCION 1', sumaFlecha];
  var resultado2= ['OPCION 2', sumaLoop];
  // y mostrando los resultados en una matriz derramada 
  return [resultado1,resultado2]
}

Como siempre, pasamos el rango a una matriz para trabajar los dos métodos.

En el primero utilizamos .reduce() en una función de flecha. Es complicado extenderme aquí con la función .reduce(), por eso os dejo enlace a su documentación para que entandáis qué es lo que hace.

En el segundo utilizamos un loop. Recorremos todos los elementos del rango que habíamos pasado a una matriz y los vamos sumando y acumulando la suma en la variable sumaLoop.

En ambos métodos debemos convertir los elementos a número para que pueda sumar. Esto lo hacemos multiplicando por 1.

Para finalizar declaramos dos tuplas y expresamos la salida de la función como una matriz derramada y mostrado la información en vertical.

Este es el resultado para la suma del rango:

Y esto es todo!, espero que haya sido de interés!

¿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