2 marzo, 2024

GENERAR COLUMNAS Y FILAS SIN NÚMEROS REPETIDOS UTILIZANDO TYPESCRIPT

Hola a todos,

Hace unos días recibí una consulta en la que me preguntan si es posible » ir generando columnas sin que se repitan los números entre columnas y filas».

Aunque la pregunta es para VBA, la respuesta la voy a expresar en Typescript y me voy a ceñir a la consulta que me indican (generar columnas sin que existan elementos repetidos tanto a nivel columna como fila.

Para realizar esta tarea, el código en typescript es el siguiente:

function main(workbook: ExcelScript.Workbook) {
        var nFilas: number;
        var nColumnas: number;
        var miMatriz: number[][];
        var numero: number;
        var fila: number;
        var columna: number;
        var nRepetido: boolean;
    var miHoja = workbook.getWorksheet("Hoja1");
    nFilas = +miHoja.getRange("I2").getValue() // filas
    nColumnas = +miHoja.getRange("J2").getValue(); // columnas
        miMatriz = [];
        for (fila = 0; fila < nFilas; fila++) {
            miMatriz[fila] = [];
            for (columna = 0; columna < nColumnas; columna++) {
                nRepetido = true;
                while (nRepetido) {
                    numero = Math.floor(Math.random() * (nFilas * nColumnas)) + 1;
                    if (!buscaRep(numero, miMatriz)) {
                        nRepetido = false;
                        miMatriz[fila][columna] = numero;
                    }
                }
            }
        }
       var miRango = miHoja.getRange("A1").getResizedRange(nFilas - 1, nColumnas - 1);
        miRango.setValues(miMatriz);
    }
    function buscaRep(number: number, arr: number[][]): boolean {
        for (let i = 0; i < arr.length; i++) {
            for (let j = 0; j < arr[i].length; j++) {
                if (arr[i][j] === number) {
                    return true;
                }
            }
        }
        return false;
    }

El código va generando columnas y filas con números aleatorios que se van añadiendo a una matriz y que comprobamos mediante una función si el número ya existe.

De esta forma generamos filas y columnas sin elementos repetivos.

Si tengo tiempo programaré la misma rutina en VBA.

Espero que sea de utilidad.

¿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

Un comentario en «GENERAR COLUMNAS Y FILAS SIN NÚMEROS REPETIDOS UTILIZANDO TYPESCRIPT»

  1. Muchas gracias por responder tan rápido. Nunca he probado Typescript pero parece el futuro.
    Por ahora me inclino a VBA, pero ya se vera.
    Gracias por los aportes, a los aficionados mayorcitos como yo, nos viene fenomenal. Se aprende mucho

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