Consejo: Otros idiomas son traducidos por Google. Puedes visitar el English versión de este enlace.
Iniciar sesión
x
or
x
x
Suscríbete
x

or

¿Cómo generar o enumerar todas las permutaciones posibles en Excel?

Por ejemplo, tengo tres caracteres XYZ, ahora quiero enumerar todas las permutaciones posibles basadas en estos tres caracteres para obtener seis resultados diferentes como este: XYZ, XZY, YXZ, YZX, ZXY y ZYX. En Excel, ¿cómo podría generar rápidamente o enumerar todas las permutaciones basadas en diferentes números de caracteres?

Genere o liste todas las permutaciones posibles basadas en caracteres con código VBA


Liste o genere todas las combinaciones posibles de múltiples columnas

Si necesita generar todas las combinaciones posibles basadas en datos de columnas múltiples, tal vez, no haya una buena manera de manejar la tarea. Pero, Kutools for Excel's Listar todas las combinaciones La utilidad puede ayudarlo a enumerar todas las combinaciones posibles de forma rápida y sencilla. Haga clic para descargar Kutools para Excel!

doc enumera todas las combinaciones

Kutools for Excel: con más de 300 útiles complementos de Excel, de prueba sin límite en días 60. Descargar y prueba gratis ahora!


flecha azul burbuja derecha Genere o liste todas las permutaciones posibles basadas en caracteres con código VBA


El siguiente código de VBA puede ayudarlo a enumerar todas las permutaciones según su número específico de letras; haga lo siguiente:

1. Mantenga presionado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en Módulo Ventana.

Código VBA: enumera todas las permutaciones posibles en excel

Sub GetString()
'Updateby Extendoffice 20160606
    Dim xStr As String
    Dim FRow As Long
    Dim xScreen As Boolean
    xScreen = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xStr = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 2)
    If Len(xStr) < 2 Then Exit Sub
    If Len(xStr) >= 8 Then
        MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
        Exit Sub
    Else
        ActiveSheet.Columns(1).Clear
        FRow = 1
        Call GetPermutation("", xStr, FRow)
    End If
    Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
    Dim i As Integer, xLen As Integer
    xLen = Len(Str2)
    If xLen < 2 Then
        Range("A" & xRow) = Str1 & Str2
        xRow = xRow + 1
    Else
        For i = 1 To xLen
            Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
        Next
    End If
End Sub

3. Entonces presione F5 tecla para ejecutar este código, y se abre un cuadro de aviso para recordarle que ingrese los caracteres que desea enumerar todas las permutaciones, vea la captura de pantalla:

doc list permutations 1

4. Después de ingresar los caracteres, y luego haga clic OK botón, todas las permutaciones posibles se muestran en la columna A de la hoja de trabajo activa. Ver captura de pantalla:

doc list permutations 2

Nota: Si la longitud del carácter ingresado es igual o mayor que los caracteres 8, este código no funcionará porque hay demasiadas permutaciones.

doc list permutations 3


Kutools for Excel: la mejor herramienta de productividad de Office aumenta su productividad en un 80%

  • Super Formula Bar (edite fácilmente varias líneas de texto y fórmula); Diseño de lectura (lee y edita fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas y mantener datos; Contenido de celdas divididas; Combinar filas duplicadas y suma / promedio... Prevenir células duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Celdas múltiples sin cambiar la referencia de fórmula; Crear referencias automáticamente a múltiples hojas; Insertar viñetas, Casillas de verificación y más ...
  • Fórmulas favoritas e insertadas rápidamente, Gamas, cuadros y cuadros; Cifrar celdas con contraseña Crear una lista de correo y enviar correos electrónicos ...
  • Extracto del texto, Agregar texto, Eliminar por posición, Eliminar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtro a otras hojas); Clasificación avanzada por mes / semana / día, frecuencia y más; Filtro especial por negrita, cursiva ...
  • Combinar libros de trabajo y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes xls, xlsx y PDF...
  • Más de potentes funciones de 300. Funciona con Office 2007-2019 y 365. Soporta todos los idiomas. Fácil despliegue en compañía. Funciones completas de prueba gratuita de 60-day.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilitar la edición y lectura con pestañas en Word, Excel, PowerPoint, Editor, Acceso, Visio y Proyecto.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta tu productividad en un 50% y reduce cientos de clics de ratón por ti todos los días!
fondo officetab
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    lyto · 1 months ago
    who can send me a list of 10 diferent items permutatted by 2 outcomes. this code doe

    snt work on this
  • To post as a guest, your comment is unpublished.
    ilhan · 3 months ago
    peki bunu listeleyecek bir program uygulama yok mu?basit sıradan bir hesaplamadan daha fazlasına ihtiyacı olan ne yapacak?
  • To post as a guest, your comment is unpublished.
    MC · 4 months ago
    this code will not work because there are two many permutations


    should be:

    this code will not work because there are too many permutations


    HTH
    • To post as a guest, your comment is unpublished.
      skyyang · 4 months ago
      Hello, MC,
      Thank you for your warm reminder, it is my mistake. I have corrected it.
      Thanks a lot!
  • To post as a guest, your comment is unpublished.
    Paul · 1 years ago
    Hello everyone. I need help on this. I have two alphabets to be permutated in 20 rows. But am not getting it right. Anyone who could help me out should send the permutation to my email. pauladah69@gmail.com.


    1.a b b a
    2.a a b b
    3.a a b b
    4.a a b b
    5.a a b b
    6.a a b b
    7.a a b b
    8.a a b b
    9.a a b b
    10.a a b b
    11.a a b b
    12.a a b b
    13.a a b b
    14.a a b b
    15.a a b b
    16.a a b b
    17.a a b b
    18.a a b b
    19.a a b b
    20.a a b b
  • To post as a guest, your comment is unpublished.
    Wule · 1 years ago
    How many sequences of 3things can be formed from 7 different things replacement and order is important?
  • To post as a guest, your comment is unpublished.
    Declan Keogh · 1 years ago
    @Supraja...

    in the first sub clear all cells... not just the first row
    --Cells.Clear

    Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
    Dim i As Integer, xLen As Integer
    xLen = Len(Str2)
    If xLen < 2 Then
    'move to the next column when you get to 100
    Cells(((xRow - 1) Mod 100) + 1, 1 + Int(xRow / 100)) = Str1 & Str2
    xRow = xRow + 1
    Else
    For i = 1 To xLen
    Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
    Next
    End If
    End Sub
  • To post as a guest, your comment is unpublished.
    Supraja · 1 years ago
    Hello,

    Im trying to get a permutation for 82 characters, the code provided works, but, since the columns are only 1048576, I want to move the next output in B,C,D..... Can any of you help me on this regard
  • To post as a guest, your comment is unpublished.
    Terence · 2 years ago
    Hello,

    Im doing a small project using permutation and combination rules. I need your support on this please.
    Scenario: I have 13 digit alpha numeric data (00SHGO8BJIDG0) I want a coding to interchange S to 5, I to 1 and O to 0 and vise versa.

    The project is that if I have the correct 13 digit data I will receive a 3 digit pass code.

    (eg) 00SHG08BJ1DG0 - 500 is the pass code but because of wrong typo that is instead of 1 it was I and 0 it was O there is a wrong info.
    can you please help me.