Как создать или перечислить все возможные перестановки в 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% и уменьшите количество щелчков мышью на сотни ежедневно!
Все надстройки Kutools. Один установщик
Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.





- Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек