18 septiembre, 2021

FUNCIÓN CONTARV EN TYPESCRIPT. CONTAR LAS VECES QUE SE REPITE UN NÚMERO O LETRA EN UN RANGO

Hola a todos:

Hace unos días me preguntaban si el último post que había escrito: CONTAR LAS VECES QUE SE REPITE UNA LETRA EN UNA CADENA DE TEXTO CON TYPESCRIPT y que programaba mediante un script lo podía transformar en una función que se pudiese ejecutar en la hoja de Excel.

Pues bien, tal y como podéis observar en el ejercicio que publiqué mostré tres formas de contar caracteres en una celda seleccionada. Para el caso de hoy haremos las modificaciones necesarias para crear una función que permita además seleccionar un rango de celdas.

Crearé por lo tanto, 3 funciones distintas (que voy a llamar de la siguiente forma, ContarV_1, ContarV_2 y ContarV_3).

La primera es ContarV_1:

/**
 * @customfunction
 * @param {string[][]} Rango
 */
function ContarV_1(Rango, myLetter) {
  var MiRango = Rango.toString()
  var count=0
  for (var i = 0; i < MiRango.length; count += +(myLetter === MiRango[i++]));
  return (count)
}

En este ejemplo, mediante un loop vamos recorriendo todos los caracteres del rango seleccionado y contamos el valor que hemos seleccionado en el segundo argumento de la función «myLetter».

La siguiente función es ContarV_2:

/**
 * @customfunction
 * @param {string[][]} Rango
 */
  function ContarV_2(Rango, myLetter) {
    var MiRango = Rango.toString()
  var nLetter = new RegExp(myLetter, 'g');
  return((MiRango.match(nLetter) || []).length)
  } 

En este ejemplo utilizamos la función hallar para detectar el elemento indicado y lo contamos.

Por último, la tercera función ContarV_3:

  /**
 * @customfunction
 * @param {string[][]} Rango
 */
function ContarV_3(Rango, myLetter) {
  var MiRango = Rango.toString()
  return (MiRango.split(myLetter).length - 1)
};

Utilizamos la función split para separar la cadena de texto por el carácter indicado y contamos las separaciones realizadas, dándonos el total de veces que se repite el carácter.

Y estas son las funciones en Script Lab, listas para ser registradas y utilizadas:

Por cierto, la función ContarV, como tal no existe en Excel, es una función que yo mismo creé en su momento en VBA para realizar estas tareas: CONTAR CARACTERES ESPECÍFICOS EN UN RANGO SELECCIONADO

Y esto es todo, espero que sea utilidad e interés. Saludos!!

¿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