Страницы: 1
RSS
Разбивка числа на составляющие с учетом весового коэффициента.
 

Добрый день. Прошу помощи в разбивки двухзначного числа на составляющие. В приложении табличка с функцией разбивки цвета ячейки на составляющие CMYK. Тут все работает без проблем. Далее по каждому цвету мне требуется разбить на доли (1 0,7 0,4 0,1). Как это забить в формулу?

Пояснение

К примеру, допустим голобуго цвета © - 29, соответственно доли 1 мне надо взять 2раза, плюс 1 долю 0,7 и 2 доли 0,1.

В табличке разнесено в ручную (красным шрифтом), то что надо так сказать автоматизировать…

 
Вы когда захотите купить зимнюю резину на машину, тоже в яндексе поисковые запросы типа "помогите мне все". Или "помогите, проблема с машиной" задаете??? А че, там вполне возможно среди миллионов ссылок будет что-то и про колеса...
А почему вы свою тему называете "автоматизация таблицы"??? Про что должна быть эта тема в поисковой строке, чтобы другой пользователь получил полезную информацию???
Если автоматизировать бардак, то получится автоматизированный бардак.
 
artclonic, я вообще ничего не понял что нужно сделать и где это решено в примере))
Не бойтесь совершенства. Вам его не достичь.
 
Значения (решения) красным шрифтом - я в ручную вбил..
Повторюсь
к примеру цвет состоит из следующих составляющих
Синий (С)  - 25
Пурпурный (M) - 12
Желтый (Y) - 0
Серый (K) - 2

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

К примеру 25 синего цвета у меня получится из: двух капель с концентрации 1, потом одной капли с концентрацией 0,7 и одной капли с концентрацией 0,1 получается "25" (тут на 10 все умножено).
 
Соответственно цвет пурпурный (М) значения которого 12, должен состоять из одной капли с концентрации 1 и двух капель с концентрацией 0,1.
 
Цитата
artclonic написал:
К примеру 25 синего цвета у меня получится из: двух капель с концентрации 1, потом одной капли с концентрацией 0,7 и одной капли с концентрацией 0,1 получается "25" (тут на 10 все умножено).
Это как? 10 * ( 1 + 1 + 0,7 + 0,1) = 28
 
100 это 10
десятки
90, 80,70,60,50,40,30,20,10 соответственно будет 9,8,7,6,5,4,3,2,1

единицы будут
9 это 1(0,7) + 2(0,1)
8 это 1(0,7) + 1(0,1)
7 это 1(07)
6 это 1(0,4) + 2(0,1)
5 это 1(0,4) + 1(0,1)
4 это 1 (0,4)
3 это 3 (0,1)
2 это 2 (0,1)
1 это 1 (0,1)
 
Цитата
Андрей VG написал:
Это как? 10 * ( 1 + 1 + 0,7 + 0,1) = 28
Получается , что 25  у нас раскладывается на
две капли с концентрацией "1"   умножаем на 10 получается 20
одну каплю с концентрацией "0,4" умножаем на 10 получается 4
одну каплю с концентрацией "0,1" умножаем на 10 получается 1

Итого 25
Изменено: artclonic - 01.10.2018 16:03:19
 
Цитата
artclonic написал:
одну каплю с концентрацией "0,4" умножаем на 10 получается 4
Это то понятно, но почему вы пишите
Цитата
Андрей VG написал:
одной капли с концентрацией 0,7
вместо 0,4.
Господа формулисты, давайте упрощу задачу. В ячейках B1:E1 записаны достоинства монет. В ячейках B2:E2 нужно написать формулу, которая возвращает число монет данного достоинства, так что бы сумма произведений числа монет данного достоинства на это самое достоинство было равно некоторому заданному числу A2. Насколько понимаю, никакой оптимизации по числу монет не требуется. Подойдёт любая комбинация.
Изменено: Андрей VG - 01.10.2018 16:56:06
 
artclonic, что с округлением?
чисто для примера для Y строка 11
=INT($H11/10/R$8)
=INT(($H11-SUMPRODUCT($R$8:R$8;$R11:R11)*10)/S$8/10)
=INT(($H11-SUMPRODUCT($R$8:S$8;$R11:S11)*10)/T$8/10)
=ROUND(($H11-SUMPRODUCT($R$8:T$8;$R11:T11)*10)/U$8/10;0)

4,0,1,2
Изменено: БМВ - 01.10.2018 16:55:50
По вопросам из тем форума, личку не читаю.
 
Версия на жадном алгоритме (благо достоинства идут по не возрастанию).
 
Цитата
БМВ написал:  что с округлением?
Да...эту проблемму я тоже предвидел. Нужно округлить так сказать программно, а не просто визуально...
Сейчас попробую забить везде формулки....
Изменено: artclonic - 01.10.2018 16:55:44
 
Код
=ЦЕЛОЕ(ЕСЛИ(R8C=1;З1;ОКРУГЛ(З-З2;1))/R8C)

значения в СМИК я округлил до целых
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
и кто подогнал новое название теме?
точнее не скажешь - РЕСПЕКТ!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Начало автора, окончание - БМВ
 
Цитата
Андрей VG написал:
благо достоинства идут по не возрастанию
и тут вмешивается долбанный стандарт и плавающая точка, которые при дробных значениях ( а в теме это именно так) дает погрешность и просто INT не катит :-(

Версию Игоря не смотрел. Оборачивать в одну формулу свои  - тоже пока нет времени. для C и Y в файле, остальное сами. если решение подходит.

Цитата
vikttur написал: окончание - БМВ
продолжаю нести свой крест :-)
Изменено: БМВ - 01.10.2018 17:53:50
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Версию Игоря не смотрел
там собственно смотреть нечего. формула написана. она одна во всех колонках, во всех строках, для всех цветов.
все строго: одна задача - одна формула, как у самураев один противник - один удар
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
одна задача - одна формула,
и три самурая в кустах попрятались  (в именах) :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
и тут вмешивается долбанный стандарт и плавающая точка, которые при дробных значениях ( а в теме это именно так) дает погрешность и просто INT не катит :-(
Хе, всегда можно задействовать Эпсилон ;) . По крайней мере для максимального значения цветов CMYK 255 (в не процентном представлении) - оно помогает.
А потом - всё это устоявшийся набор значений количеств типов капелек для цвета от 0 до 255. Сохранить как таблицу и потом подтягивать через ВПР (можно и в быстрой нотации).
Изменено: Андрей VG - 01.10.2018 19:56:32
 
Добрый день... Выявил проблемку...Если изначальное значение 0,7 то формула почему то не ставит единичку на 0,7 а ставит на 0,1

И еще вопрос, а каой функцией воспользоваться, что б  к примеру округлить вот так
0,01 в 1
0,3 в 1
2,1 в 3
3,4 в 4
Изменено: artclonic - 02.10.2018 09:43:19
 
Цитата
artclonic написал:
Выявил проблемку...Если изначальное значение 0,7
Вариант с округлением до двух знаков в функции CMYK_From_Cell.
Цитата
artclonic написал:
И еще вопрос, а каой функцией воспользоваться
Этой
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.
 
Добрый день, выявил ошибку....Когда цвет полностью черный, то расчет не ведется....
 
Цитата
artclonic написал:
то расчет не ведется....
Вам было представлено несколько вариантов решений разными людьми. Вы стесняетесь обратиться к кому-то по нику или это во всех решениях такая ошибка?
 
ну не знаю, перенес свои не оптимизированные формулы - расчет ведется.
По вопросам из тем форума, личку не читаю.
 
Я Ваш Андрей взял, с округлением функции (немного стесняюсь... если честно)
=CMYK_From_Cell(B9;$H$8)*100
Изменено: artclonic - 03.10.2018 20:38:56
 
Цитата
artclonic написал: Я Ваш Андрей взял
Если мой, то что означает
Цитата
artclonic написал: .Когда цвет полностью черный, то расчет не ведется....
То что все ячейки пустые? Так там формат ячеек задан такой, чтобы 0 не отображался.
 
Андрей VG, Андрей, в RGB - это конечно 0, но в CMYK Это чистый К(ey) то есть 100.
По вопросам из тем форума, личку не читаю.
 
Михаил, а я пользуюсь тем, что выдаёт CMYK_From_Cell. Выдаст 100 будет 10 для 1,0, а будет 0, то краска не используется следовательно пусто. Так понимаю ;)  Так что если ошибка, то в функции, а я там только округление до двух символов после запятой сделал, ну и если значение компоненты меньше 0, то будет 0.
Страницы: 1
Наверх