查找范围中的前n个值,同时将值的总和保持在x值以下的另一个范围内
我想完成以下任务。 有三列数据。 A栏代表价格,其中的总和需要保持在$ 100,000以下。 B列表示一个值。 列C表示与列A和列B相关联的名称。
在大于100行的数据中,我需要find列B中最高的8个值,同时保留列A中的价格总和低于$ 100,000。 然后返回C列的8个名字
这能做到吗?
编辑:
我尝试了求解器解决scheme,没有运气。 200行看起来是最大的瓦特/求解器,这就是我现在使用的。 以下是我采取的步骤:
-
创build一个名为排名排名(B2,$ B $ 2:$ B $ 200)的列(使用列D – 这是什么目的?)
-
创build一个名为标志的列只需放在零(使用列E)
-
total_price(= SUM(A2:A200)),total_value(= SUM(B2:B200))和total_flag(=(E2:E200))
-
使用求解器来最大限度地减lesstotal_value(不应该这是最大化??)
-
添加约束-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单元格是二进制的
这将标记你想要的行,你可以抓住你想要的名字。