Как создать или перечислить все возможные перестановки в 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. После ввода символов нажмите кнопку ОК, и все возможные перестановки будут отображены в столбце A активного листа. См. скриншот:
Примечание: Если длина введенных символов равна или больше 8 символов, этот код не будет работать, потому что существует слишком много перестановок.
Перечислить или создать все возможные комбинации из нескольких столбцов
Если вам нужно создать все возможные комбинации на основе данных из нескольких столбцов, возможно, нет хорошего способа справиться с этой задачей. Но утилита Kutools для Excel «Список всех комбинаций» поможет вам быстро и легко перечислить все возможные комбинации. Нажмите, чтобы скачать Kutools для Excel!
Kutools для Excel: более 300 удобных надстроек для Excel, бесплатно попробовать без ограничений в течение 30 дней. Скачайте и попробуйте прямо сейчас!
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Щелкните здесь, чтобы получить наиболее нужную вам функцию...
Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
- Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!