查找范围中的前n个值,同时将值的总和保持在x值以下的另一个范围内

我想完成以下任务。 有三列数据。 A栏代表价格,其中的总和需要保持在$ 100,000以下。 B列表示一个值。 列C表示与列A和列B相关联的名称。

在大于100行的数据中,我需要find列B中最高的8个值,​​同时保留列A中的价格总和低于$ 100,000。 然后返回C列的8个名字

这能做到吗?

编辑:

我尝试了求解器解决scheme,没有运气。 200行看起来是最大的瓦特/求解器,这就是我现在使用的。 以下是我采取的步骤:

  1. 创build一个名为排名排名(B2,$ B $ 2:$ B $ 200)的列(使用列D – 这是什么目的?)

  2. 创build一个名为标志的列只需放在零(使用列E)

  3. total_price(= SUM(A2:A200)),total_value(= SUM(B2:B200))和total_flag(=(E2:E200))

  4. 使用求解器来最大限度地减lesstotal_value(不应该这是最大化??)

  5. 添加约束-Total_price <= 100000 -Total_flag = 8 -Flag单元格是二进制的

使用Simplex LP,它只是改变前8个值的标志。 但是,前8个价值的总价格是> 10万美元(14万美元)。 我试着改变求解参数中的一些选项,以及使用不同的解决方法,无济于事。 我想发布一个参数设置的图像,但没有足够的“声誉”。

编辑#2:

前5行看起来是这样,价格下降到表的底部约6千美元。

Price Value Name Rank Flag $22,538 42.81905675 Blow, Joe 1 0 $22,427 37.36240932 Doe, Jane 2 0 $17,158 34.12127693 Hall, Cliff 3 0 $16,625 33.97654031 Povich, John 4 0 $15,631 33.58212402 Cow, Holy 5 0 

我将以解决scheme的解决scheme为出发点。 它涉及创build一些额外的列和总单元格。 注解求解器在它可以处理的单元数量上是有限的,但是仍然可以和100一起工作。

创build一个名为排名排名RANK(B2,$B$2:$B$100)

创build一个名为标志的列只需放在零

总共创build3个单元格total_price,total_value和total_flag

使用求解器来最小化total_value

添加约束-Total_price <= 100000 -Total_flag = 8 -Flag单元格是二进制的

这将标记你想要的行,你可以抓住你想要的名字。

Interesting Posts