¿Cómo generar o listar todas las permutaciones posibles en Excel?
Por ejemplo, tengo tres caracteres XYZ, y 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ías generar rápidamente o listar todas las permutaciones basadas en un número diferente de caracteres?
Generar o listar todas las permutaciones posibles basadas en caracteres con código VBA
Generar o listar todas las permutaciones posibles basadas en caracteres con código VBA
El siguiente código VBA puede ayudarte a enumerar todas las permutaciones según tu número específico de letras; por favor, sigue los siguientes pasos:
1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haz clic en Insertar > Módulo, y pega el siguiente código en la Ventana del Módulo.
Código VBA: Enumerar todas las permutaciones posibles en Excel
Sub GetString()
'Updateby Extendoffice
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. Luego presiona la tecla F5 para ejecutar este código, y aparecerá una ventana emergente que te recordará ingresar los caracteres que deseas listar en todas las permutaciones, ver captura de pantalla:
4. Después de ingresar los caracteres, haz clic en el botón Aceptar, y todas las permutaciones posibles se mostrarán en la columna A de la hoja de cálculo activa. Ver captura de pantalla:
Nota: Si la longitud de los caracteres ingresados es igual o mayor a 8 caracteres, este código no funcionará porque hay demasiadas permutaciones.
Listar o generar todas las combinaciones posibles de múltiples columnas
Si necesitas generar todas las combinaciones posibles basadas en datos de múltiples columnas, tal vez no haya una buena manera de manejar esta tarea. Pero, la utilidad Listar Todas las Combinaciones de Kutools para Excel puede ayudarte a enumerar todas las combinaciones posibles rápidamente y fácilmente. ¡Haz clic para descargar Kutools para Excel!
Kutools para Excel: con más de 300 complementos útiles para Excel, prueba gratuita sin limitaciones durante 30 días. ¡Descarga y prueba gratis ahora!
Las mejores herramientas de productividad para Office
Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...
Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
- ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!