KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で1 列のデータから考えられるすべての組み合わせを一覧表示するには?

著者Xiaoyang変更日

1 列のデータから考えられるすべての組み合わせを取得し、下記のスクリーンショットのような結果を得たいのですが、Excel でこのタスクを素早く処理する方法はありますか?

数式を使用して1 列から考えられるすべての組み合わせを一覧表示する

VBA コードを使用して1 列から考えられるすべての組み合わせを一覧表示する


数式を使用して1 列から考えられるすべての組み合わせを一覧表示する

次の配列数式を使えば、この作業を簡単に実行できます。手順に従って操作してください。

1.まず、2 つのヘルパー数式セルを作成します。セル C1 に以下の数式を入力し、Ctrl + Shift + Enterキーを押して結果を取得してください。

=MAX(LEN(A2:A6))
: この数式において、A2:A6は組み合わせを一覧表示したいセルのリストです。

最初のヘルパー数式を作成

2.セル C2 に次の数式を入力し、Ctrl + Shift + Enterキーを同時に押して、2 番目の結果を取得してください(スクリーンショット参照)。

=CONCAT(A2:A6&REPT(「 」,C2-LEN(A2:A6)))
: この数式において、A2:A6は組み合わせを一覧表示したいセルのリストであり、C2はステップ1 で作成した数式を含むセルです。

2番目のヘルパー数式を作成

3.次に、セル D2 に以下の数式をコピー&ペーストし、Ctrl + Shift + Enterキーを同時に押して、最初の結果を表示させましょう(スクリーンショットを参照)!

=IF(ROW()>2^(COUNTA(A$2:A$6)),「」,TEXTJOIN(「 + 」,TRUE,IF(MID(TEXT(DEC2BIN(ROW()-1),REPT("0",COUNTA($A$2:$A$6))),ROW(INDIRECT("1:"&COUNTA($A$2:$A$6))),1)+0,TRIM(MID($C$3,(ROW(INDIRECT("1:"&COUNTA($A$2:$A$6)))-1)*$C$2+1,$C$2)),「」)))
: この数式において、A2:A6は組み合わせを一覧表示したいセルのリストであり、C2はステップ1 で作成した数式を含むセル、C3はステップ2 で作成した数式を含むセルです。+文字は組み合わせを区切るための区切り文字であり、必要に応じて変更できます。

数式を入力

4.その後、この数式が入力されたセルを選択し、空白セルが表示されるまでフィルハンドルを下方向にドラッグしてください。すると、指定した列のデータのすべての組み合わせが、以下のデモのように表示されます。

: この数式は Office 2019、365 以降のバージョンでのみ使用可能です。
kutools for excel AI のスクリーンショット

KUTOOLS AI でExcel の魔法を解き放ちましょう

  • スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
  • カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
  • VBA コーディング:VBA コードを簡単に記述・実装できます。
  • 数式の解釈:複雑な数式が簡単に理解できます。
  • テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
AI 搭載のツールでExcel の機能をさらに強化しましょう。今すぐダウンロードして、これまでにない効率を体験してください!

VBA コードを使用して1 列から考えられるすべての組み合わせを一覧表示する

上記の数式は、新しいバージョンのExcel でのみご利用いただけます。お使いのExcel が古いバージョンの場合には、以下の VBA コードが便利です。

1Alt + F11キーを同時に押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。

2.次に、挿入>標準モジュールをクリックし、以下の VBA コードをウィンドウにコピー&ペーストしてください。

VBA コード:1 列から考えられるすべての組み合わせを一覧表示する

Sub ConnectArr()
'Updateby ExtendOffice
Dim xDValue As Variant
Dim xOutRg As Range
Dim xDictionary As Object
Dim xF As Long
Dim xChar As String
xDValue = Range("A2:A6").Value 'the data range
Set xOutRg = Range("C1") 'output range
xChar = "," 'separator
For xF = 1 To UBound(xDValue)
    Set xDictionary = CreateObject("Scripting.Dictionary")
    xDictionary(0) = "Sets of " & xF
    Call ConnectValue(xDValue, xDictionary, 0, xF, 0, "", xChar)
    xOutRg.Offset(0, xF - 1).Resize(xDictionary.Count).Value = WorksheetFunction.Transpose(xDictionary.Items)
    Set xDictionary = Nothing
Next
End Sub
Sub ConnectValue(ByRef pDValue, ByRef pDictionary, ByRef pLevel, ByVal pMaxLevel, ByVal pIndex, ByVal pValue, ByVal pChar)
Dim xF As Long
If pLevel = pMaxLevel Then
    pDictionary(pDictionary.Count + 1) = pValue
    Exit Sub
End If
For xF = pIndex + 1 To UBound(pDValue)
    If pValue = "" Then
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pDValue(xF, 1), pChar)
    Else
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pValue & pChar & pDValue(xF, 1), pChar)
    End If
Next
End Sub
: 上記のコードについて:
  • A2:A6は、使用したいデータのリストです。
  • C1は出力セルです。
  • ,: は、組み合わせを区切るための区切り文字です。

3.その後、F5キーを押してこのコードを実行すると、1 列からのすべての組み合わせが以下のスクリーンショットのように表示されます。

単一の列からすべての組み合わせを取得する VBA コード

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得