Přejít k hlavnímu obsahu

Jak vypsat všechny možné kombinace z jednoho sloupce v Excelu?

Autor: Xiaoyang Naposledy změněno: 2024-11-13

Pokud chcete vrátit všechny možné kombinace z dat jednoho sloupce, abyste získali výsledek, jak je zobrazen níže na snímku obrazovky, máte nějaké rychlé způsoby, jak se s tímto úkolem v Excelu vypořádat?

Vypište všechny možné kombinace z jednoho sloupce se vzorci

Seznam všech možných kombinací z jednoho sloupce s kódem VBA


Vypište všechny možné kombinace z jednoho sloupce se vzorci

Následující maticové vzorce vám mohou pomoci dosáhnout tohoto úkolu, proveďte prosím krok za krokem:

1. Nejprve byste měli vytvořit dvě buňky pomocného vzorce. Do buňky C1 zadejte níže uvedený vzorec a stiskněte Ctrl + Shift + Enter klíče k získání výsledku:

=MAX(LEN(A2:A6))
Pozor: V tomto vzorci A2: A6 je seznam buněk, u kterých chcete vypsat jejich kombinace.

vytvořte první pomocný vzorec

2. Do buňky C2 zadejte následující vzorec a stiskněte Ctrl + Shift + Enter kláves dohromady, abyste získali druhý výsledek, viz snímek obrazovky:

=CONCAT(A2:A6&REPT(" ",C2-LEN(A2:A6)))
Pozor: V tomto vzorci A2: A6 je seznam buněk, u kterých chcete vypsat jejich kombinace, C2 je buňka obsahuje vzorec, který jste vytvořili v kroku 1.

vytvořte druhý pomocný vzorec

3. Poté zkopírujte a vložte následující vzorec do buňky D2 a stiskněte Ctrl + Shift + Enter společně získáte první výsledek, viz screenshot:

=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)),"")))
Pozor: V tomto vzorci A2: A6 je seznam buněk, u kterých chcete vypsat jejich kombinace, C2 je buňka obsahuje vzorec, který jste vytvořili v kroku 1, C3 je buňka se vzorcem, který jste vytvořili v kroku 2, the + znak je oddělovač pro oddělení kombinací, můžete je změnit podle potřeby.

zadejte vzorec

4. A pak vyberte tuto buňku vzorce a přetáhněte úchyt výplně dolů, dokud se neobjeví prázdné buňky. Nyní můžete vidět, že všechny kombinace dat zadaných sloupců jsou zobrazeny, jak je ukázáno níže:

Pozor: Tento vzorec je k dispozici pouze v Office 2019, 365 a novějších verzích.
snímek obrazovky kutools pro excel ai

Odemkněte Excel Magic pomocí Kutools AI

  • Chytré provedení: Provádějte operace s buňkami, analyzujte data a vytvářejte grafy – to vše pomocí jednoduchých příkazů.
  • Vlastní vzorce: Vytvářejte přizpůsobené vzorce pro zefektivnění vašich pracovních postupů.
  • Kódování VBA: Napište a implementujte kód VBA bez námahy.
  • Výklad vzorce: Snadno porozumíte složitým vzorcům.
  • Překlad textu: Prolomte jazykové bariéry ve svých tabulkách.
Vylepšete své možnosti aplikace Excel pomocí nástrojů založených na umělé inteligenci. Stáhnout nyní a zažijte efektivitu jako nikdy předtím!

Seznam všech možných kombinací z jednoho sloupce s kódem VBA

Výše uvedené vzorce jsou k dispozici pouze pro novější verze aplikace Excel, pokud máte dřívější verze aplikace Excel, může vám pomoci následující kód VBA.

1. lis Alt + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. Potom klepněte na tlačítko Vložit > Modul, zkopírujte a vložte níže uvedený kód VBA do okna.

Kód VBA: Seznam všech možných kombinací z jednoho sloupce

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
Pozor: Ve výše uvedeném kódu:
  • A2: A6: je seznam dat, která chcete použít;
  • C1: je výstupní buňka;
  • ,: oddělovač pro oddělení kombinací.

3. A pak stiskněte F5 klíč k provedení tohoto kódu. Všechny kombinace z jednoho sloupce jsou uvedeny jako níže uvedený snímek obrazovky:

vba kód pro získání všech kombinací z jednoho sloupce

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!