Přejít k hlavnímu obsahu

Jak vypsat nebo vygenerovat všechny možné kombinace v aplikaci Excel?

Řekněme, že mám následující dva sloupce dat, a teď chci vygenerovat seznam všech možných kombinací na základě dvou seznamů hodnot, jak je zobrazen levý snímek obrazovky. Možná můžete vypsat všechny kombinace jeden po druhém, pokud existuje několik hodnot, ale pokud existuje několik sloupců s více hodnotami, aby bylo možné uvést možné kombinace, zde je několik rychlých triků, které vám mohou pomoci při řešení tohoto problému v aplikaci Excel .

Seznamujte nebo generujte všechny možné kombinace ze dvou seznamů pomocí vzorce

Seznamujte nebo generujte všechny možné kombinace ze tří nebo více seznamů pomocí kódu VBA

Seznamujte nebo generujte všechny možné kombinace z více seznamů pomocí výkonné funkce


Seznamujte nebo generujte všechny možné kombinace ze dvou seznamů pomocí vzorce

Následující dlouhý vzorec vám pomůže rychle vypsat všechny možné kombinace hodnot dvou seznamů, postupujte takto:

1. Zadejte nebo zkopírujte níže uvedený vzorec do prázdné buňky, v tomto případě jej zadám do buňky D2 a poté stiskněte vstoupit klíč k získání výsledku, viz screenshot:

=IF(ROW()-ROW($D$2)+1>COUNTA($A$2:$A$5)*COUNTA($B$2:$B$4),"",INDEX($A$2:$A$5,INT((ROW()-ROW($D$2))/COUNTA($B$2:$B$4)+1))&"-"&INDEX($B$2:$B$4,MOD(ROW()-ROW($D$2),COUNTA($B$2:$B$4))+1))

Poznámka: Ve výše uvedeném vzorci, $ A $ 2: $ A $ 5 je rozsah hodnot prvního sloupce a $ B $ 2: $ B $ 4 je rozsah hodnot druhého seznamu, u kterých chcete vypsat všechny jejich možné kombinace, $ D $ 2 je buňka, do které vložíte vzorec, můžete podle potřeby změnit odkazy na buňky.

2. Poté vyberte buňku D2 a přetáhněte úchyt výplně dolů k buňkám, dokud nezískáte prázdné buňky, a na základě hodnot dvou seznamů budou uvedeny všechny možné kombinace. Viz screenshot:


Seznamujte nebo generujte všechny možné kombinace ze tří nebo více seznamů pomocí kódu VBA

Možná je pro vás výše uvedený vzorec poněkud obtížné použít, pokud existuje více dat sloupců, bude obtížné je upravit. Zde představím kód VBA, abych se s ním rychle vypořádal.

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Modul Okno.

Kód VBA: Vygenerujte všechny kombinace 3 nebo více sloupců

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A5")  'First column data
Set xDRg2 = Range("B2:B4")  'Second column data
Set xDRg3 = Range("C2:C4")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub
Poznámka: Ve výše uvedeném kódu, A2: A5, B2: B4, C2: C4 jsou rozsah dat, který chcete použít, E2 je výstupní buňka, ve které chcete najít výsledky. Pokud chcete získat všechny kombinace více sloupců, změňte a podle potřeby přidejte do kódu další parametry.

3. Poté stiskněte F5 klíč ke spuštění tohoto kódu a všechny kombinace 3 sloupců budou vygenerovány najednou, viz screenshot:


Seznamujte nebo generujte všechny možné kombinace z více seznamů pomocí výkonné funkce

Pokud existuje více seznamů, je třeba uvést hodnoty možných kombinací, možná je pro vás obtížné upravit kód. Tady mohu doporučit mocný nástroj - Kutools pro Excel, obsahuje užitečnou funkci Seznam všech kombinací který může rychle vypsat všechny možné kombinace na základě daných seznamů dat.

Tipy:Použít toto Seznam všech kombinací funkce, za prvé, měli byste si stáhnout Kutools pro Excela poté tuto funkci rychle a snadno aplikujte.

Po instalaci Kutools pro Excel, udělejte prosím toto:

1. klikněte Kutools > Vložit > Seznam všech kombinací, viz screenshot:

2. V Seznam všech kombinací v dialogovém okně proveďte níže uvedené ukázkové operace:

3. Pak byly všechny zadané hodnoty a oddělovače uvedeny v dialogovém okně, viz screenshot:

4.A potom klikněte Ok Tlačítko a vyskočí okno s výzvou, které vám připomene výběr buňky k výstupu výsledku, viz screenshot:

5, klikněte OK, všechny možné kombinace založené na daných seznamech byly vygenerovány do listu, jak ukazuje následující snímek obrazovky:

Klikněte a stáhněte si nyní Kutools pro Excel!


Více relativních článků:

  • Generujte všechny kombinace 3 nebo více sloupců
  • Předpokládejme, že mám 3 sloupce dat, teď chci generovat nebo vypsat všechny kombinace dat v těchto 3 sloupcích, jak je uvedeno níže. Máte nějaké dobré metody pro řešení tohoto úkolu v aplikaci Excel?
  • Najděte všechny kombinace, které se rovnají dané sumě
  • Například mám následující seznam čísel a teď chci vědět, která kombinace čísel v seznamu sečte až 480, na následujícím zobrazeném snímku obrazovky můžete vidět, že existuje pět skupin možných kombinací, které přidávají stejné na 480, například 300 + 60 + 120, 300 + 60 + 40 + 80 atd. V tomto článku budu hovořit o některých metodách, jak zjistit, které buňky sečtou určitou hodnotu v aplikaci Excel.
  • Vygenerujte nebo vypsejte všechny možné permutace
  • Například mám tři znaky XYZ, teď chci vypsat všechny možné permutace založené na těchto třech znacích, abych získal šest různých výsledků takto: XYZ, XZY, YXZ, YZX, ZXY a ZYX. Jak můžete v aplikaci Excel rychle vygenerovat nebo vypsat všechny permutace na základě různého počtu znaků?
  • Vytvořte seznam všech možných čtyřmístných kombinací
  • V některých případech možná budeme muset vygenerovat seznam všech možných čtyřmístných kombinací čísel 4 až 0, což znamená vygenerovat seznam 9, 0000, 0001 ... 0002. Abych rychle vyřešil úlohu seznamu v aplikaci Excel, představuji vám několik triků.

 

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

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...

karta kte 201905


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!

 

Comments (42)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
como que poderia gerar uma lista de combinações de nomes no LibreOffice?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello, Johansson

Sorry, the methods in this article are only applied for Microsoft Excel.
Thank you!
This comment was minimized by the moderator on the site
Hej alle sammen

Jeg håber at i kan hjælpe med dette.

Jeg har en af de gamle Bastalåse kodelåse med 6 knapper, hvor man kan trykke knapperne ind, lade dem være i neutral eller trække dem ud.

Låsen var åben da jeg købte den, så jeg låste den i håb om at jeg kunne gå kombinationerne igennem.

Men jeg har lidt problemer med at få nedskrevet samtlige kombinationer (729 så vidt jeg kan regne ud).

Er der en der vil hjælpe mig med med dette? Evt. kan man kalde de 3 indstillingsmuligheder pr. knap for: 1-2-3, 1-0-2, eller I-N-U (ind-neutral-ud).


Krydser finger og siger på forhånd mange tak hvis jeg kan få låsen op, det er sådan lidt nostalgi.

Mvh

Nicolaj
This comment was minimized by the moderator on the site
No 1º Exemplo de captura de tela , está faltando em All combinations Jan - KTE
This comment was minimized by the moderator on the site
Hello friend,
How are you. Thank you for your notice. We changed the first ficture. Please check now. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hi,
I have a project with excel (including Kutools) that I am stuck on.
Can anyone tell me how to get a list of all combinations of 6 different numbers, without repeating any of the numbers?
I know there should be 6! = 720 combinations but I need the list.
Thanks
This comment was minimized by the moderator on the site
Hi,
I have a project with excel (including Kutools) that I am stuck on.
Can anyone tell me how to get a list of all combinations of 6 different numbers, without repeating any digit?
I know there should be 6! = 720 combinations but I need the list.
Thanks
This comment was minimized by the moderator on the site
Hello Extend Office,
I want to extend the VBA code in "List Or Generate All Possible Combinations From Three Or More Lists With VBA Code article"
I want to show only the one's whose total of the combinations is equal to 9. Can you please show the additional extension/lines in the code? sorry, I'm barely new in VBA.
For example, I only want to show the combinations like the following:
1-2-2-2-2 (this is equal to 1+2+2+2+2 = 9) so, it will show the ones whose total is 9, the rest won't show.
1-2-3-1-3 (=9)
1-3-2-1-2 (=9) and so on...

Thanks very much for your help
Dalesimplest.becky15.08.21

This comment was minimized by the moderator on the site
edited formula to randomize 5 columns instead of 3 but still wont work,why?
Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xF5 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5 As String
Set xDRg1 = Range("A2:A10") 'First column data
Set xDRg2 = Range("B2:B10") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg2 = Range("D2:D10") 'Fourth column data
Set xDRg3 = Range("E2:E10") 'Fifth column data
xStr = "," 'Separator
Set xRg = Range("G2") 'Output cell
For xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Set xRg = xRg.Offset(1, 0)
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
Hello, jericho,You should modify your code as below code, please try it, thank you!<div data-tag="code">Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5 As String
Set xDRg1 = Range("A2:A10") 'First column data
Set xDRg2 = Range("B2:B10") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg4 = Range("D2:D10") 'Fourth column data
Set xDRg5 = Range("E2:E10") 'Fifth column data
xStr = "-" 'Separator
Set xRg = Range("H2") 'Output cell
For xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Set xRg = xRg.Offset(1, 0)
Next
Next
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
How to remove the repetition if I have color 1, color 2, color 3 in different orders(i.e. color2, color 3, color 1) but they are the same for my need? tks!
This comment was minimized by the moderator on the site
Excelentes soluciones, muchas gracias, lo logré con Kutools
This comment was minimized by the moderator on the site
NON FUNZIONA. HO SEGUITO GLI STESSI PASSAGGI MA MI DICE CHE C'E' UN ERRORE
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations