Прескочи на основното съдържание

Как да изброя или генерирам всички възможни комбинации в Excel?

Автор: Xiaoyang Последна промяна: 2022-07-20

Да кажем, че имам следните две колони с данни и сега искам да генерирам списък с всички възможни комбинации въз основа на двата списъка със стойности, както е показано на лявата екранна снимка. Може би можете да изброите всички комбинации една по една, ако има малко стойности, но ако има няколко колони с множество стойности, необходими за изброяване на възможните комбинации, ето някои бързи трикове, които могат да ви помогнат да се справите с този проблем в Excel .

Избройте или генерирайте всички възможни комбинации от два списъка с формула

Избройте или генерирайте всички възможни комбинации от три или повече списъка с VBA код

Избройте или генерирайте всички възможни комбинации от множество списъци с мощна функция


Избройте или генерирайте всички възможни комбинации от два списъка с формула

Следната дълга формула може да ви помогне бързо да изброите всички възможни комбинации от две списъчни стойности, моля, направете следното:

1. Въведете или копирайте формулата по-долу в празна клетка, в този случай ще я въведа в клетка D2 и след това натиснете Въведете ключ, за да получите резултата, вижте екранната снимка:

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

Забележка: В горната формула, $A$2:$A$5 XNUMX е обхватът на стойностите на първата колона и $B$2:$B$4 е обхватът на стойностите на втория списък, който искате да изброите всички техни възможни комбинации, the $D$2 е клетката, в която поставяте формулата, можете да промените препратките към клетки според вашите нужди.

2. След това изберете клетка D2 и плъзнете манипулатора за запълване надолу към клетките, докато получите празните клетки и всички възможни комбинации са изброени въз основа на стойностите на двата списъка. Вижте екранна снимка:


Избройте или генерирайте всички възможни комбинации от три или повече списъка с VBA код

Може би горната формула е донякъде трудна за прилагане, ако има няколко колони с данни, ще бъде трудно да се промени. Тук ще представя VBA код, за да се справя бързо с него.

1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. Щракнете Поставете > Модулии поставете следния код в Модули Window.

VBA код: Генерирайте всички комбинации от 3 или няколко колони

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
Забележка: В горния код, A2: A5, B2: B4, C2:C4 са диапазонът от данни, който искате да използвате, E2 е изходната клетка, в която искате да намерите резултатите. Ако искате да получите всички комбинации от повече колони, моля, променете и добавете други параметри към кода според вашите нужди.

3. След това натиснете F5 ключ за изпълнение на този код и всички комбинации от 3-те колони ще бъдат генерирани наведнъж, вижте екранната снимка:


Избройте или генерирайте всички възможни комбинации от множество списъци с мощна функция

Ако има няколко списъци, стойностите трябва да бъдат изброени възможните комбинации, може би ви е трудно да промените кода. Тук мога да препоръчам мощен инструмент -- Kutools за Excel, съдържа удобна функция Избройте всички комбинации който може бързо да изброи всички възможни комбинации въз основа на дадени списъци с данни.

Съвети:За да приложите това Избройте всички комбинации функция, първо трябва да изтеглите Kutools за Excelи след това приложете функцията бързо и лесно.

След инсталиране Kutools за Excel, моля, направете следното:

1. Кликнете Kutools > Поставете > Избройте всички комбинации, вижте екранна снимка:

2. В Избройте всички комбинации диалогов прозорец, направете операциите, както е показано в демонстрацията по-долу:

3. След това всички посочени стойности и разделители са изброени в диалоговия прозорец, вижте екранната снимка:

4.И след това щракнете Ok и ще изскочи поле за подкана, за да ви напомни, че изберете клетка, за да изведете резултата, вижте екранната снимка:

5. Щракнете OK, всички възможни комбинации въз основа на дадените списъци са генерирани в работния лист, както е показано на следната екранна снимка:

Щракнете, за да изтеглите Kutools за Excel сега!


Още относителни статии:

  • Намерете всички комбинации, които са равни на дадена сума
  • Например, имам следния списък с числа и сега искам да знам коя комбинация от числа в списъка се равнява на 480, на показаната по-долу екранна снимка можете да видите, че има пет групи от възможни комбинации, които се равняват до 480, като 300+60+120, 300+60+40+80 и т.н. В тази статия ще говоря за някои методи за намиране кои клетки сумират до конкретна стойност в Excel.
  • Генерирайте или избройте всички възможни пермутации
  • Например, имам три знака XYZ, сега искам да изброя всички възможни пермутации въз основа на тези три знака, за да получа шест различни резултата като този: XYZ, XZY, YXZ, YZX, ZXY и ZYX. В Excel, как бихте могли бързо да генерирате или изброите всички пермутации въз основа на различен брой знаци?
  • Генерирайте списък с всички възможни 4-цифрени комбинации
  • В някои случаи може да се наложи да генерираме списък от всички възможни 4-цифрени комбинации от числа от 0 до 9, което означава да генерираме списък от 0000, 0001, 0002…9999. За бързо решаване на задачата със списък в Excel, представям ви някои трикове.

 

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!

 

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