Как сгенерировать или перечислить все возможные перестановки в Excel?
Например, у меня есть три символа XYZ, теперь я хочу перечислить все возможные перестановки на основе этих трех символов, чтобы получить шесть разных результатов, например: XYZ, XZY, YXZ, YZX, ZXY и ZYX. Как в Excel быстро сгенерировать или составить список всех перестановок на основе разного количества символов?
Сгенерировать или перечислить все возможные перестановки на основе символов с кодом VBA
Сгенерировать или перечислить все возможные перестановки на основе символов с кодом VBA
Следующий код VBA может помочь вам перечислить все перестановки на основе вашего конкретного количества букв, пожалуйста, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: список всех возможных перестановок в 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, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится окно подсказки, напоминающее вам ввести символы, которые вы хотите перечислить, все перестановки, см. снимок экрана:
4. После ввода символов, а затем нажмите OK все возможные перестановки отображаются в столбце A активного рабочего листа. Смотрите скриншот:
Внимание: Если длина введенного символа равна или превышает 8 символов, этот код не будет работать, потому что существует слишком много перестановок.
Перечислите или сгенерируйте все возможные комбинации из нескольких столбцов
Если вам нужно сгенерировать все возможные комбинации на основе данных из нескольких столбцов, возможно, нет хорошего способа справиться с задачей. Но, Kutools for Excel's Список всех комбинаций Утилита поможет вам быстро и легко перечислить все возможные комбинации. Нажмите, чтобы загрузить Kutools for Excel!
Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Загрузите и бесплатную пробную версию прямо сейчас!
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!