#excel #if-statement #math
Вопрос:
Я борюсь с небольшой задачей в Excel. У меня есть два варианта на выбор при заказе оптом. Вариант А — 5 штук по 80$. Вариант В — 30 штук за 200$. Я не могу покупать отдельные изделия, и мне приходится покупать оптом. Как я могу написать формулу, которая может проверить, какую комбинацию оптовых заказов я должен сделать? Например, если я хочу заказать 34 штуки, то было бы лучше заказать Вариант В один раз и Вариант А один раз, вместо того, чтобы заказывать Вариант В дважды или Вариант А 7 раз.
Я попытался найти уравнение, в котором x-перехват показывал бы, сколько вариантов A нужно заказать, но это работает только в очень упрощенных случаях, а не для всех возможных входных данных. Я думаю, что ответ на этот вопрос может заключаться в формуле IF, но я не уверен.
Комментарии:
1. Я думаю, что этот вопрос относится к другому сайту, например math.stackexchange.com потому что вы ищете уравнение. Как только вы это поймете, тогда, возможно, вы сможете спросить, как составить формулу для этого уравнения
2. @FoxfireAndBurnsAndBurns Не будет ли это также уместно здесь, так как я предполагаю, что вы могли бы написать формулу для этого, используя вложенные циклы if?
3. Чтобы написать формулу, вам нужно знать ручную формулу , как ее решить. Вам нужно само уравнение. Перевод этого уравнения в Excel, действительно, является вопросом для SO (с минимальными усилиями). Но получение уравнения, я думаю, выходит за рамки. В любом случае, я не голосовал за закрытие вопроса, это просто мое мнение 🙂 Может быть, другие пользователи смогут нас просветить.
Ответ №1:
Это похоже на проблему для целочисленного линейного программирования:
Parameters:
n = 34 = wanted number of pieces
pA = 80 = price of A
pB = 200 = price of B
nA = 5 = number of pieces per A
nB = 30 = number of pieces per B
Decision variables:
qA, qB = number of lots A, number of lots B, integers
Minimize:
pA * qA pB * qB
Under constraints:
nA * qA nB * qB >= n
qA >= 0
qB >= 0
С другой стороны, проблема достаточно проста, потому что цена за штуку намного дешевле для B (pB/nB = 6,67), чем для A (pA/nA = 16); и цена одного B находится между ценой 2 и 3 A. Итак, существует очевидная эвристика: разделите желаемое количество штук на 30, чтобы выбрать как можно больше B, выберите один дополнительный B, если осталось более 2 A, в противном случае в комплекте с A.
qB = floor(n / 30)
if n - 30 * qB > 2:
qB = 1
qA = 0
else:
qA = ceil((n - 30 * qB) / 5)