Excel перебор всех вариантов

Вычисление числа комбинаций по формулам комбинаторики в 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

 

Кэтти-бри

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

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

Добрый вечер, уважаемые гуру Excel. Учусь работать в Экселе, изучая разные задачки. Столкнулась вот с одной запаркой, может кто поможет:

Итак, есть две колонки. Например
А                  B
Вася             Иванов
Гена             Петров
Петя              Сидоров

Вопрос. Задать формулами в колонки C и D алгоритм, чтобы перебирались все возможные сочетания (при этом не повторяясь)
Т.е. должны получиться 9 комбинаций, Вася Иванов, Вася Петров…. Петя Сидоров. При этом подразумевается, чтобы формула работала с большой исходной таблицей (например, сорок фамилий и семь имён, всего будет 280 комбинаций, или меньше если какие-то из значений исходника повторяются), при этом чтобы если в исходнике несколько раз встречается одно и то же имяфамилия, то в результате повторов не было, т.е. не было двух Васей Ивановых. Надеюсь, понятно объяснила. Макросом или сводной таблицей всё решается, меня интересует можно ли достичь решения формулами, и если можно, то как это будет выглядеть. Спасибо за внимание.  

Изменено: Кэтти-бри28.02.2017 16:59:42

 

Кэтти-бри

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

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

Догадываюсь, что надо использовать формулу массива, но что-то не получается — видимо навыка не хватает, и где-то ошибаюсь.

 

Кэтти-бри

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

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

Вот перечитывала, поняла, что неверно сформулировала задачу. Значения должны переноситься не в одну колонку, а в две, т.е. перебор девяти значений как в примере должен происходить в колонках C и D соответственно. т.е. — первые три в C — Вася-Вася-Вася, а в D соответствующие им разные фамилии.

 

Ігор Гончаренко

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

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

#4

28.02.2017 17:06:22

Код
=ИНДЕКС(C1;ЦЕЛОЕ((СТРОКА()-1)/СЧЁТЗ(C2))+1)&" "&ИНДЕКС(C2;ОСТАТ(СТРОКА()-1;3)+1)

обошлось обычным ИНДЕКС, без формул массива

Прикрепленные файлы

  • Книга5.xlsx (8.56 КБ)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Кэтти-бри

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

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

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

 

Ігор Гончаренко

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

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

#6

28.02.2017 17:23:46

в формуле явно видно один ИНДЕКС для имени а второй — для фамилии
а что, самостоятельно разбить формулу на 2 части — никак? возможно Excel — это не Ваше

Цитата
Плюс при растягивании формула ведёт себя не очень корректно

формула ведет себя так, как в ней написано
Вы же прекрасно посчитали, что в случае 3 имени, 3 фамилии будет 9 вариантов сочетаний, а семь имен и 40 фамилий = 280…
не растягивайте формулу за пределы количества сочетаний — и все будет нормально))
или поправьте немного, чтобы «за пределами» формула возвращала пустую строку
удачи!

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Кэтти-бри

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

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

#7

28.02.2017 17:27:24

Цитата
Ігор Гончаренко написал:
в формуле явно видно один ИНДЕКС для имени а второй — для фамилии
а что, самостоятельно разбить формулу на 2 части — никак? возможно Excel — это не Ваше

Уже сделала всё, спасибо большое за помощь. Я просто сказала что должно быть в идеале, вдруг вы любите всё делать идеально. Без Вашей подсказки не справилась бы.

 

Кэтти-бри

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

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

Кстати, проблема всё равно не решена, потому в решении, предложенном пользователем

Ігор Гончаренко

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

 

а если исключить ввод «кривых» значений в данные?

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Кэтти-бри

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

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

#10

28.02.2017 17:56:34

Цитата
Ігор Гончаренко написал:
а если исключить ввод «кривых» значений в данные?

Так вопрос не в «кривых» значениях. Допустим, в этих же колонках например не имя и фамилия, а фамилия и наименование товара. Ну, что продал. Ну скажем:
А_____________________________В
Пупкин_______________________Стиральная машина
Губкин________________________Магнитофон
Пупкин________________________Магнитофон
Губкин_________________________Магнитофон
Канарейкина_____________________вездеход
Тогда в итоге должно получиться
C___________________________________D
Пупкин_______________________________Стиральная машина (в третьей колонке например количество, но как его посчитать даже мне понятно, оно в рамках данной задачи не интересно)
Пупкин________________________________Магнитофон
Пупкин___________________________________вездеход
Губкин____________________________________Стиральная машина…. (и т.д.)
При этом второй раз строки Пупкин — Стиральная машина нам не надо, потому что нам одной строчки достаточно чтобы узнать, сколько он их продал.

 

_Igor_61

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

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

Здравствуйте! А файл с примером исходных данных никак нельзя показать? Что-то мне подсказывает, что тут дело в изначальной организации данных, а не в необходимости создания формул, которыми сначала нужно наплодить множество комбинаций, а потом из них убирать совпадения. Сделал вариант на основе файла от Ігор Гончаренко, проверяйте.  

Изменено: _Igor_6128.02.2017 22:57:01

 

Кэтти-бри

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

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

Добрый день,

_Igor_61

! Извините, что долго не отвечала, сейчас прикреплю вариант исходника, основанный на вашем же примере. Ваш вариант куда ближе к правде, но он некорректно работает, когда количество заполненных строк и столбцов неодинаково. Я чуть поменяла исходные данные, вот что получилось.
А вообще исходник тоже прикреплю. Вдруг вам так понятнее будет.
В исходнике — первые два листа пишутся от руки, лист Звонки приходит и на его основании автоматически должен формироваться лист Отчёт. Вся загвоздка в правой таблице, а именно в столбцах G и H, не понимаю как сделать чтобы они формировались автоматически путём перебора всех вариантов
направлений из первого листа и сотрудников из второго, исходя из того что и к направлениям, и к фамилиям могут добавляться новые, и тогда количество строк будет изменяться. В присланном примере на листе Отчёт столбцы G и H набиты вручную.

 

Юрий М

Модератор

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

Контакты см. в профиле

Файлы удалил: превышен максимально допустимый размер.

 

_Igor_61

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

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

Уфф… Чем дальше в лес… Кэтти-бри, а Вы не могли бы сформулировать итоговую задачу — что в итоге должно получиться? Нужно посчитать кол-во звонков по каждому сотруднику по каждому направлению, или общее время звонков по каждому сотруднику или что-то еще? Понимаю, что Вам наверное интересно сделать перебор формулой, но тот ли это способ для решения задачи?
 

 

Кэтти-бри

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

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

_Igor_61

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

 

Кэтти-бри

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

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

_Igor_61

Ну т.е. исходя из вашей формулировки — по общее время звонка по каждому сотруднику по каждому направлению.

 

_Igor_61

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

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

 

Кэтти-бри

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

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

Фантастика. Всё правильно, всё работает. Огромное спасибо. Пошла разбираться как Вы этого добились.

 

_Igor_61

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

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

:)

 

Андрей VG

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

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

Excel 2016, 365

#20

01.03.2017 15:04:25

Доброе время суток.
Не прошло и суток, чтобы понять что

чукча

Кэтти хочет :)
Вариант на Power Pivot.

Прикрепленные файлы

  • Кто-куда звонил.zip (89.22 КБ)

Изменено: Андрей VG01.03.2017 15:09:38
(Поменял формат, а то суммарная длительность за сутки перевалила :) )

Скажем, у меня есть следующие два столбца данных, и теперь я хочу сгенерировать список всех возможных комбинаций на основе двух списков значений, как показано на скриншоте слева. Возможно, вы можете перечислить все комбинации одну за другой, если есть несколько значений, но, если есть несколько столбцов с несколькими значениями, которые необходимо перечислить, возможные комбинации, вот несколько быстрых приемов, которые могут помочь вам справиться с этой проблемой в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Rafting Дата: Вторник, 11.04.2017, 12:49 | Сообщение № 3
_Boroda_ Дата: Вторник, 11.04.2017, 13:28 | Сообщение № 4

Ответить

Gustav Дата: Вторник, 11.04.2017, 13:33 | Сообщение № 5

Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов.

Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов. Gustav

Сообщение Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов. Автор — Gustav
Дата добавления — 11.04.2017 в 13:33

Rafting Дата: Вторник, 11.04.2017, 14:05 | Сообщение № 6

Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ.

Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ. Rafting

Сообщение Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ. Автор — Rafting
Дата добавления — 11.04.2017 в 14:05

Источник

Excel перебор всех вариантов

= Мир MS Excel/Полный перебор — Мир MS Excel

Войти через uID

Войти через uID

Модератор форума: китин, _Boroda_

Мир MS Excel » Вопросы и решения » Вопросы по Excel » Полный перебор (Полный перебор по подобию счетчика)

Полный перебор

ArtiEx Дата: Среда, 20.03.2013, 09:32 | Сообщение № 1
Gustav Дата: Среда, 20.03.2013, 09:53 | Сообщение № 2

P.S. Невнимательно прочитал. А если повторы цифр не надо исключать, то тогда просто IF убираем и еще проще становится:
[vba]

P.S. Невнимательно прочитал. А если повторы цифр не надо исключать, то тогда просто IF убираем и еще проще становится:
[vba]

P.S. Невнимательно прочитал. А если повторы цифр не надо исключать, то тогда просто IF убираем и еще проще становится:
[vba]

MCH Дата: Среда, 20.03.2013, 10:05 | Сообщение № 3

Я так понял, что нужны все комбинации (а не перестановки), так для 3 значений это будет 27 вариантов (3^3), для 4 значений — 256 вариантов (4^4), так для количества данных более 7 уже будет проблематично выводить на лист все варианты комбинаций

Можно решить формулами или макросом
Вариант алгоритма:
запускаем цикл от 0 до n^n-1 (где n — это количество значений)
переводим число из счетчика в n-значную систему счисления, тем самым получим полный перебор всех вариантов

Я так понял, что нужны все комбинации (а не перестановки), так для 3 значений это будет 27 вариантов (3^3), для 4 значений — 256 вариантов (4^4), так для количества данных более 7 уже будет проблематично выводить на лист все варианты комбинаций

Можно решить формулами или макросом
Вариант алгоритма:
запускаем цикл от 0 до n^n-1 (где n — это количество значений)
переводим число из счетчика в n-значную систему счисления, тем самым получим полный перебор всех вариантов MCH

Сообщение Я так понял, что нужны все комбинации (а не перестановки), так для 3 значений это будет 27 вариантов (3^3), для 4 значений — 256 вариантов (4^4), так для количества данных более 7 уже будет проблематично выводить на лист все варианты комбинаций

Можно решить формулами или макросом
Вариант алгоритма:
запускаем цикл от 0 до n^n-1 (где n — это количество значений)
переводим число из счетчика в n-значную систему счисления, тем самым получим полный перебор всех вариантов Автор — MCH
Дата добавления — 20.03.2013 в 10:05

Источник

Excel перебор всех вариантов

Имеется 24 буквы русского алфавита, не повторяются. Требуется вывести все возможные их комбинации при перестановке, буквы не должны повторятся. В строку из 24 символов.

Кому интересно — пытаюсь методом подбора решить задачку, подсмотренную на Pikabu.

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

Имеется 24 буквы русского алфавита, не повторяются. Требуется вывести все возможные их комбинации при перестановке, буквы не должны повторятся. В строку из 24 символов.

Кому интересно — пытаюсь методом подбора решить задачку, подсмотренную на Pikabu.

Пробовал самостоятельно искать, но видимо сочетать работу и вникание в мат.формулы не очень легкая для меня задачка) sanpai

Сообщение Всем здравствуйте!

Имеется 24 буквы русского алфавита, не повторяются. Требуется вывести все возможные их комбинации при перестановке, буквы не должны повторятся. В строку из 24 символов.

Кому интересно — пытаюсь методом подбора решить задачку, подсмотренную на Pikabu.

Пробовал самостоятельно искать, но видимо сочетать работу и вникание в мат.формулы не очень легкая для меня задачка) Автор — sanpai
Дата добавления — 26.09.2019 в 16:30

MCH Дата: Четверг, 26.09.2019, 16:45 | Сообщение № 2
Nic70y Дата: Пятница, 27.09.2019, 11:43 | Сообщение № 3
Alex_ST Дата: Пятница, 27.09.2019, 12:54 | Сообщение № 4

Ответить

sanpai Дата: Пятница, 27.09.2019, 12:55 | Сообщение № 5
sanpai Дата: Пятница, 27.09.2019, 12:57 | Сообщение № 6
sanpai Дата: Пятница, 27.09.2019, 13:38 | Сообщение № 7
Nic70y Дата: Пятница, 27.09.2019, 13:45 | Сообщение № 8
sanpai Дата: Пятница, 27.09.2019, 13:50 | Сообщение № 9

Первый вариант выгдядит так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
а б в г д е ё з и й к л м н о п р с т у ш ы э я

Позиции от 1-24 вставлены для дальнейшей дешифровки загадки. В 552 вариантах перебора не обнаружил варианта, когда бы под позицию «14» приходилась буква «К», а под «16» — «т».
Видимо, вариантов не 552, а значительно больше. Но цифра из первого ответа явно завышена)

Первый вариант выгдядит так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
а б в г д е ё з и й к л м н о п р с т у ш ы э я

Позиции от 1-24 вставлены для дальнейшей дешифровки загадки. В 552 вариантах перебора не обнаружил варианта, когда бы под позицию «14» приходилась буква «К», а под «16» — «т».
Видимо, вариантов не 552, а значительно больше. Но цифра из первого ответа явно завышена) sanpai

Сообщение Первый вариант выгдядит так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
а б в г д е ё з и й к л м н о п р с т у ш ы э я

Позиции от 1-24 вставлены для дальнейшей дешифровки загадки. В 552 вариантах перебора не обнаружил варианта, когда бы под позицию «14» приходилась буква «К», а под «16» — «т».
Видимо, вариантов не 552, а значительно больше. Но цифра из первого ответа явно завышена) Автор — sanpai
Дата добавления — 27.09.2019 в 13:50

Источник

Adblock
detector

Полный перебор

ArtiEx

Дата: Среда, 20.03.2013, 09:32 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 24

Есть файл (прилагается), где реализован полный перебор.
Нужно реализовать перебор в таком же виде , но более полный. Перебор должен работать как счетчик, т.е. чтобы была возможность повторяемости элементов. Например, имеем числа 1, 2, 3, — на выходе должны получить:
111
112
113
121
122
123
131
132
133
211

 

Ответить

Gustav

Дата: Среда, 20.03.2013, 09:53 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

985

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

Если совсем в лоб, быстро на коленках, не погружаясь в алгоритмы комбинаторики, то как-то так для четырех:
[vba]

Код

Sub generate()
      Dim i, j, k, l, m
      For i = 1 To 4
      For j = 1 To 4
      For k = 1 To 4
      For l = 1 To 4
          If i <> j And i <> k And i <> l And j <> k And j <> l And k <> l Then
              [b1].Offset(m) = i & j & k & l
              m = m + 1
          End If
      Next l, k, j, i
End Sub

[/vba]

P.S. Невнимательно прочитал. А если повторы цифр не надо исключать, то тогда просто IF убираем и еще проще становится:
[vba]

Код

Sub generateWithRepeat()
     Dim i, j, k, l, m
     For i = 1 To 4
     For j = 1 To 4
     For k = 1 To 4
     For l = 1 To 4
         [b1].Offset(m) = i & j & k & l
         m = m + 1
     Next l, k, j, i
End Sub

[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал GustavСреда, 20.03.2013, 09:56

 

Ответить

MCH

Дата: Среда, 20.03.2013, 10:05 |
Сообщение № 3

Группа: Админы

Ранг: Старожил

Сообщений: 2002


Репутация:

751

±

Замечаний:
±


Я так понял, что нужны все комбинации (а не перестановки), так для 3 значений это будет 27 вариантов (3^3), для 4 значений — 256 вариантов (4^4), так для количества данных более 7 уже будет проблематично выводить на лист все варианты комбинаций

Можно решить формулами или макросом
Вариант алгоритма:
запускаем цикл от 0 до n^n-1 (где n — это количество значений)
переводим число из счетчика в n-значную систему счисления, тем самым получим полный перебор всех вариантов

 

Ответить

MCH

Дата: Среда, 20.03.2013, 10:14 |
Сообщение № 4

Группа: Админы

Ранг: Старожил

Сообщений: 2002


Репутация:

751

±

Замечаний:
±


Реализация алгоритма через счетчик

К сообщению приложен файл:

ArtiEx.xls
(25.5 Kb)

 

Ответить

ArtiEx

Дата: Среда, 20.03.2013, 10:38 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 24

MCH, Мне нужно в формате приложенного мною файла, можете в него внести корректировки?

 

Ответить

ArtiEx

Дата: Среда, 20.03.2013, 10:39 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 24

Gustav, MCH, Мне нужно в формате приложенного мною файла, можете в него внести корректировки?

 

Ответить

MCH

Дата: Среда, 20.03.2013, 11:09 |
Сообщение № 7

Группа: Админы

Ранг: Старожил

Сообщений: 2002


Репутация:

751

±

Замечаний:
±


Цитата (ArtiEx)

Мне нужно в формате приложенного мною файла

Числа в столбце B Вам нужны, или заполнять только столбцы D:G данными из A1:A4?
Сколько всего может быть значений в столбце A, фиксированное кол-во или переменное?
Если данных будет 7 и более значений, куда их размещать (на лист в один столбик не влезут)?

похожая тема http://www.excelworld.ru/forum/2-1805-1#19907

 

Ответить

ArtiEx

Дата: Среда, 20.03.2013, 11:13 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 24

MCH, Нужны данные и в столбике В и в столбике D:G — точно также как в файле. Максимально кол-во данных — 5, поэтому на листе поместятся.

 

Ответить

MCH

Дата: Среда, 20.03.2013, 12:46 |
Сообщение № 9

Группа: Админы

Ранг: Старожил

Сообщений: 2002


Репутация:

751

±

Замечаний:
±


.

К сообщению приложен файл:

ArtiEx2.xls
(25.5 Kb)

Сообщение отредактировал MCHСреда, 20.03.2013, 12:50

 

Ответить

onnline365

Дата: Четверг, 14.08.2014, 13:13 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

а возможно сделать чтоб не было обратного порядка. Тоисть 987654321 а только по возрастанию от 1 до 10 к примеру, а также была возможность выбирать длину перебора к примеру 1234, 2345, 6789 и т.к.

 

Ответить

ArkaIIIa

Дата: Четверг, 14.08.2014, 13:36 |
Сообщение № 11

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

onnline365
Можете воспользоваться вышеуказанным макросом, а потом фильтрануть массив с помощью не очень сложных функций, проверяющих длину числа и логику возрастания цифр.
Но, опять таки, — в своем топике и при наличии файла-примера.

 

Ответить

onnline365

Дата: Четверг, 14.08.2014, 13:56 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

onnline365
Можете воспользоваться вышеуказанным макросом, а потом фильтрануть массив с помощью не очень сложных функций, проверяющих длину числа и логику возрастания цифр.
Но, опять таки, — в своем топике и при наличии файла-примера.

Но файл пример у меня есть.

К сообщению приложен файл:

9068566.xls
(24.0 Kb)

Сообщение отредактировал onnline365Четверг, 14.08.2014, 13:58

 

Ответить

ArkaIIIa

Дата: Четверг, 14.08.2014, 13:57 |
Сообщение № 13

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

onnline365
Я Вам ответил в Вашем топике.
[moder]Тема закрыта. Дублирование[/moder]

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Excel первые три буквы
  • Excel первые два слова в ячейке
  • Excel первое число месяца
  • Excel первое число в таблице
  • Excel первое слово в ячейке по буквам