Ir al contenido principal

permutaciones simples en excel - parte 1

El presente tema viene dado por la siguiente consulta: "...puedo desarrollar una macro que intente averiguar la contraseña de una hoja de cálculos?" Y desde ya que sí, y no es complicado.
Sobre permutaciones y combinaciones encontrán infinidad de artículos en Google, muy técnicos, poco técnicos, resueltos, fáciles, difíciles... hay una cantidad impresionante para todo aquel que quiera o necesite profundizar en la materia. Yo, como siempre, partiré de cero y la teoría será breve y concreta, manejandonos luego con ejemplos.
Empecemos con algo: tenemos una noción bastante desarcertada (en general) de lo que es una combinación o permutación. Recuerdan la cerradura de combinación de los maletines... aquella que posee casi siempre 3 tambores giratorios?... bueno, recuerdan mal, por que eso está erróneamente llamado "combinación", ya que en realidad nos encontramos ante una "cerradura de permutación".
Y cual es la diferencia entre ambas? Que en la permutación tiene relevancia, e importa mucho, el orden con el cual efectuamos la combinación de los datos. Una permutación es una combinación ordenada.
Clarifiquemos volviendo al ejemplo de la cerradura del maletín: son tres tambores, con números del 0 al 9 cada uno. Permutados correctamente, es decir colocando cada uno en su respectivo orden, lograremos dar con la contraseña indicada, pudiendo así abrirlo:
estos 3 números, en ese orden, abren la cerradura del maletín.

[+/-] Ver el resto / Ocultar

Comentarios

  1. como puedo crear una formula en excel

    ResponderEliminar
  2. no comprendo muy bien tu pregunta.
    estimo que harás referencia a las UDF (funciones definidas por el usuario) las cuales se crean desde el editor de VBA.
    te doy un ejemplo muy sencillo: presionas ALT + F11 y te vas al editor de VBA; luego insertas un módulo.
    Dentro del mencionado módulo escribiremos una función (muy sencilla, como para que entiendas el ejemplo) que nos calculará el IVA (impuesto al valor agregado, que en Argentina es el 21%) de un rango de valores que le pasamos como argumento. Entonces, este es el código:

    Function IVA_Personalizado(Rango, Porcentaje)
    Dim Celda As Range
    Dim Total
    'recorro las celdas del Rango que recibo
    'como argumento. Solo sumo si el valor de
    'dichas celdas es numérico
    For Each Celda In Rango.Cells
    If IsNumeric(Celda.Value) Then
    Total = Total + Celda.Value
    End If
    Next Celda
    'ahora le aplico el segundo argumento
    'al total:
    Total = (Total * Porcentaje) / 100
    'y aquí retorno el valor:
    IVA_Personalizado = Total
    End Function

    ahora te vas a la planilla y, por ejemplo, en A1:A2 ponés 1000 en cada celda. Luego en C1 ingresás la función que terminamos de crear:
    =iva_personalizado(A1:A2;21)

    como verás, el primer argumento es el rango que contiene los valores y el segundo el porcentaje de IVA que se aplicará.

    te dejo un link al archivo, para que lo analices: https://sites.google.com/site/damianomarsilva2/UDF_IVA.xls

    suerte y avisame si te sirvió, podemos ir armando ejemplos mas complejos.

    ResponderEliminar
  3. amigo como podria yo encontrar las permutaciones respectivas de 4 cifras (XXXX) donde esten todos los numeros desde el 0 hasta el 9?

    ResponderEliminar
  4. Hola. En la imagen del ejemplo fijate que puse "qws" en distintas celdas de la columna A.
    Para hacer lo que vos necesitas, colocá (desde A2 hasta A10): 0123456789.
    Y listo, te empezará a crear todas las combinaciones posibles con esos 10 elementos.
    Cualquier cosa me avisas.
    Gracias x tu mensaje

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

sopa de letras en excel

Un lector me comenta que pudo visualizar varias sopas de letras en YouTube, realizadas con Excel. Inmediatamente me dirigí a dicho sitio y busqué información al respecto. Los ejemplos son buenos y si, efectivamente, podemos armar una muy buena "sopa de letras", salvo que (digamos) es un trabajo bastante manual, cosa que intento evitar a toda costa en mis proyectos. Obviamente que la tarea de automatización incluye Macros, lo cual me insume tiempo, pero queda mucho mejor. Vamos primero a explicar muy brevemente la forma de realizar esta juego "a la clásica", para luego pasar a un desarrollo mucho mas complejo, pero también automatizado y realista. la clásica grilla de una sopa de letras [+/-] Ver el resto / Ocultar Bien, analicemos un poco la imagen superior: 1) es una grilla de 20 filas x 20 columnas, aunque bien podríamos hacerla del tamaño que quisiéramos. 2) Cada celda tiene una letra, que fue generada  mediante la anidación de dos funciones. 3) Vean ahora la ba