Получить все возможные комбинации excel


Подсчитаем в MS EXCEL количество сочетаний из n элементов по k. С помощью формул выведем на лист все варианты сочетаний (английский перевод термина: Combinations without repetition).

Сочетаниями из n различных элементов по k элементов называются комбинации, которые отличаются хотя бы одним элементом. Например, ниже перечислены ВСЕ 3-х элементные сочетания, взятые из множества, состоящего из 5 элементов {1; 2; 3; 4; 5}:

(1; 2; 3); (1; 2; 4); (1; 2; 5); (1; 3; 4); (1; 3; 5); (1; 4; 5); (2; 3; 4); (2; 3; 5); (2; 4; 5); (3; 4; 5)


Примечание

: Это статья о подсчете количества сочетаний с использованием MS EXCEL. Теоретические основы советуем прочитать в специализированном учебнике. Изучать сочетания по этой статье — плохая идея.

Отличие Сочетаний от Размещений

В отличие от

Размещений

следующие 3-х элементные комбинации (1; 2; 3); (1; 3; 2); (2; 1; 3); (2; 1; 3); (3; 2; 1); (3; 1; 2) считаются одинаковыми, и в набор

Сочетаний

включается только одна из этих комбинаций. Очевидно, что для тех же n и k число

Сочетаний

всегда меньше чем число

Размещений

(так как при размещениях порядок важен, а для сочетаний — нет), причем в k! раз.

Подсчет количества Сочетаний

Число всех

Сочетаний

из n элементов по k можно вычислить по формуле:

Например, количество 4-х элементных комбинаций из 6 чисел {1; 2; 3; 4; 5; 6}  равно 15=6!/(4!(6-4)!)


Примечание

:  Для

Сочетаний

из n элементов по k также используется и другая запись:

В MS EXCEL для подсчета количества комбинаций без повторов существует специальная функция ЧИСЛКОМБ() , английское название функции — COMBIN(). Для предыдущего примера формула =ЧИСЛКОМБ(6;4) , разумеется, также вернет 15. Альтернативная формула для подсчета сочетаний =ФАКТР(6)/ФАКТР(6-4)/ФАКТР(4) .

Очевидно, что k меньше или равно n, т.к. нельзя выбрать из множества элементов n больше элементов, чем в нем содержится (предполагается, что элементы после выбора обратно не возвращаются). При k=n количество сочетаний всегда равно 1.


Примечание

: О Сочетаниях с повторениями (с возвращением элементов) можно прочитать в статье

Сочетания с повторениями: Комбинаторика в MS EXCEL

Вывод всех комбинаций Сочетаний

В файле примера созданы формулы для вывода всех Сочетаний для заданных n и k.

Задавая с помощью

элементов управления Счетчик

количество элементов множества (n) и количество элементов, которое мы из него выбираем (k), с помощью формул можно вывести все Сочетания.

В файле примера не забывайте увеличивать количество строк с формулами, чтобы поместились все ваши комбинации. Для этого выделите последние ячейки с формулами (сочетание №330) и скопируйте их вниз на нужно количество строк. При увеличении строк с формулами размер файла быстро растет, а скорости пересчета листа падает. Если строк 4 тысячи, то размер файла составляет около 2 Мб.

Задача


Автовоз может перевозить по 4 легковые машины. Необходимо перевезти 7 разных машин (LADA Granta, Hyundai Solaris, KIA Rio, Renault Duster, Lada Kalina, Volkswagen Polo, Lada Largus). Сколькими различными способами можно заполнить первый автовоз? Конкретное место машины в автовозе не важно.

Нам нужно определить число

Сочетаний

7 машин на 4-х местах автовоза. Т.е. n=7, а k=4. Оказывается, что таких вариантов =ЧИСЛКОМБ(7;4) равно 35.

Воспользуемся файлом примера (ссылка внизу статьи) , чтобы наглядно убедиться, что мы решили задачу правильно.

Произвольным образом сопоставим маркам машин числовые значения и сделаем сокращения названий марок: LADA Granta (LG=1), Hyundai Solaris (HS=2), …

Выставив в ячейках

В5

и

В6

значения 7 и 4 соответственно, определим все варианты размещений машин в автовозе (см. столбцы AJ:AM).


Примечание

: О Перестановках можно прочитать в статье

Перестановки без повторений: Комбинаторика в MS EXCEL

, а о Размещениях в статье

Размещения без повторений: Комбинаторика в MS EXCEL

.

Скажем, у меня есть следующие два столбца данных, и теперь я хочу сгенерировать список всех возможных комбинаций на основе двух списков значений, как показано на скриншоте слева. Возможно, вы можете перечислить все комбинации одну за другой, если есть несколько значений, но, если есть несколько столбцов с несколькими значениями, которые необходимо перечислить, возможные комбинации, вот несколько быстрых приемов, которые могут помочь вам справиться с этой проблемой в Excel .

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

Перечислите или сгенерируйте все возможные комбинации из трех или более списков с кодом VBA

Составьте список или сгенерируйте все возможные комбинации из нескольких списков с помощью мощной функции


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

Следующая длинная формула поможет вам быстро составить список всех возможных комбинаций значений двух списков. Пожалуйста, сделайте следующее:

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

=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 — это диапазон значений первого столбца, а 2 млрд долларов: 4 млрд долларов — это диапазон значений второго списка, в котором вы хотите перечислить все их возможные комбинации, $ D $ 2 это ячейка, в которую вы поместили формулу, вы можете изменить ссылки на ячейки по своему усмотрению.

2. Затем выберите ячейку D2 и перетащите маркер заполнения вниз к ячейкам, пока не получите пустые ячейки, и все возможные комбинации будут перечислены на основе значений двух списков. Смотрите скриншот:


Перечислите или сгенерируйте все возможные комбинации из трех или более списков с кодом VBA

Возможно, вам будет сложно применить приведенную выше формулу, если есть данные из нескольких столбцов, ее будет сложно изменить. Здесь я представлю код VBA, чтобы быстро с этим справиться.

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код 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 for Excel, он содержит удобную функцию Список всех комбинаций который может быстро перечислить все возможные комбинации на основе заданных списков данных.

Tips:Чтобы применить это Список всех комбинаций функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс > Вставить > Список всех комбинаций, см. снимок экрана:

2. В Список всех комбинаций В диалоговом окне выполните операции, как показано в демонстрации ниже:

3. Затем все указанные значения и разделители были перечислены в диалоговом окне, см. Снимок экрана:

4.А затем нажмите Ok Кнопка, и появится окно подсказки, напоминающее вам о выборе ячейки для вывода результата, см. снимок экрана:

5. Нажмите OK, все возможные комбинации на основе данных списков были сгенерированы на листе, как показано на следующем снимке экрана:

Нажмите, чтобы скачать Kutools for Excel Сейчас !


Больше относительных статей:

  • Создать все комбинации из 3 или нескольких столбцов
  • Предположим, у меня есть 3 столбца данных, теперь я хочу сгенерировать или перечислить все комбинации данных в этих 3 столбцах, как показано ниже. Есть ли у вас какие-нибудь хорошие методы решения этой задачи в 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 for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Здравствуйте!
Например, есть таблица 3х3, как мне вывести в отдельный столбец все возможные варианты, то есть что-то типа сцепить A1 B1 C1,  A1 B1 C2,  A1 B1 C3,  A2 B1 C1,  A2 B1 C2  и тд и вывести в отдельный столбец значение (string). Еще поясню, вот таблица (или матрица, если хотите)

Нужно получить столбец где будут значения ячеек (математики тут никакой нет, суммировать и считать ничего не требуется, просто вывести текст из ячеек):
1-1-1
1-1-2
1-1-3
1-2-1
1-2-2
1-2-3
1-3-1
1-3-2
1-3-3
2-1-1
2-1-2
2-1-3


и тд

Функцией сцепить можно сделать, но громоздко, может у кого есть идея получше?  

Изменено: Dmitry Arendatelev26.06.2015 14:49:52

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

В этой статье описаны синтаксис формулы и использование функции ЧИСЛКОМБ в Microsoft Excel.

Описание

Возвращает количество комбинаций для заданного числа элементов. Функция ЧИСЛКОМБ используется для определения общего числа всех групп, которые можно составить из элементов данного множества.

Синтаксис

ЧИСЛКОМБ(число;число_выбранных)

Аргументы функции ЧИСЛКОМБ описаны ниже.

  • Число    — обязательный аргумент. Количество элементов.

  • Число_выбранных    — обязательный аргумент. Количество элементов в каждой комбинации.

Замечания

  • Числовые аргументы усекаются до целых чисел.

  • Если хотя бы один из аргументов не является числом, то #VALUE! значение ошибки #ЗНАЧ!.

  • Если число < 0, number_chosen < 0 или < number_chosen, то #NUM! значение ошибки #ЗНАЧ!.

  • Комбинацией считается любое множество или подмножество элементов независимо от их внутреннего порядка. Комбинации отличаются от перестановок, для которых порядок существен.

  • Число комбинаций определяется по следующей формуле, где число = n, а число_выбранных = k:

    Уравнение

    где

    Уравнение

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости вы можете настроить ширину столбцов, чтобы видеть все данные.

Формула

Описание

Результат

=ЧИСЛКОМБ(8;2)

Возможные команды по два человека, которые могут быть сформированы из восьми кандидатов.

28

Нужна дополнительная помощь?

In this guide, we’re going to show you how to find all combinations of two lists in Excel by using Power Query.

Download Workbook

In our example, we have two lists that contain Pokémon names and we want to see the combinations of matched Pokémon.

We can join these two tables to compare them by using Get & Transform Data. Get & Transform Data feature consists of tools, previously known as Power Query. You can get more information about this here: Power Query 101.

Creating queries from tables

First step is to convert the tables into Power Query structure.

  1. Select one of your tables.
  2. Open the Data tab and click the corresponding icon under the Get & Transform Data section to get data from your workbook.
    1. (Microsoft 365 / Excel 2019) From Sheet

    2. (Excel 2016) From Table/Range
    3. (Excel 2010 / Excel 2013) Use Power Pivot tab instead of Data
  3. Clicking the button opens the Power Query Editor.
  4. Once you are done with the changes, click Custom Column in Add Column. We will add a helper column which will be a common point between the two tables.
  5. Enter a friendly name for your new column and enter =1 into the formula section.
    How to find all combinations of two lists in Excel 05
  6. Click OK to save.
  7. After adding the helper column, return to the Home tab and click Close & Load To item in Close & Load list to see options.
  8. Make sure to select Only Create Connection in the Import Data This option will save the table as a connection rather that populating the queried data in the worksheet.
  9. Apply the same steps to the other table. At the end you should have two queries corresponding with your tables. You can see these tables in Queries & Connections pane in Excel.

Joining queries to find all combinations of two lists

Next step is to join (merge) the queries on a new table which will allow us to see any differences between the tables.

  1. Once the queries from the tables are ready, go to Data > Get Data > Combine Queries > Merge to open the Merge dialog of Power Query.
  2. Select each table in the drop downs.
  3. Click on the column for each table to select them.
  4. Finally select Full Outer option for Join Kind to join by all rows from both tables.
  5. Click OK to apply selections.
    How to find all combinations of two lists in Excel 09
  6. You will see three columns after merging. The first one is the items of the first list. Right-click on the column in the middle and select Remove to delete the helper column.
  7. Click the button next to the column title.
  8. Make sure that the Expand option is selected in the popup menu.
  9. Uncheck the helper column.
  10. Uncheck Use original column as prefix.
  11. Click OK to populate the data of the second table.
  12. You will see the combinations in Power Query. When you are OK with the outcome, click Close & Load, this time to populate the entire data into your worksheet.
    How to find all combinations of two lists in Excel 12-min

After populating the merged table, you can see all combinations of the two lists.

How to find all combinations of two lists in Excel

Понравилась статья? Поделить с друзьями:
  • Полосовая диаграмма в excel
  • Получение электронной почты в excel
  • Полоса форматирования в word
  • Получение цифрового удостоверения word
  • Полоса прокрутки на весь лист в excel