2016-01-22 94 views
-3

我有不同的餐券价值。其他号码发生多少次

我想输入支付值并获得每个人的确切数量,该人将获得。

下面是一张更好理解的图片。

enter image description here

在图片中有这个例子。一个人获得64欧元的支出,结果是他必须得到4.2,4.3和3.8个凭证中的多少个。

Image of Excel table

+0

那么你是如何看待上述的答案呢?逻辑应该如何工作?我们是否给每一个添加一个,直到价格被填满?我们是否按照最高价格做最高价格,然后在最高价格上下注,直到价格被填满为止?没有足够的信息。 –

+0

什么是64?你能举一个关于64的数学例子吗? – Maertin

+0

你有10个潜在变量和一个线性方程 - 不可能在没有更多信息的情况下解决。 – Maertin

回答

0

这些场景与公式来解决非常困难的,但如果你不要求的确切数额为总的凭证的,而是密切近似,那么试试这个:

B4 =IF($L4>B$3,INT($L4/B$3),0) 
C4 =IF($L4-SUMPRODUCT(($B4:B4)*($B$3:B$3))<C$3,0,INT(($L4-SUMPRODUCT(($B4:B4)*($B$3:B$3)))/C$3)) 

复制C4,然后将B复制到K下。

enter image description here

这种方法的最高值券将首先考虑。在某些情况下,这可能不是最好的方法。有些数字最好忽略较高价值的代金券,并发放较小的代金券以达到最接近总价值。例如,如果支付为7美元,最好给出两张3.5代券。该公式将使用一张4.2美元的代金券和一张2美元的代金券,总额接近7美元,但不是那里。

所提出的问题需要对数据集进行多次迭代,但对于公式,这是不可能的,AFAIK。

Click to open the file.它将在Excel中在线打开,您可以下载副本。

+0

它真的很好!我很高兴你这样做了!但如果我想添加B4/C4公式,它总是说错误:/如果我尝试将C4公式转换为C4,则它不能在B4中工作B4公式 –

+0

您可能正在使用欧洲设置。您需要用分号替换公式中的逗号。我在帖子中添加了工作簿的链接。当您打开它时,它会根据您的区域设置进行调整。 – teylyn

+0

ou耶谢谢,我现在看到:)它的工作!太棒了! :) –