【问题标题】:Generate combinations with a max value生成具有最大值的组合
【发布时间】:2021-12-01 18:19:09
【问题描述】:

背景:试图找出我们菜单的哪些价格上涨最有意义。 我们的客人每晚平均饮用 12 欧元。我们的酒吧提供的每种饮品都有一套价格菜单。

Drinks Price
Beer 1,50
Mix 3,50
Soda 0,50
Wine 2,00
Shots 3,00

现在,我想为人们平均花费 12 欧元的菜单生成所有可能的组合。这在 Google 表格中是否可行?我将如何处理?

当我生成组合时,我想看看价格上涨对一个人一晚的总支出有什么影响,并看看它会对我们的收入产生什么影响。

我们是一家由志愿者经营的酒吧,所有花在我们这里的钱我们都用来买第二天晚上的钱,其余的都捐给我们的基金,用于支持需要我们经济帮助的项目。

【问题讨论】:

  • 但这没有考虑到我想要使用的最大值?因为我想要一份 3 种混合饮料、8 种啤酒、24 种苏打水、2 种混合饮料、3 种啤酒等的清单

标签: google-sheets google-sheets-formula


【解决方案1】:

我认为您可以使用以下混合基数来做到这一点:

=ArrayFormula(filter(mod(quotient(sequence(A4,1,0),B4:F4),A3:E3),
mmult(mod(quotient(sequence(A4,1,0),B4:F4),A3:E3),transpose(A2:E2))<=G2))

左边的前几行包含饮料、它们的价格、可以以 12 美元购买的每种饮料的最大数量(如果这是确切金额,则加上一个),以及上一行的累积产品从右到左。

F3 和 F4 为 1,A3 中的公式为

=quotient($G$2,A2)+(mod($G$2,A2)=0)

A4中的公式是

=product(A3:$F3)

拉过去。


也可以设置下限:

=ArrayFormula(filter(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),
(mmult(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),transpose(A2:E2))<=G2)*
(mmult(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),transpose(A2:E2))>G4)))

其中 G4 包含最小值。

【讨论】:

  • 以前没听说过这个,能不能分享一下这张表?当我复制过去的公式并自己尝试时,我遇到了解析错误。
  • 是否也可以在公式中添加最小值,例如必须超过 10 美元
  • 开始工作了!我想我可以解决这个问题。非常感谢!
  • 太棒了!是的,可以添加最低限度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多