Перебрать в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

Есть книга. В ней 20-30 строк и 600-700 столбцов
Задача состоит в следующем: Нужно перебрать всевозможные комбинации столбцов
Например
столбцы 1, 1+2, 2, 1+3, 3, 1+4…, 1+2+3, 2+3, ,1+2+4,,1+2+5…,1+2+3+4,,1+3+4,3+4 итд
начал писать цикл, но понял что одним циклом тут не ограничится.
может быть есть какой то более простой способ перебора всех комбинаций?

 

В файле нет примера результата.  

 

kalbasiatka, не важен результат (но для примера можно сумму по строке входящих в перебор столбцов заносить на другой лист)
главное это перебор

 

Допустим: Программа перебрала все возможные комбинации и вывела сообщение «Перебор завершен».
Вам так надо? Нет? А как?
В файле нет примера результата.

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Михаил Лебедев, да, по сути так и надо

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#6

23.01.2016 20:13:27

Цитата
да, по сути так и надо

Ну, если так и надо… Пожалуйста. Работает моментально.

Скрытый текст

 

vikttur, очень смешно! а где цикл самого перебора? msgbox должен после него быть а не просто вывести окно перебор завершен
Приколисты)))))

 

Catboyun

Пользователь

Сообщений: 1631
Регистрация: 09.05.2015

#8

23.01.2016 20:16:34

Цитата
andrey062006 написал:Приколисты

Вы же сами сказали:

Цитата
andrey062006 написал:не важен результат
 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

andrey062006, смысл перебора, если результат не нужен? Вам уже говорили приложить пример результата.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

JayBhagavan,в лист результата пусть заносятся в каждую новую строку текущая комбинация столбцов

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#11

23.01.2016 20:25:10

Цитата
andrey062006 написал:
(но для примера можно сумму по строке входящих в перебор столбцов заносить на другой лист)

Занес сумму по строке входящих в перебор столбцов на другой лист
=СУММ(Лист1!B2:WR2)

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Михаил Лебедев, ОМГ, вот поэтому я и написал так, как написал, чтобы не зацикливались на суммах и прочем. НУЖЕН ЦИКЛ ПЕРЕБОРА КОМБИНАЦИЙ СТОЛБЦОВ а не конкретная сумма.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Формула:
=СЦЕПИТЬ(ЕСЛИ(СТРОКА()-1;ИНДЕКС($A:$A;СТРОКА()-1);Лист1!$B$1);»,»;ИНДЕКС(Лист1!$1:$1;1;СТОЛБЕЦ(Лист1!$B$1)+СТРОКА()))

В макросе не вижу смысла.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#14

23.01.2016 20:36:39

Цитата
andrey062006 написал:
НУЖЕН ЦИКЛ ПЕРЕБОРА КОМБИНАЦИЙ СТОЛБЦОВ

ЗАЧЕМ НУЖЕН?
и
1,2 и 2,1 — это одна и та же комбинация?

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Михаил Лебедев, 1и2и3и4, 1и2, 1и3, 1и4, 1и2и4, 1и3и4, 2и3и4, 2и4, 2и3, 3и4, 1, 2, 3, 4
Вот сколько комбинайций только из 4 столбцов
А их больше 600
Для примера добавил макрос цикла который перебирает только по 1 столбцу
А нужно чтобы комбинации перебирал а не только по 1

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#16

23.01.2016 20:58:59

Цитата
andrey062006 написал:
1и2и3и4, 1и2, 1и3, 1и4, 1и2и4, 1и3и4, 2и3и4, 2и4, 2и3, 3и4 Вот сколько комбинайций только из 4 столбцов

и

Цитата
andrey062006 написал:
Нужно перебрать всевозможные комбинации столбцов

Вы сами себе противоречите. Это — не все комбинации, например — вот эти — не перечислили
1и1и2и1 1и2и2и1 1и2и2и2 и т.д.

Вамнужны действительно ВСЕ комбинации или только отвечающие определенному условию? (Или алгоритму?)

Изменено: Михаил Лебедев23.01.2016 20:59:18

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Михаил Лебедев, 1и1и2и1 это не то. Уточнюсь, комбинации из уникальных столбцов, в комбинации 1и1и2и1 три раза повторяется столбец 1. Короче один столбец в комбинации учавствует только один раз, а не несколько.

Изменено: andrey06200623.01.2016 21:02:09

 

Михаил Лебедев

Пользователь

Сообщений: 2856
Регистрация: 17.01.2013

#18

23.01.2016 21:08:42

Цитата
Михаил Лебедев написал:
1,2 и 2,1 — это одна и та же комбинация?

(повторюсь)

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Михаил Лебедев, да, это одна и та же комбинация

 

MCH

Пользователь

Сообщений: 3875
Регистрация: 22.12.2012

andrey062006, сообщите конечную цель перебора.
Перебрать 600 столбцов, генерируя все возможные комбинации — невозможно.
для 4х столбцов (чисел) существует 31 вариант сочетаний 2^4-1
для 600 чисел — 2^600-1 = 4,14951556888099E+180 вариантов

если скажите, какова конечная цель, то возможно есть другое решение, а не простой перебор всех вариантов.
Например, если из 600 столбцов нужно выбирать не более 4х, то это всего 5 млрд. комбинаций (5 382 165 350), что вполне возможно перебрать за разумное время.

Изменено: MCH23.01.2016 21:28:17

 

MCH, ну допустим можно ограничить комбинацию от 1 до 20 столбцов в комбинации.
Пусть будет если сумма ячеек 2-ой строки выбранных (входящих в комбинацию) столбцов больше 5 (к примеру) то пусть она заносит в лист «результат» эту комбинацию столбцов (естественно для каждой комбинации новая строка).

 

MCH

Пользователь

Сообщений: 3875
Регистрация: 22.12.2012

#22

23.01.2016 22:37:38

Макрос, который генерирует сочетания чисел, без подробного описания задачи ничего другого предложить не смогу

Код
Sub main()
    Dim a&(), b&(), i&, clm&, rws&, m&, n&, nMin&, nMax&, p&, txt$
    n = 20 'выборка из 20 чисел
    nMin = 1 'минимальная выборка
    nMax = 5 'максимальная выборка
    If nMin < 1 Then nMin = 1 'проверка на правильность значений
    If nMax > n Then nMax = n
      
    rws = 1 ' начальная строка для вывода
    clm = 1 'начальный столбец для вывода
    Cells(rws, clm).CurrentRegion.ClearContents 'очищаем диапазон вывода
    
    For m = nMin To nMax 'перебираем все выборки
        ReDim a&(1 To m)
        For i = 1 To m: a(i) = i: Next i 'начальная расстановка
        If m = n Then p = 1 Else p = m
        Do 'перебираем все сочетания m из n
            'здесь нужно сделать проверку, если очерендная генерация нам подходит
            If True Then 'вместо True должно быть условие при котороам будем запоминать генерацию
                txt = ""
                For i = 1 To m 'генерируем строку для вывода
                    txt = txt & IIf(txt = "", "", ", ") & a(i)
                Next i
                Cells(rws, clm) = txt 'сохраняем строку с индексами
                rws = rws + 1
                If rws > Rows.Count Then rws = 1: clm = clm + 1
            End If
            If a(m) = n Then p = p - 1 Else p = m
            If p Then
                For i = m To p Step -1
                    a(i) = a(p) + i - p + 1
                Next i
            End If
        Loop While p
    Next m
End Sub
 

andrey062006

Гость

#23

24.01.2016 00:23:59

MCH, Макрос вроде нормально работает но никак не могу его разобрать что там к чему. Какие то непонятные переменные. В каждом цикле какая переменная отвечает за выбранные столбцы или как макрос понимает какие столбцы сейчас просматриваются?
Как сделать чтобы текущие просматриваемые столбцы снизу (или сверху) например помечались плюсом, после проверки строка эта зачищалась и в новые выборке опять новые столбцы чтобы помечались плюсом ну ии каким-либо другим знаком?

Изменено: andrey06200624.01.2016 01:06:13

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

Взаимосвязь некоторых распределений в MS EXCEL


Рассмотрим взаимосвязь Биномиального распределения, распределения Пуассона, Нормального распределения и Гипергеометрического распределения. Определим условия, когда возможна аппроксимация одного распределения другим, приведем примеры и графики.


update Опубликовано: 06 ноября 2016

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


Подсчитаем в MS EXCEL количество перестановок с повторениями из n элементов. С помощью формул выведем на лист все варианты таких перестановок (английский перевод термина: permutations of multisets).


update Опубликовано: 02 февраля 2016

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


Подсчитаем в MS EXCEL количество Сочетаний с повторениями из n по k (выборка с возвращением). Также с помощью формул выведем на лист соответствующие варианты Сочетаний (английский перевод термина: combinations with …


update Опубликовано: 02 февраля 2016

Разрезка на мерные длины


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


update Опубликовано: 25 марта 2015

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


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


update Опубликовано: 01 февраля 2016

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


Подсчитаем в MS EXCEL количество Размещений с повторениями из n по k (выборка с возвращением). Также с помощью формул выведем на лист соответствующие варианты Размещений (английский перевод термина: sequence with …


update Опубликовано: 02 февраля 2016

Комбинаторика в MS EXCEL


Обзорная статья, в которой приведены основные функции MS EXCEL для вычисления количества перестановок, сочетаний и размещений. Рассмотрены варианты комбинаций без повторений и с повторениями (выборка с возвращением).


update Опубликовано: 01 февраля 2016

Комбинации элементов из нескольких множеств: Комбинаторика в MS EXCEL


Пусть имеется несколько множеств — {A1, A2, A3, А4 …}, {B1, B2, B3, …}, {C1, C2, …}, количество элементов в которых может быть различно. Требуется составить все возможные комбинации элементов …


update Опубликовано: 02 февраля 2016

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


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


update Опубликовано: 02 февраля 2016

Содержание

  1. Проход по диапазону ячеек
  2. Поддержка и обратная связь
  3. Перестановки без повторений: Комбинаторика в EXCEL
  4. Задача
  5. Инверсии перестановок
  6. Комбинаторика в Excel
  7. Перестановки без повторений
  8. Перестановки с повторениями
  9. Размещение без повторений
  10. Размещение с повторениями
  11. Сочетания без повторений
  12. Сочетания с повторениями

Проход по диапазону ячеек

При использовании Visual Basic часто требуется выполнить один и тот же блок операторов в каждой ячейке диапазона. Для этого необходимо объединить оператор цикла и один или несколько методов для идентификации каждой ячейки по отдельности и выполнить операцию.

Один из способов пройти по диапазону — использовать цикл For. Next со свойством Cells. С помощью свойства Cells можно заменить номера индексов ячеек счетчиком циклов (или другими переменными или выражениями). В следующем примере индекс строки заменяется переменной counter . Процедура проходит по диапазону ячеек C1:C20, присваивая значение 0 (ноль) каждому числу, абсолютное значение которого меньше 0,01.

Еще один простой способ пройти по диапазону — использовать цикл For Each. Next с коллекцией ячеек, указанной в свойстве Range. Visual Basic автоматически присваивает объектную переменную для следующей ячейки при каждом выполнении цикла. Следующая процедура проходит по диапазону ячеек A1:D10, присваивая значение 0 (ноль) каждому числу, абсолютное значение которого меньше 0,01.

Если вы не знаете границы диапазона, по которому нужно пройти, можно использовать свойство CurrentRegion, чтобы возвратить диапазон, окружающий активную ячейку. Например, при запуске на листе следующая процедура выполняет проход по диапазону, окружающему активную ячейку, присваивая значение 0 (ноль) каждому числу, абсолютное значение которого меньше 0,01.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

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

history 2 февраля 2016 г.

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

Перестановкой множества из n элементов называется расположение элементов в определенном порядке.

Элементами множества могут быть числа, буквы и вообще любые объекты. Главное, чтобы эти элементы были различными. Т.к. любому объекту можно сопоставить число, то для Перестановок обычно используют конечное множество целых чисел, например, <1; 2; 3; 4; 5>. Хотя множества из букв также можно часто встретить в литературе. Например, все различные Перестановки множества из трех элементов – это abc , acb , bac , bca , cab , cba .

Число Перестановок n элементов равно n! (факториал).

Для вычисления факториала в MS EXCEL есть функция =ФАКТР() , английский вариант FACT(). Понятно, что число перестановок растет очень быстро с ростом n: для n=7 число перестановок равно 5040. Справедливости ради, нужно отметить, что зачастую сами варианты перестановок находить не требуется, главное – найти их количество.

Примечание : Перестановки можно считать частным случаем размещений при n=k (см. статью Размещения без повторений: Комбинаторика в MS EXCEL ). Поэтому для вычисления количества перестановок можно использовать функцию ПЕРЕСТ() . Для n=7 число Перестановок вычисляется по формуле =ПЕРЕСТ(7;7)

Примечание : О Перестановках с повторениями (с возвращением элементов обратно во множество, из которого они берутся, после выборки каждого элемента) можно прочитать в статье Перестановки с повторениями: Комбинаторика в MS EXCEL .

В файле примера создана универсальная формула для вывода всех Перестановок для заданного n. Например, для n=3.

Задача

6 машин разных марок участвуют в гонках на выживание: LADA Granta, Hyundai Solaris, KIA Rio, Renault Duster, Lada Kalina, Volkswagen Polo. Определить число возможных вариантов распределения мест между всеми участниками.

Нам нужно определить число перестановок 6 машин на 6-и местах. Т.е. n=6. Оказывается, что таких перестановок 720: =ПЕРЕСТ(6;6) или 6! =ФАКТР(6)

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

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

Введя в ячейке В5 значение 6, определим все варианты расстановок машин на занятых ими в гонке местах.

Инверсии перестановок

Для каждой перестановки a 1, a 2, a 3. a n из n целых чисел 1, 2, 3, . n , инверсией называется пара ( a i, a j) если для i a j. Число инверсией в перестановке показывает насколько перестановка является «несортированной» по возрастанию.

Например, число инверсий в перестановке 1, 2, 3, 4 равно 0 (перестановка из 4-х целых чисел отсортирована по возрастанию от 1 до 4), а число инверсий в перестановке 4, 3, 1, 2 равно 5, т.к.:

  • первый элемент (i=1) равен 4 и он больше 3-х чисел (с j=2, 3, 4), которые расположены правее (4>3, 4>1, 4>2), т.е. мы имеем 3 инверсии;
  • второй элемент (i=2) равен 3 и он больше 2-х чисел (с j=3, 4), которые расположены правее (3>1, 3>2), т.е. мы имеем еще 2 инверсии;
  • так третий элемент (i=3) равен 1 и он меньше числа с j=4, которое расположено правее (1 файле примера для каждой Перестановки подсчитывается число инверсией.

Инверсии перестановок, например, используются при вычислении определителя матрицы (см. статью Вычисление определителя матрицы в MS EXCEL ).

Источник

Комбинаторика в Excel

Комбинаторика в Excel

Комбинаторика — раздел математики, изучающий дискретные объекты, множества (сочетания, перестановки, размещения элементов) и отношения на них. Термин комбинаторика был введён в математический обиход Лейбницем, который в 1666 году опубликовал свой труд «Рассуждения о комбинаторном искусстве». Excel поддерживает ряд функций комбинаторики. Чтобы разобраться, какую формулу использовать, следует ответить на ряд вопросов:

  1. Исходное множество содержит только уникальные элементы, или некоторые из них могут повторяться?
  2. Операция выполняется со всеми элементами множества, или только с некоторой выборкой из них?
  3. Важен ли порядок элементов в выборке?
  4. После выбора элемента мы его возвращаем назад?

Рис. 1. Дерево решений, какую формулу комбинаторики использовать

Скачать заметку в формате Word или pdf, примеры в формате Excel

Перестановки без повторений

Возьмем несколько различных элементов (предметов) и будем переставлять их всевозможными способами, оставляя неизменным их число и меняя только их порядок (рис. 2). Каждая из получившихся таким образом комбинаций носит название перестановки. Перестановкой из n элементов называется упорядоченное множество, составленное из всех элементов множества.

Рис. 2. Перестановки (картинка взята здесь)

Если все n элементы разные, то число перестановок обозначается Pn от perturbation.

С другой стороны, произведение n первых натуральных чисел называется n-факториал и обозначается n!

По определению: 1! = 1; 0! = 1.

Функция в Excel =ФАКТР(n). Факториал растет очень быстро. Существенно быстрее экспоненты (рис. 3).

Рис. 3. Расчет числа перестановок без повторений с помощью факториала

Перестановки с повторениями

Если в основном n множестве не все элементы разные, то число перестановок будет меньше n! Например, если наше множество состоит из трех яблок и одной груши, то всего возможно 4 перестановки (рис. 4). Груша может быть первой, второй, третьей или четвертой, а яблоки неразличимы).

Рис. 4. Перестановки с повторениями (картинка найдена здесь)

В общем случае, можно сказать: последовательность длины n, составленная из k разных символов, первый из которых повторяется n1 раз, второй – n2 раз, третий – n3 раз, …, k-й – nk раз (где n1 + n2 + … + nk = n) называется перестановкой с повторениями из n элементов.

Пример. Сколько различных пятибуквенных слов можно составить из букв слова «манна»?

Решение. Буквы а и н повторяются 2 раза, а буква м один раз.

Размещение без повторений

Размещением из n элементов по m называется упорядоченный набор из m различных элементов, выбранных из n-элементного множества (все элементы множества уникальны; позиции элементов в выборке важны). Число размещений обозначается от arrangement.

Например, два элемента из трех можно выбрать и расположить шестью способами (рис. 4):

Рис. 5. Размещение без повторений (картинка из презентации)

Если m = n количество элементов совпадает с количеством имеющихся мест для размещения. Знаменатель в формуле (4) превращается в 0! = 1. Остается только числитель n! А это – изученная выше перестановка без повторений; см. формулу (1).

Название функции в Excel несколько обескураживает. Но… что поделаешь: =ПЕРЕСТ(n;m)

Рис. 6. Размещение без повторений; обратите внимание на смешанные ссылки, которые позволяют протянуть формулу на всю таблицу

Размещение с повторениями

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

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

Рис. 7. Размещение с повторениями

В общем случае размещение с повторениями или выборка с возвращением – это размещение «предметов» в предположении, что каждый «предмет» может участвовать в размещении несколько раз. По правилу умножения количество размещений с повторениями из n по k:

В Excel используется функция ПЕРЕСТА(n;k).

Задача. Сколько различных номеров можно составить в одном коде региона?

Подсказка. В номере используется 12 букв алфавита, также существующих и в латинском алфавите (А, В, Е, К, М, Н, О, Р, С, Т, У, Х).

Решение. Можно воспользоваться формулой для размещения с повторениями:

Каждую цифру можно выбрать 10 способами, а всего цифр 3, при этом они могут повторяться, и их порядок важен. Каждую букву можно выбрать 12 способами, при этом буквы могут повторяться, и их порядок важен.

Сочетания без повторений

Сочетаниями из n множества по m элементов называются комбинации, составленные из данных n элементов по m элементов, которые различаются хотя бы одним элементом (в сочетаниях не учитывается порядок элементов).

Например, два элемента из 4 сочетаются 6 способами (порядок следования не важен):

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

где n – номер строки, m – номер элемента в строке, начиная с нулевого. Например, в строке 7:

Рис. 10. Треугольник Паскаля; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

В Excel используется функция =ЧИСЛКОМБ(n;m).

Сочетания с повторениями

Сочетания с повторениями по смыслу похожи на размещение с повторениями – это выборки из множества с возвращением выбранного элемента назад перед каждым новым выбором. При этом порядок в выборке не важен.

Например, два предмета из четырех можно выбрать 10 способами, если после каждого выбора предмет возвращается назад (рис. 11).

В общем случае, число сочетаний с повторениями:

Для нашего примера с фруктами

В Excel для подсчета числа сочетаний с повторениями используется функция =ЧИСЛКОМБА(n;m). В нашем примере =ЧИСЛКОМБА(4;2) = 10.

Источник

В Excel есть множество функций, позволяющих получить очень полезные результаты в математике и финансах, если назвать всего две категории. По этой причине мы рекомендуем вам установить Microsoft Office и прочтите эту статью, из которой вы узнаете чтобы перечислить все комбинации с функцией КОМБИНАТ в Excel 

Что такое комбинация?

Вероятно, комбинация — это метод подсчета, используемый для получить количество групп элементов что можно взять из набора. Важно отметить, что элементы не повторяются, порядок не имеет значения, можно использовать числовые значения или символы, что выражается формулой C n, k = n! / (нк)! * к!

Функция COMBINATE в Excel

Функция КОМБИНАТ — это формула Excel, которая позволяет получить количество комбинаций для набора элементов. Таким образом, функция COMBINATE в Excel предоставляет общее количество групп, которые могут быть созданы из определенного количества элементов.

Функция COMBINAT в Excel поддерживает только числовые значения, и если некоторый текст включен в ячейки, которые будут аргументами формулы, будет получен усеченный результат, а на выходе #VALUE! Если один из аргументов содержит значение меньше 0, функция возвращает ошибку # ЧИСЛО!  

Как перечислить все комбинации с функцией COMBINATE в Excel

Если вы хотите перечислить все комбинации с функцией COMBINATE в Excel, необходимо знать синтаксис требуется эту формулу и применить дополнительную процедуру в случае, если список групп включает текст вместо числовых значений.

Каков синтаксис функции КОМБИНАТ в Excel?

Синтаксис функции КОМБИНАТ в Excel имеет два аргумента. Первый аргумент относится к общему количеству элементов, а второй — к количеству элементов, разрешенных в каждой комбинации. Оба аргумента обязательны и выражаются так: = КОМБИНАТ (число, размер)  

Перечислите количество возможных комбинаций с функцией КОМБИНАТ в Excel

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

Напишите имя каждого ученика от A1 до A8. Для этого вы можете создать сводную таблицу . Перейдите к строке формул и выберите категорию «Математика и тригонометрия». Найдите функцию COMBINAT и нажмите «ОК». В «Число» нажмите значок красной стрелки, чтобы выбрать диапазон A1: A8, а в «Размер» введите 2 и нажмите «ОК». 

Список всех комбинаций с функцией COMBINATE в Excel

Если вам нужно перечислить все комбинации с Функция COMBINATE в Excel, это необходимо создать макрос для выполнения процедуры. Для этого разделите имена на два столбца (A и B) и нажмите «Alt + F11». Таким образом вы получите доступ к редактору Visual Basic. Затем нажмите «Вставить» и «Модуль».

Вставьте следующие строки кода, чтобы вы могли видеть комбинации (вы должны помнить, что точки в начале каждой строки не входят в код):

  • Под комбайном ()
  • Dim i как целое, j как целое, LastRA как целое, LastRB как целое, Aux как целое
  • Вспомогательный = 1
  • LastRA = Диапазон («A4»). Конец (xlUp) .Row
  • LastRB = Диапазон («B4»). Конец (xlUp) .Row
  • Для i = 1 ТБ LastRA
  • Для j = 1 ТБ LastRB
  • Диапазон («C» & Aux) = Range («A» & i) & Range («B» & j)
  • Вспомогательный = Вспомогательный + 1
  • Следующий j
  • Затем я
  • End Sub

Как работает макрос для выполнения слияния

Чтобы комбинация была проведена, вы должны указать, что из всего «n» элементов (8 имен учащихся) возможно получить группы элементов без повторения и независимо от порядка, в котором они появляются.

При выборе диапазона или всех элементов столбец «C» получит возможные комбинации посредством поворота в два цикла для столбцов A и B. Удобно отметить, что если вы решите загрузите и установите LibreOffice на вашем компьютере вы не сможете разработать макрос, потому что это программное обеспечение несовместимо с приложениями Visual Basic.  

Ezoic

Like this post? Please share to your friends:
  • Перебор ячейкам excel макрос
  • Перебор ячеек в столбце excel vba
  • Перебор ячеек в excel формула
  • Перебор строки vba excel
  • Перебор значений в столбце в excel