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

Jak wyświetlić lub wygenerować wszystkie możliwe kombinacje w programie Excel?

Powiedzmy, że mam następujące dwie kolumny danych, a teraz chcę wygenerować listę wszystkich możliwych kombinacji na podstawie dwóch list wartości, jak pokazano na lewym zrzucie ekranu. Być może możesz wymienić wszystkie kombinacje jeden po drugim, jeśli jest kilka wartości, ale jeśli istnieje kilka kolumn z wieloma wartościami, które należy wymienić, możliwe kombinacje, oto kilka szybkich sztuczek, które mogą pomóc w rozwiązaniu tego problemu w programie Excel .

Wymień lub wygeneruj wszystkie możliwe kombinacje z dwóch list ze wzorem

Wyświetl lub wygeneruj wszystkie możliwe kombinacje z trzech lub więcej list z kodem VBA

Wyświetlaj lub generuj wszystkie możliwe kombinacje z wielu list za pomocą potężnej funkcji


Wymień lub wygeneruj wszystkie możliwe kombinacje z dwóch list ze wzorem

Poniższa długa formuła może pomóc w szybkim wylistowaniu wszystkich możliwych kombinacji wartości dwóch list, wykonaj następujące czynności:

1. Wprowadź lub skopiuj poniższą formułę do pustej komórki, w tym przypadku wprowadzę ją do komórki D2, a następnie naciśnij Wchodzę klucz, aby uzyskać wynik, patrz zrzut ekranu:

=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))

Uwagi: W powyższym wzorze, $ A $ 2: $ A $ 5 jest zakresem wartości pierwszej kolumny, a 2 B $: 4 B $ to zakres wartości drugiej listy, w którym chcesz wyświetlić wszystkie ich możliwe kombinacje, rozszerzenie 2 $ D $ to komórka, w której umieszczasz formułę, możesz zmienić odwołania do komórek zgodnie z potrzebami.

2. Następnie wybierz komórkę D2 i przeciągnij uchwyt wypełniania w dół do komórek, aż uzyskasz puste komórki, a wszystkie możliwe kombinacje zostały wymienione na podstawie wartości dwóch list. Zobacz zrzut ekranu:


Wyświetl lub wygeneruj wszystkie możliwe kombinacje z trzech lub więcej list z kodem VBA

Być może powyższa formuła jest nieco trudna do zastosowania, jeśli danych jest wiele kolumn, modyfikowanie będzie kłopotliwe. Tutaj przedstawię kod VBA, aby szybko sobie z tym poradzić.

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujący kod w Moduł Okno.

Kod VBA: Generuj wszystkie kombinacje 3 lub wielu kolumn

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
Uwagi: W powyższym kodzie, A2: A5, B2: B4, C2: C4 to zakres danych, którego chcesz użyć, E2 to komórka wyjściowa, w której chcesz zlokalizować wyniki. Jeśli chcesz uzyskać wszystkie kombinacje większej liczby kolumn, zmień i dodaj inne parametry do kodu zgodnie z potrzebami.

3. Następnie naciśnij F5 klucz do uruchomienia tego kodu, a wszystkie kombinacje 3 kolumn zostaną wygenerowane naraz, patrz zrzut ekranu:


Wyświetlaj lub generuj wszystkie możliwe kombinacje z wielu list za pomocą potężnej funkcji

Jeśli istnieje wiele list wartości, należy wymienić możliwe kombinacje, być może trudno będzie zmodyfikować kod. Tutaj mogę polecić potężne narzędzie - Kutools dla programu Excel, zawiera przydatną funkcję Wyświetl wszystkie kombinacje który może szybko wyświetlić wszystkie możliwe kombinacje na podstawie podanych list danych.

Wskazówki:Aby to zastosować Wyświetl wszystkie kombinacje Po pierwsze, należy pobrać plik Kutools dla programu Excel, a następnie szybko i łatwo zastosuj tę funkcję.

Po zainstalowaniu Kutools dla programu Excel, zrób tak:

1. Kliknij Kutools > wstawka > Wyświetl wszystkie kombinacjezobacz zrzut ekranu:

2, w Wyświetl wszystkie kombinacje W oknie dialogowym wykonaj operacje, jak pokazano poniżej:

3. Następnie wszystkie określone wartości i separatory zostały wymienione w oknie dialogowym, patrz zrzut ekranu:

4.A następnie kliknij Ok przycisk i pojawi się okno zachęty przypominające o wybraniu komórki do wyprowadzenia wyniku, patrz zrzut ekranu:

5, Kliknij OK, wszystkie możliwe kombinacje na podstawie podanych list zostały wygenerowane w arkuszu, jak pokazano na poniższym zrzucie ekranu:

Kliknij, aby pobrać Kutools dla programu Excel teraz!


Więcej artykułów względnych:

  • Wygeneruj wszystkie kombinacje 3 lub wielu kolumn
  • Przypuśćmy, że mam 3 kolumny danych, teraz chcę wygenerować lub wyświetlić wszystkie kombinacje danych w tych 3 kolumnach, jak pokazano poniżej. Czy masz jakieś dobre metody rozwiązania tego zadania w programie Excel?
  • Znajdź wszystkie kombinacje, które są równe danej sumie
  • Na przykład mam następującą listę liczb, a teraz chcę wiedzieć, która kombinacja liczb na liście sumuje się do 480, na poniższym zrzucie ekranu widać, że istnieje pięć grup możliwych kombinacji, które sumują się równo do 480, na przykład 300 + 60 + 120, 300 + 60 + 40 + 80 itd. W tym artykule omówię kilka metod wyszukiwania, które komórki sumują się do określonej wartości w programie Excel.
  • Wygeneruj lub wyświetl wszystkie możliwe permutacje
  • Na przykład mam trzy znaki XYZ, teraz chcę wymienić wszystkie możliwe permutacje na podstawie tych trzech znaków, aby uzyskać sześć różnych wyników, takich jak: XYZ, XZY, YXZ, YZX, ZXY i ZYX. W programie Excel, jak możesz szybko wygenerować lub wyświetlić wszystkie permutacje na podstawie różnej liczby znaków?
  • Wygeneruj listę wszystkich możliwych kombinacji 4 cyfr
  • W niektórych przypadkach może zajść potrzeba wygenerowania listy wszystkich możliwych kombinacji 4 cyfr od 0 do 9, co oznacza wygenerowanie listy 0000, 0001, 0002… 9999. Aby szybko rozwiązać zadanie listy w Excelu, przedstawiam kilka sztuczek.

 


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół

 

Sortuj komentarze według
Komentarze (42)
Znamionowy 5 z 5 · 1 oceny
Ten komentarz został zminimalizowany przez moderatora na stronie
To genialna formuła! Nie mam pojęcia, jak to działa, ale po prostu zmieniam kolumnę A i B, aby dopasować długość moich list i mam wyniki w D1.
Ten komentarz został zminimalizowany przez moderatora na stronie
przykład : moja lista wartości to 1,2,3,4,5,6......80 , chcę, aby kutool wyświetlał wszystkie kombinacje zestawu 2 liczb, przykład : 1-2 , 1-3 , 1-4 , 1-5 , ...79-80 . czy jest to możliwe z KUTOOL?
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje sposób, aby ta formuła działała, gdy różne kombinacje nadal są rozdzielone w 2 oddzielnych kolumnach, ale przylegają do siebie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy miałeś szczęście wymyślić, jak to zrobić? Próbuję zrobić dokładnie to samo i wszystkie moje prawdopodobieństwa mam w 2 oddzielnych kolumnach w programie Excel.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy miałeś już z tym szczęście? Próbuję zrobić to samo i umieścić wszystkie możliwe kombinacje obok siebie w 2 oddzielnych kolumnach.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy mogę uzyskać wzór dla wszystkich kombinacji macierzy 5*5 (5 wierszy i 5 kolumn), które próbowałem, ale nie mogłem uzyskać, pomóż mi .......
Ten komentarz został zminimalizowany przez moderatora na stronie
BARDZO POMOCNE. Teraz mogę bardzo łatwo generować kombinacje.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak możesz użyć KuTools, a nawet formuły, jeśli chcesz wszystkie permutacje nagłówka miesiąca. Sty, Sty i Luty, Sty i Mar, Sty i Mar, Sty i Luty i Mar itd
Ten komentarz został zminimalizowany przez moderatora na stronie
ktoś wie, jak to zmodyfikować, aby odzwierciedlić 6 kolumn danych, a nie tylko dwie?
Ten komentarz został zminimalizowany przez moderatora na stronie
szukam tego samego. ktoś wie?
Ten komentarz został zminimalizowany przez moderatora na stronie
ktoś wie, jak to zmodyfikować, aby odzwierciedlić 6 kolumn danych?
Ten komentarz został zminimalizowany przez moderatora na stronie
Więcej kolumn:
Pierwsza część formuły musi zostać zmodyfikowana, aby pomnożyć wszystkie możliwości, na przykład byłoby to dla 6 kolumn
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)
więc dodajesz
*LICZBA (Twój zakres)
dla każdej kolumny
Drugą część wzoru należy zmodyfikować dla każdej kolumny, a także tak:
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)
więc dodajesz
&INDEKS(TwójZakres,MOD(WIERSZ()-WIERSZ($I$2);LICZBA(TwójZakres))+1)

Połącz je wszystkie razem, a otrzymasz ten przykład dla 6 kolumn:

=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))

Gdzie wkleiłbyś tę formułę do $ I $ 2 i wyglądałby na $ A $ 2: $ A $ 9 $ B $ 2: $ B $ 9 $ C $ 2: $ C $ 9 ... do $ F $ 2: $ F $ 9
Ten komentarz został zminimalizowany przez moderatora na stronie
to nie działa :( bardziej skomplikowane niż to)
Ten komentarz został zminimalizowany przez moderatora na stronie
Więcej kolumn:
Pierwsza część formuły musi zostać zmodyfikowana, aby pomnożyć wszystkie możliwości, na przykład byłoby to dla 6 kolumn:

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)
więc dodajesz
*LICZBA (Twój zakres)
dla każdej kolumny

Drugą część wzoru należy zmodyfikować dla każdej kolumny, a także tak:

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)

więc dodajesz

&INDEKS(TwójZakres,MOD(WIERSZ()-WIERSZ($I$2);LICZBA(TwójZakres))+1)

Połącz je wszystkie razem, a otrzymasz ten przykład dla 6 kolumn:

=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))

Gdzie wkleiłbyś tę formułę do $ I $ 2 i wyglądałby na $ A $ 2: $ A $ 9 $ B $ 2: $ B $ 9 $ C $ 2: $ C $ 9 ... do $ F $ 2: $ F $ 9
Ten komentarz został zminimalizowany przez moderatora na stronie
to nie działa :( bardziej skomplikowane niż to
Ten komentarz został zminimalizowany przez moderatora na stronie
Masz pomysł, jak dodać spację pomiędzy?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, Eoinie,
formuła w tym artykule nie może pomóc w dodaniu spacji między wartościami komórek, ale możesz zastosować Kutools dla programu Excel, dzięki czemu możesz wpisać dowolny ogranicznik, aby oddzielić połączony wynik, patrz zrzut ekranu:
Ten komentarz został zminimalizowany przez moderatora na stronie
Możesz dodać spację, dodając " "& przed indeksowaniem kolumny B, zaraz po istniejącym &, tak jak.....

=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))


....lub jakikolwiek inny ogranicznik, który lubisz!
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy KuTools jest w stanie sortować komórki z rzędu w „prostej kombinacji”?
Mam na myśli, jeśli mam te dane:
_________________________
John Jack Paul Macy

Mark Larry

Jerry Paul Mary

Sam Jeff Peter Lucas
_________________________



I chcę je wyprowadzić w ten sposób:
___________
John Jack

Jan Paweł

Jan Macy

Jack Paul

Jack Macy

Paweł Macy

Mark Larry

Jerry Paul

Jerry Marry

Paweł Mary

Sam Jeff

Sam Piotr

Sam Lucas

Jeff Peter

Jeff Lucas

Piotr Łukasz
____________


W jaki sposób mogę to zrobić? Czy KuTools może coś takiego zrobić?

Dzięki!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Arturze,
Przepraszamy, Kutools nie może pomóc ci rozwiązać tej pracy, jak powiedziałeś.
Dziękuję za komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy ktoś wymyślił jeszcze formułę, aby to zrobić dla 5 zestawów danych? Do tej pory byłem w tym zakłopotany.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Marco,
Kutools może pomóc Ci szybko rozwiązać problem, sprawdź następujący zrzut ekranu:
Spróbuj, mam nadzieję, że ci pomoże, dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Chcę wiedzieć, co zrobić, jeśli chcę wygenerować więcej niż 1,4 miliona kombinacji i przekroczę limit wierszy Excela?
Czy istnieje sposób, aby Kudos kontynuował swoją iterację w następnej kolumnie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dlaczego moja formuła nie zadziałała, aby utworzyć 25 kombinacji w kolumnie E (5 elementów z kolumny A * 5 elementów z kolumny B)? Podczas gdy formuła z tego artykułu działała w kolumnie D, gdy przeciągałem ją na 25 komórek? Zrzut ekranu - https://prnt.sc/ihwr18
Ten komentarz został zminimalizowany przez moderatora na stronie
Hola me arroja una referencia circula la formuła
=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))
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, a jeśli te kombinacje między tekstem są liczbami, to jak mogę dokonać obliczenia wyników???? próbuję dodać "+", ale Excel nie wie, że to jest symbol .. jak to rozwiązać?
Ten komentarz został zminimalizowany przez moderatora na stronie
Użyłem rozszerzeń i działa fantastycznie, ale teraz mam problem, muszę obliczyć sumę, ale wynik jest tekstem, wpisuję separator czyli simbol +, ale w końcu mam tekst i jest niemożliwe do konwersji podczas operacji.
Ten komentarz został zminimalizowany przez moderatora na stronie
Prawie bardzo poręczny. Byłoby dobrze, gdyby faktycznie używał tego, co znajduje się w komórce ($ A $ 1) i nie konwertował komórki na tekst. Wtedy mógłbym po prostu wkleić to, czego potrzebuję w A1 i uruchomić go ponownie bez konieczności zmiany czegokolwiek.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje sposób, aby wyprowadzić to jako plik txt? Kiedy masz miliony wyników w kolumnie D, nie jest praktyczne przeciąganie uchwytu wypełniania.
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL