Excelで可能なすべての順列を生成または一覧表示するにはどうすればよいですか?
たとえば、XYZというXNUMXつの文字がありますが、XYZ、XZY、YXZ、YZX、ZXY、ZYXのXNUMXつの異なる結果を得るために、これらXNUMXつの文字に基づいて可能なすべての順列を一覧表示したいと思います。 Excelで、さまざまな文字数に基づいてすべての順列をすばやく生成または一覧表示するにはどうすればよいでしょうか。
VBAコードの文字に基づいて、考えられるすべての順列を生成または一覧表示します
VBAコードの文字に基づいて、考えられるすべての順列を生成または一覧表示します
次のVBAコードは、特定の文字数に基づいてすべての順列を一覧表示するのに役立つ場合があります。次のようにしてください。
1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。
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に表示されます。 スクリーンショットを参照してください:
Note:入力した文字長が8文字以上の場合、順列が多すぎるため、このコードは機能しません。
複数の列から可能なすべての組み合わせを一覧表示または生成します
複数の列のデータに基づいて可能なすべての組み合わせを生成する必要がある場合は、タスクを処理するための適切な方法がない可能性があります。 だが、 Kutools for Excel's すべての組み合わせを一覧表示 ユーティリティは、考えられるすべての組み合わせをすばやく簡単に一覧表示するのに役立ちます。 クリックしてKutoolsfor Excelをダウンロードしてください!
Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!
最高のオフィス生産性向上ツール
🤖 | Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行 | コードを生成 | カスタム数式の作成 | データを分析してグラフを生成する | Kutools関数を呼び出す... |
人気の機能: 重複を検索、強調表示、または識別する | 空白行を削除する | データを失わずに列またはセルを結合する | 数式なしのラウンド ... | |
スーパールックアップ: 複数の基準の VLookup | 複数の値の VLookup | 複数のシートにわたる VLookup | ファジールックアップ .... | |
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する | 依存関係のドロップダウン リスト | 複数選択のドロップダウンリスト .... | |
列マネージャー: 特定の数の列を追加する | 列の移動 | Toggle 非表示列の表示ステータス | 範囲と列の比較 ... | |
注目の機能: グリッドフォーカス | デザインビュー | ビッグフォーミュラバー | ワークブックとシートマネージャー | リソースライブラリ (自動テキスト) | 日付ピッカー | ワークシートを組み合わせる | セルの暗号化/復号化 | リストごとにメールを送信する | スーパーフィルター | 特殊フィルター (太字/斜体/取り消し線をフィルター...) ... | |
上位 15 のツールセット: 12 テキスト ツール (テキストを追加, 文字を削除する、...) | 50+ チャート 種類 (ガントチャート、...) | 40+ 実用的 式 (誕生日に基づいて年齢を計算する、...) | 19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...) | 12 変換 ツール (数字から言葉へ, 通貨の換算、...) | 7 マージ&スプリット ツール (高度な結合行, 分割セル、...) | ... もっと |
Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。 最も必要な機能を入手するにはここをクリックしてください...
Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!