Note: The other languages of the website are Google-translated. Back to English

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ší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
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!
officetab dno

 

Komentáře (42)
Hodnocení 5 z 5 · 1 hodnocení:
Tento komentář byl moderátorem webu minimalizován
To je geniální formule! Nemám ponětí, jak to funguje, ale jen změním sloupec A a B tak, aby odpovídal délce mých seznamů, a mám výstup v D1.
Tento komentář byl moderátorem webu minimalizován
příklad: můj seznam hodnot je 1,2,3,4,5,6......80, chci, aby kutool zobrazoval všechny kombinace sady 2 čísel, příklad: 1-2, 1-3, 1-4, 1-5, ..................79-80. je to možné s KUTOOL?
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak zajistit, aby tento vzorec fungoval tak, že vytváří různé kombinace stále oddělené ve 2 samostatných sloupcích, ale vedle sebe?
Tento komentář byl moderátorem webu minimalizován
Měli jste štěstí, že jste přišli na to, jak to udělat? Snažím se dělat přesně to samé a mít všechny své pravděpodobnosti ve 2 samostatných sloupcích v Excelu.
Tento komentář byl moderátorem webu minimalizován
Už jste s tím měli štěstí? Snažím se dělat to samé a mít všechny možné kombinace vedle sebe ve 2 samostatných sloupcích.
Tento komentář byl moderátorem webu minimalizován
Mohu získat vzorec pro všechny kombinace matice 5 * 5 (5 řádků a 5 sloupců), které jsem zkoušel, ale nemohu je získat, prosím pomozte mi......
Tento komentář byl moderátorem webu minimalizován
VELMI POMOCNÉ. Nyní jsem schopen velmi snadno generovat kombinace.
Tento komentář byl moderátorem webu minimalizován
Jak byste mohli použít KuTools nebo dokonce vzorec, pokud byste chtěli všechny permutace záhlaví Month. Jan, Jan a Feb, Jan a Mar, Jan a Mar, Jan a Feb a Mar atd
Tento komentář byl moderátorem webu minimalizován
ví někdo, jak to upravit, aby odráželo 6 sloupců dat, nikoli jen dva?
Tento komentář byl moderátorem webu minimalizován
hledat to samé. ví někdo?
Tento komentář byl moderátorem webu minimalizován
ví někdo, jak to upravit, aby odráželo 6 sloupců dat?
Tento komentář byl moderátorem webu minimalizován
Další sloupce:
První část vzorce je třeba upravit, aby se vynásobily všechny možnosti, například by to bylo pro 6 sloupců
COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
takže přidáváš
*POČET (Váš rozsah zde)
pro každý sloupec
Druhá část vzorce musí být upravena pro každý sloupec, stejně jako takto:
INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)
takže přidáváš
&INDEX(YourRangeHere,MOD(ROW()-ROW($I$2),COUNTA(YourRangeHere))+1)

Dejte je všechny dohromady a získáte tento příklad pro 6 sloupců:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Kde byste tento vzorec vložili do $I$2 a vypadalo by to $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... až $F$2:$F$9
Tento komentář byl moderátorem webu minimalizován
tohle nefunguje :( složitější než tohle
Tento komentář byl moderátorem webu minimalizován
Další sloupce:
První část vzorce je třeba upravit, aby se vynásobily všechny možnosti, například by to bylo pro 6 sloupců:

COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
takže přidáváš
*POČET (Váš rozsah zde)
pro každý sloupec

Druhá část vzorce musí být upravena pro každý sloupec, stejně jako takto:

INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)

takže přidáváš

&INDEX(YourRangeHere,MOD(ROW()-ROW($I$2),COUNTA(YourRangeHere))+1)

Dejte je všechny dohromady a získáte tento příklad pro 6 sloupců:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Kde byste tento vzorec vložili do $I$2 a vypadalo by to $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... až $F$2:$F$9
Tento komentář byl moderátorem webu minimalizován
to nefunguje :( složitější než tohle
Tento komentář byl moderátorem webu minimalizován
Máte nápad, jak přidat mezeru mezi?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Eoine,
vzorec v tomto článku vám nemůže pomoci přidat mezeru mezi hodnoty buněk, ale můžete použít Kutools pro Excel, s ním můžete zadat jakýkoli oddělovač, jak chcete oddělit kombinovaný výsledek, viz snímek obrazovky:
Tento komentář byl moderátorem webu minimalizován
Mezeru můžete přidat přidáním " "& před indexování sloupce B, hned za existující &, podobně.....

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


....nebo jakýkoli jiný oddělovač, který se vám líbí!
Tento komentář byl moderátorem webu minimalizován
Je KuTools schopen seřadit buňky v řadě způsobem „jednoduché kombinace“?
Myslím, pokud mám tato data:
_________________________
John Jack Paul Macy

Mark Larry

Jerry Paul Mary

Sam Jeff Peter Lucas
_________________________



A chci je vypsat takto:
___________
John Jack

Jana Pavla

John Macy

Jack Paul

Jack Macy

Paul Macy

Mark Larry

Jerry Paul

Jerry Marry

Paul Mary

Sam Jeff

Sam Peter

Sam Lucas

Jeff Peter

Jeff Lucas

Petr Lucas
____________


Jak to mohu udělat? Dokáže KuTools něco takového?

Díky!
Tento komentář byl moderátorem webu minimalizován
Ahoj, Arthure,
Omlouváme se, Kutools vám nemohou pomoci vyřešit tuto práci, jak jste řekl.
Děkujeme za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Už někdo přišel na vzorec, jak to udělat pro 5 sad dat? Doteď jsem z toho byla zmatená.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Marco,
Kutools vám mohou pomoci rychle vyřešit váš problém, podívejte se prosím na následující snímek obrazovky:
Zkuste to prosím, doufám, že vám to pomůže, děkuji!
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Chci vědět, co dělat, když chci vygenerovat více než 1,4 milionu kombinací a překročím limit řádků Excel?
Existuje způsob, jak umístit Kudos, aby pokračoval v iteraci v dalším sloupci?
Tento komentář byl moderátorem webu minimalizován
Proč můj vzorec nefungoval při vytvoření 25 kombinací ve sloupci E (5 prvků ze sloupce A * 5 prvků ze sloupce B)? Zatímco vzorec v tomto článku fungoval ve sloupci D, když jsem jej přetáhl o 25 buněk? Snímek obrazovky - https://prnt.sc/ihwr18
Tento komentář byl moderátorem webu minimalizován
Dobrý den, říkám vám referenční circula la formula
=SI(FILA()-FILA($D$1)+1>(CONTARA($A$1:$A$4)*CONTARA($B$1:$B$3));"";INDICE($A$1:$A$4;RESIDUO((FILA()-FILA($D$1));COUNTA($B$1:$B$3)+1))
&INDICE($B$1:$B$3;RESIDUO(FILA()-FILA($D$1);CONTARA($B$1:$B$3))+1))
Tento komentář byl moderátorem webu minimalizován
Dobrý den, a pokud jsou tyto kombinace intead text číslo, jak mohu provést výpočet pro výsledky???? Snažím se přidat "+", ale Excel nevím, že je to simbol .. jak to vyřešíte?
Tento komentář byl moderátorem webu minimalizován
Použil jsem extions a funguje fantasticky, ale teď mám problém, potřebuji vypočítat součet,, ale výsledkem je text,, zadám oddělovač, který je symbol +, ale nakonec mám text a je nelze v operaci převést.
Tento komentář byl moderátorem webu minimalizován
Téměř velmi šikovný. Bylo by dobré, kdyby skutečně použil to, co je v buňce ($A$1), a nepřevedl buňku na text. Pak jsem mohl do A1 vložit, co potřebuji, a spustit to znovu, aniž bych musel cokoliv měnit.
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak to vypsat jako soubor txt? Když máte ve sloupci D miliony výsledků, není zrovna praktické přetahovat úchyt výplně.
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL