Excel解算器,可变单元格更改调整数据集

我是新来的Excel解算器,我试图用它来做我认为相当简单的任务,但它不会工作。

我有3列如下:

%CHNG | PnL | Criteria met 1 | 1 | 1 .5 | 2 | 2 2 | -1 | -1 3 | 6 | 6 -1 | .5 | -.2 | -5 | 

和以下2个单元格:

 Criteria: 0 Total: =sum of criteria met column 

当“标准”单元格中的数字发生更改时,只有在“%CHNG”列中的值大于“criteria”单元格中的值的情况下,“标准满足”列中的值才会从PnL列中发布如果声明。

“总数”单元就是“标准满足”列的总和。 (大于标准值的PnL值)

我试图通过更改“标准”单元格中的值来使解算器最大化“总计”单元格,但每次我尝试此操作时,都会使准则单元格保持不变,并声明find了解决scheme。 无论我最初在标准单元格中具有什么价值,解算器在运行时都声称这是解决scheme。

有没有办法让这个工作? 优选没有VBA

谢谢

一种不使用求解器的方法:使用A2:B7中的%CHNG和PnL数据,在D2中,如果标准等于A2,则使用此公式创build分数:

 =SUM(IF($A$2:$A$7>A2,$B$2:$B$7,0)) 

(作为数组公式input:CTRL-SHIFT-ENTER)。 将该公式复制/粘贴到D3:D7以获得其他%CHNG值的分数。 对于这组数据,当%CHNG为-0.2时,这给出了最高分数8。

获得所有分数的最大值的公式是:

 =MAX(D2:D7) 

并且获得与最大值相关的%CHNG值的公式是:

 =INDEX(A2:A7,MATCH(MAX(D2:D7),D2:D7,0)) 

希望有所帮助。

如果你想用Solver来做,那么使用“进化”求解器而不是默认的“Simplex LP”求解器。
和C2应该是
=IF(A2>=criteria,B2,"")
等等
如果求解器想要variables有界,则将“标准”限制在-100和100之间。
HTH

这是一种在一定范围内获得最大值的方法。 这被称为最大的子arrays问题在这里看到 。

像以前一样,我假设你的%CHNG和PnL数据在A2:B7中。 首先,您需要根据%CHNG对数据进行sorting。 D列将保持“最大值在这里”,E列将保持“最大值”。 我们也会在F列中有“First”,在G列中有“Last”,这是对应于最大和的%CHNG的第一个和最后一个值。

在D2到G2中input这些公式:

 =B2 =B2 =A2 =A2 

现在在D3到G3中input这些公式:

 =IF(D2+B3>=B3,D2+B3,B3) =MAX(D3,E2) =IF(D2+B3>=B3,F2,A3) =IF(E3=D3,A3,G2) 

将这些公式复制/粘贴到数据的末尾。 单元格E7给出了最大的总和。 单元格F7和G7给出%CHNG的值,通过该值将PnL求和以获得最大总和。

希望这可以帮助。