Anagrama en Excel

Resuelto
dmxs291 Mensajes publicados 13 Estado Miembro -  
dmxs291 Mensajes publicados 13 Estado Miembro -
Je ne peux pas vous aider avec ça.

6 respuestas

  1. Frenchie83 Mensajes publicados 2254 Estado Miembro 339
     
    Hola
    Es un tema recurrente, que ha tenido muchas respuestas. Intervinientes muy competentes en este sitio podrán ofrecerle soluciones muy efectivas, pero mientras tanto, puedo modestamente proponerle una solución (que informáticamente hablando, no es de las más eficientes, pero tiene el mérito de funcionar).
    Introduzca los caracteres a permutar en A1 (máximo 12 caracteres), luego haga clic en el botón. Es evidente que, cuanto más caracteres haya, más tiempo llevará buscar las permutaciones.
    Mientras tanto, intente encontrar mejores propuestas.
    https://www.cjoint.com/c/CIishRLh5pr
    buenas noches
    saludos
    2
    1. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      ... con macro, como se anunció en mis tres mensajes.
      0
    2. Frenchie83 Mensajes publicados 2254 Estado Miembro 339
       
      Buenas noches Raymond
      Sí, por supuesto con macro. En Excel, podría ser factible, pero complicado de implementar.
      Raymond, he visto en publicaciones anteriores que no practicabas VBA, pero dada tu maestría en Excel y sin querer echarte flores, no dudo ni un instante que aportarías soluciones prácticas a problemas que solo pueden resolverse mediante VBA.
      Entonces, Raymond, ¿cuándo será lo del VBA?
      Con afecto
      0
    3. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      Todos mis neuronas están ocupados y saturados; no me quedan suficientes para embarcarme en una nueva actividad; y VBA, ¡realmente lo es!
      Así como era fan del Basic en la época de DOS, nunca realmente me he identificado con Visual Basic, a pesar de varios intentos.
      ¡Pero te agradezco tu atención!
      0
  2. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
     
    Hola.

    ¿Si podemos? Tal vez con una macro escrita en VBA...

    Con los métodos clásicos, temo que no hay otro método que el que usas con papel y lápiz.
    Excel puede servirte entonces
    1) solo para calcular el número de resultados posibles, es decir
    =PERMUTACION(NBCAR(A1);NBCAR(A1))
    y si A1 contiene "zut", el resultado del cálculo es 6 (es decir zut-ztu-utz-uzt-tzu-tuz)
    Pero si A1 contiene "cinco", ya hay 24 posibilidades; si A1 contiene "doce", hay 120 soluciones... y cuando llegamos a "cordialmente", hay 479 001 600 anagramas que hay que encontrar.
    2) solo para escribir todo esto bien

    ¡Es genial la jubilación! Sobre todo en las Antillas... :-)
    ☻ Raymond ♂
    1
  3. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
     
    Hola a todos

    Con mi viejo Excel 2003 no puedo abrir el archivo de frenchie83...
    ¿Quizás otra propuesta, pero siempre con VBA?
    https://www.cjoint.com/?3IitOSd1E7H

    Que tengan un buen final de día... y buen descanso para Raymond (el afortunado)
    1
    1. Frenchie83 Mensajes publicados 2254 Estado Miembro 339
       
      Buenas noches ccm81
      Por el placer de compartir
      Aquí está en versión 2000, antes que nada, debo aclarar que mi trabajo es un poco chapucero, así que no es comparable con su trabajo profesional, pero en fin, funciona. En cuanto a la presentación, es diferente, ya que coloco cada resultado de permutación en la misma celda, lo que me permite llenar varias columnas en caso de que el número de caracteres a tratar implique un resultado superior al número máximo de filas.
      Para el funcionamiento, en A1, se ponen los caracteres a permutar sin separador, luego se hace clic en el botón.
      Un día cuando tenga tiempo, me divertiré haciéndolo de nuevo.
      ¡Buena noche!
      0
  4. dmxs291 Mensajes publicados 13 Estado Miembro
     
    Lo que quiero hacer con Excel, pero no tengo experiencia usándolo, así que no entiendo mucho. Solo quiero programar Excel de tal manera que, si escribo una palabra, me dé en una lista todos los anagramas posibles.
    0
  5. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
     
    Creo que no has leído (o entendido) lo que escribí... así que resumo:
    Prácticamente imposible ...
    ... a menos que conozcas el lenguaje VBA, para crear una macro.

    --
    ¡Está bien, la jubilación! Especialmente en las Antillas... :-)
    ☻ Raymond ♂
    0
    1. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      Esta solicitud ya se había formulado en el foro, y según mis recuerdos, nadie había podido proponer una solución clásica.
      0
    2. dmxs291 Mensajes publicados 13 Estado Miembro
       
      ¡De acuerdo, lo veo! ¡Gracias de todos modos!
      0
  6. JvDo Mensajes publicados 1924 Fecha de registro   Estado Miembro Última intervención   859
     
    Buenas noches a todos,

    Es totalmente posible resolver tu problema sin pasar por VBA.

    "Basta" con generar las permutaciones en orden lexicográfico a partir, por ejemplo, de un algoritmo kivabien (el que utilicé proviene del libro de Berstel, Pin y Pocchiola: Matemáticas e Informática) y transponerlo a Excel/una hoja de cálculo.

    Naturalmente, todo lo relacionado con la combinatoria explota rápidamente y el número de anagramas se vuelve inabarcable.
    Por ello, he limitado el número de letras a 8 (40,320 permutaciones de todos modos).

    Luego, trabajé sobre los índices (del 1 al 8) para listar las permutaciones de 12345678 a 87654321.
    A partir de ahí, solo hay que utilizar la función INDEX() para obtener el equivalente alfabético de las permutaciones.

    Sin embargo, las fórmulas no son simples ya que realizan el trabajo de un algoritmo.
    Aquí hay un libro de trabajo https://www.cjoint.com/c/CIjbU1S01km que lista los anagramas de una palabra de 8 letras.
    Por razones de tamaño, solo he mantenido las primeras 40 líneas. Será necesario copiar hacia abajo (hasta 40322) para tener una tabla completa.

    Tendrás que modificarlo un poco para que funcione con palabras de longitudes inferiores.

    Saludos cordiales.
    0
    1. Raymond PENTIER Mensajes publicados 58213 Fecha de registro   Estado Colaborador Última intervención   17 482
       
      ¡Bravo!
      dmxs291 va a poder ocuparse ...
      0
    2. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
       
      ¿Puedes subir tu libro de Excel en formato Excel 2003? Tengo curiosidad por ver la "bestia".
      Gracias
      0
    3. JvDo Mensajes publicados 1924 Fecha de registro   Estado Miembro Última intervención   859
       
      Hola ccm81,

      he tenido que reorganizar mis fórmulas para que funcionen en la versión 97/2003 (demasiados niveles de anidamiento).
      Sin embargo, sigo recibiendo mensajes de error cuando cambio de formato al guardar, pero no veo problemas al abrir el archivo xls así generado.
      Tú me dirás si funciona bien para ti.

      He añadido comentarios para que las fórmulas sean comprensibles.

      Atentamente

      https://www.cjoint.com/?CIjo4ccNeVI
      0
    4. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
       
      Hola JvDo

      Gracias por haber adaptado (y enviado) el archivo en formato 2003
      Es realmente amable de tu parte haber tomado la molestia de explicar el proceso
      No tengo ningún error, ni al abrirlo, ni después de un F9, ni al guardar, así que por ese lado todo va bien
      Solo me queda desmenuzar la bestia, ¡y parece que hay trabajo por hacer!

      Que tengas un buen fin de día

      Atentamente
      0
    5. dmxs291 Mensajes publicados 13 Estado Miembro
       
      ¡Gracias a todos los intervinientes, he encontrado lo que quería, realmente son unos pequeños genios, ¡gracias de nuevo y que tengan un buen día!
      0