Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подбор всех возможных комбинаций цветов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Подбор всех возможных комбинаций цветов
Гость Дата: Среда, 06.06.2012, 10:39 | Сообщение № 1
Группа: Гости
Всем добрый день.
Подскажите можно ли получить решение задаче через Exel
Суть:
Есть 50 ячеек с разными цветами(именно цвета заполнение).
Нужно подобрать все возможные комбинации цветов по 2, 3, 4 цвета.

Пример:

1 ячейка = желтый
2 ячейка = красный
3 ячейка = белый
варианты решения:
желтый - красный - белый
белый- красный - желтый
красный - белый - желтый
и т.д
 
Ответить
СообщениеВсем добрый день.
Подскажите можно ли получить решение задаче через Exel
Суть:
Есть 50 ячеек с разными цветами(именно цвета заполнение).
Нужно подобрать все возможные комбинации цветов по 2, 3, 4 цвета.

Пример:

1 ячейка = желтый
2 ячейка = красный
3 ячейка = белый
варианты решения:
желтый - красный - белый
белый- красный - желтый
красный - белый - желтый
и т.д

Автор - Гость
Дата добавления - 06.06.2012 в 10:39
MCH Дата: Среда, 06.06.2012, 10:48 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (Гость)
Есть 50 ячеек с разными цветами(именно цвета заполнение).
Нужно подобрать все возможные комбинации цветов по 2, 3, 4 цвета.

Получается 5 647 250 (50*49 + 50*49*48 + 50*49*48*47 = 5647250) комбинаций,
что потом с этими комбинациями делать?
 
Ответить
Сообщение
Quote (Гость)
Есть 50 ячеек с разными цветами(именно цвета заполнение).
Нужно подобрать все возможные комбинации цветов по 2, 3, 4 цвета.

Получается 5 647 250 (50*49 + 50*49*48 + 50*49*48*47 = 5647250) комбинаций,
что потом с этими комбинациями делать?

Автор - MCH
Дата добавления - 06.06.2012 в 10:48
Гость Дата: Среда, 06.06.2012, 10:54 | Сообщение № 3
Группа: Гости
Потом из этих комбинаций вручную выбирать будут не сочетающиеся цвета.
Это нужно условно для колеровки политры.

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

Просто если это не сделать, то получится, что нужно в ручную все цвета проставлять один к другому

Автор - Гость
Дата добавления - 06.06.2012 в 10:54
Гость Дата: Среда, 06.06.2012, 11:03 | Сообщение № 4
Группа: Гости
MCH, их будут просто удалять построчно. Т.е условно двое человек сидят весь день и оценивают сочетаются они или нет.
Это займет объемное кол-во времени, но мы хотя бы сократив время на ручное забивание этих вариантов.
 
Ответить
СообщениеMCH, их будут просто удалять построчно. Т.е условно двое человек сидят весь день и оценивают сочетаются они или нет.
Это займет объемное кол-во времени, но мы хотя бы сократив время на ручное забивание этих вариантов.

Автор - Гость
Дата добавления - 06.06.2012 в 11:03
MCH Дата: Среда, 06.06.2012, 12:34 | Сообщение № 5
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Приложите файл, как вы это видите, кикие должны быть цвета, и какой должен получится результат.
На перебор 5,6 млн комбинаций (даже если оценивать одну комбинацию за 1 секунду) потребуется более 2 месяцев (а два человека - более месца).

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

да и 5 млн комбинаций сочетаний на лист Excel не поместится
 
Ответить
СообщениеПриложите файл, как вы это видите, кикие должны быть цвета, и какой должен получится результат.
На перебор 5,6 млн комбинаций (даже если оценивать одну комбинацию за 1 секунду) потребуется более 2 месяцев (а два человека - более месца).

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

да и 5 млн комбинаций сочетаний на лист Excel не поместится

Автор - MCH
Дата добавления - 06.06.2012 в 12:34
Гость Дата: Среда, 06.06.2012, 12:46 | Сообщение № 6
Группа: Гости
MCH, давайте я зайду с другой стороны.

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

Тоесть может ли при формуле подтягиваться цвет ячейки, а не данные внутри нее.
 
Ответить
СообщениеMCH, давайте я зайду с другой стороны.

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

Тоесть может ли при формуле подтягиваться цвет ячейки, а не данные внутри нее.

Автор - Гость
Дата добавления - 06.06.2012 в 12:46
Serge_007 Дата: Среда, 06.06.2012, 13:35 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
может ли при формуле подтягиваться цвет ячейки

Нет


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
может ли при формуле подтягиваться цвет ячейки

Нет

Автор - Serge_007
Дата добавления - 06.06.2012 в 13:35
Hugo Дата: Среда, 06.06.2012, 13:44 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
5 миллионов комбинаций формул? Даже если бы и могли оперировать цветами - вряд ли хватило бы ресурсов... И места на одном листе нет.
Это нужно/можно делать макросом. Алгоритм не скажу - не делал, кажется что сложно.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение5 миллионов комбинаций формул? Даже если бы и могли оперировать цветами - вряд ли хватило бы ресурсов... И места на одном листе нет.
Это нужно/можно делать макросом. Алгоритм не скажу - не делал, кажется что сложно.

Автор - Hugo
Дата добавления - 06.06.2012 в 13:44
MCH Дата: Среда, 06.06.2012, 13:48 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Можно такое макросом сделать
В примере реализовано без учета перестоновок цветов
Можно вручную задавать кол-во цветов (в D1), предварительно раскрасив ячейки в столбце A
А также указать небходимое кол-во выбираемых цветов (в D2)

----
Дабавил перестановки цветов, файл перезалил
К сообщению приложен файл: Colors2.xls (38.0 Kb)


Сообщение отредактировал MCH - Среда, 06.06.2012, 15:02
 
Ответить
СообщениеМожно такое макросом сделать
В примере реализовано без учета перестоновок цветов
Можно вручную задавать кол-во цветов (в D1), предварительно раскрасив ячейки в столбце A
А также указать небходимое кол-во выбираемых цветов (в D2)

----
Дабавил перестановки цветов, файл перезалил

Автор - MCH
Дата добавления - 06.06.2012 в 13:48
Гость Дата: Среда, 06.06.2012, 15:28 | Сообщение № 10
Группа: Гости
MCH, Спасибо большое. Вы ГУРУ smile
Но пять миллионов он конечно не тянет, хотя это совсем не критично.
 
Ответить
СообщениеMCH, Спасибо большое. Вы ГУРУ smile
Но пять миллионов он конечно не тянет, хотя это совсем не критично.

Автор - Гость
Дата добавления - 06.06.2012 в 15:28
MCH Дата: Четверг, 07.06.2012, 09:06 | Сообщение № 11
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (Гость)
Но пять миллионов он конечно не тянет

Пять миллионов комбинаций на лист 2003 экселя не поместится, а вот 3-4 млн. разместить можно, только ждать придется достаточно долго
К сообщению приложен файл: Colors3.xls (40.0 Kb)
 
Ответить
Сообщение
Quote (Гость)
Но пять миллионов он конечно не тянет

Пять миллионов комбинаций на лист 2003 экселя не поместится, а вот 3-4 млн. разместить можно, только ждать придется достаточно долго

Автор - MCH
Дата добавления - 07.06.2012 в 09:06
Gustav Дата: Четверг, 07.06.2012, 09:59 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1160 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
А смысл генерить сразу все 5 миллионов? Генерите себе построчно по 65 тысяч на лист 2003. Просмотрели цвета, сохранили удачные комбинации - следующие 65 тысяч берем. "Выбор" строки делаете, проставив, например, 1 в специально выделенную колонку (индикатор такой). Если охота мышкой дабл-кликать, то можно несложный макрос набросать. По окончании просмотра отсортировали по этой индикаторной колонке и удалили ненужные строки.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеА смысл генерить сразу все 5 миллионов? Генерите себе построчно по 65 тысяч на лист 2003. Просмотрели цвета, сохранили удачные комбинации - следующие 65 тысяч берем. "Выбор" строки делаете, проставив, например, 1 в специально выделенную колонку (индикатор такой). Если охота мышкой дабл-кликать, то можно несложный макрос набросать. По окончании просмотра отсортировали по этой индикаторной колонке и удалили ненужные строки.

Автор - Gustav
Дата добавления - 07.06.2012 в 09:59
Gustav Дата: Четверг, 07.06.2012, 18:13 | Сообщение № 13
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1160 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (Гость)
Тоесть может ли при формуле подтягиваться цвет ячейки, а не данные внутри нее.

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

Вот VBA-код этой функции:
[vba]
Code

Function ЗакрасьСоседа(color As Long, rowOffset As Long, colOffset As Long) As String
        
      Dim strXML As String
      Dim rng As Range
      Dim strColor As String
        
      Set rng = Application.Caller
      Set rng = rng.Offset(rowOffset, colOffset)
      ЗакрасьСоседа = rng.Address(False, False)
        
      If rowOffset = 0 And colOffset = 0 Then Exit Function
        
      strColor = Right("000000" & Hex(color), 6)
      strColor = "#" & Right(strColor, 2) & Mid(strColor, 3, 2) & Left(strColor, 2)
        
      strXML = strXML & "<?xml version=""1.0""?>"
      strXML = strXML & "<?mso-application progid=""Excel.Sheet""?>"
      strXML = strXML & "<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"">"
      strXML = strXML & "<Styles><Style ss:ID=""Dummy"">"
      strXML = strXML & "<Interior ss:Color=""" & strColor & """ ss:Pattern=""Solid""/>"
      strXML = strXML & "</Style></Styles>"
      strXML = strXML & "<Worksheet ss:Name=""Dummy"">"
      strXML = strXML & "<Table><Row>"
      strXML = strXML & "<Cell ss:StyleID=""Dummy""/>"
      strXML = strXML & "</Row></Table>"
      strXML = strXML & "</Worksheet></Workbook>"
        
      rng.Value(xlRangeValueXMLSpreadsheet) = strXML
        
End Function
[/vba]
В прилагаемом файле - воссозданная с ее помощью примерная палитра цветов свойства Range.Interior.ColorIndex. Некоторые мои комментарии есть здесь: http://www.axforum.info/forums/showthread.php?p=168652#post168652

Для возможного "Мозгового штурма": в принципе можно попробовать "на спор" внедрить цветовую заливку внутрь текущего XML-значения другой ячейки, вначале получив ее предыдущее значение по Range.Value(11) и разобравшись с частоколом тегов. Результатом должно стать "неубивание" предыдущего значения и формата при натравливании на нее функции "ЗакрасьСоседа". Кто хочет - попробуйте на досуге, у меня пока на это хотелки не хватило... smile
К сообщению приложен файл: 2325845.xls (52.5 Kb)


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

Сообщение отредактировал Gustav - Четверг, 07.06.2012, 18:18
 
Ответить
Сообщение
Quote (Гость)
Тоесть может ли при формуле подтягиваться цвет ячейки, а не данные внутри нее.

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

Вот VBA-код этой функции:
[vba]
Code

Function ЗакрасьСоседа(color As Long, rowOffset As Long, colOffset As Long) As String
        
      Dim strXML As String
      Dim rng As Range
      Dim strColor As String
        
      Set rng = Application.Caller
      Set rng = rng.Offset(rowOffset, colOffset)
      ЗакрасьСоседа = rng.Address(False, False)
        
      If rowOffset = 0 And colOffset = 0 Then Exit Function
        
      strColor = Right("000000" & Hex(color), 6)
      strColor = "#" & Right(strColor, 2) & Mid(strColor, 3, 2) & Left(strColor, 2)
        
      strXML = strXML & "<?xml version=""1.0""?>"
      strXML = strXML & "<?mso-application progid=""Excel.Sheet""?>"
      strXML = strXML & "<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"">"
      strXML = strXML & "<Styles><Style ss:ID=""Dummy"">"
      strXML = strXML & "<Interior ss:Color=""" & strColor & """ ss:Pattern=""Solid""/>"
      strXML = strXML & "</Style></Styles>"
      strXML = strXML & "<Worksheet ss:Name=""Dummy"">"
      strXML = strXML & "<Table><Row>"
      strXML = strXML & "<Cell ss:StyleID=""Dummy""/>"
      strXML = strXML & "</Row></Table>"
      strXML = strXML & "</Worksheet></Workbook>"
        
      rng.Value(xlRangeValueXMLSpreadsheet) = strXML
        
End Function
[/vba]
В прилагаемом файле - воссозданная с ее помощью примерная палитра цветов свойства Range.Interior.ColorIndex. Некоторые мои комментарии есть здесь: http://www.axforum.info/forums/showthread.php?p=168652#post168652

Для возможного "Мозгового штурма": в принципе можно попробовать "на спор" внедрить цветовую заливку внутрь текущего XML-значения другой ячейки, вначале получив ее предыдущее значение по Range.Value(11) и разобравшись с частоколом тегов. Результатом должно стать "неубивание" предыдущего значения и формата при натравливании на нее функции "ЗакрасьСоседа". Кто хочет - попробуйте на досуге, у меня пока на это хотелки не хватило... smile

Автор - Gustav
Дата добавления - 07.06.2012 в 18:13
Гость Дата: Среда, 04.07.2012, 12:30 | Сообщение № 14
Группа: Гости
MCH, есть еще у меня вопрос.
1. Почему происходит замена цвета при комбинировании, я в первом столбце выбрал цвета по RGB, а после компоновки они заменяются(другие оттенки)
2. И еще вопрос, такой в первом столбце у ячеек хочу прописать названия цвета и чтобы они дальше так же указались после компоновки.

http://files.ribalka02.ru/links/0704122409
 
Ответить
СообщениеMCH, есть еще у меня вопрос.
1. Почему происходит замена цвета при комбинировании, я в первом столбце выбрал цвета по RGB, а после компоновки они заменяются(другие оттенки)
2. И еще вопрос, такой в первом столбце у ячеек хочу прописать названия цвета и чтобы они дальше так же указались после компоновки.

http://files.ribalka02.ru/links/0704122409

Автор - Гость
Дата добавления - 04.07.2012 в 12:30
Гость Дата: Среда, 04.07.2012, 12:33 | Сообщение № 15
Группа: Гости
http://imglink.ru/show-image.php?id=b1a3de4348725e4547db592b09e58bf0
Радикал закрыт.
BB не могу использовать, полагаю т.к Гость.
 
Ответить
Сообщениеhttp://imglink.ru/show-image.php?id=b1a3de4348725e4547db592b09e58bf0
Радикал закрыт.
BB не могу использовать, полагаю т.к Гость.

Автор - Гость
Дата добавления - 04.07.2012 в 12:33
MCH Дата: Среда, 04.07.2012, 13:26 | Сообщение № 16
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Как вариант с копированием ячеек, работает правда значительно медленнее
К сообщению приложен файл: Colors4.xls (40.5 Kb)
 
Ответить
СообщениеКак вариант с копированием ячеек, работает правда значительно медленнее

Автор - MCH
Дата добавления - 04.07.2012 в 13:26
Hugo Дата: Среда, 04.07.2012, 13:37 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Можно в UDF Gustava сохранить значения или формулы - добавляем в код такие строки:

[vba]
Code
'в начале запоминаем
      tmp = rng.Formula
...
...

'в конце возвращаем
      With rng
          .Replace IIf(Len(.Value), "*", ""), tmp
      End With
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМожно в UDF Gustava сохранить значения или формулы - добавляем в код такие строки:

[vba]
Code
'в начале запоминаем
      tmp = rng.Formula
...
...

'в конце возвращаем
      With rng
          .Replace IIf(Len(.Value), "*", ""), tmp
      End With
[/vba]

Автор - Hugo
Дата добавления - 04.07.2012 в 13:37
Гость Дата: Среда, 04.07.2012, 14:02 | Сообщение № 18
Группа: Гости
MCH, а почему цвета может менять?
 
Ответить
СообщениеMCH, а почему цвета может менять?

Автор - Гость
Дата добавления - 04.07.2012 в 14:02
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!