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

时间:2016-03-10 16:39:59

标签: excel solver

我是excel solver的新手,我尝试将它用于我认为相当简单的任务,但它只是赢得了工作。

我有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'中的值时,才会从PnL列发布列。列大于'条件中的值'使用if语句的单元格。

'总计'然后,单元格是“符合条件”的总和。柱。 (PnL值大于标准值)

我正在努力让解决方案最大限度地提高' Total'单元格,通过更改“条件”中的值'但是,每当我尝试这个时,它会使标准单元格保持不变,并声称已找到解决方案。无论我最初在标准单元格中具有什么价值,解算器都声称这是运行时的解决方案。

有什么方法可以让它发挥作用吗?最好没有VBA

谢谢

3 个答案:

答案 0 :(得分:1)

没有Solver的方法:使用A2:B7中的%CHNG和PnL数据,在D2中使用此公式在条件等于A2时创建分数:

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

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

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

=MAX(D2:D7)

获得与最大值相关联的%CHNG值的公式为:

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

希望有所帮助。

答案 1 :(得分:1)

如果您想使用Solver进行操作,请使用" Evolutionary"求解器而非默认" Simplex LP"求解。
细胞C2应该是
=IF(A2>=criteria,B2,"")

如果求解器想要变量限制只是限制"标准"在-100和100之间 HTH

答案 2 :(得分:1)

这是一种在一定范围内获得最大值的方法。这称为最大子阵列问题see here

和以前一样,我假设您的%CHNG和PnL数据在A2:B7中。首先,您需要根据%CHNG对数据进行排序。 D列将保持“此处最大结束”,E列将保持“最大到目前为止”。我们在F列中也有“First”,G列中有“Last”---这些是%CHNG的第一个和最后一个值,它们对应于最大总和。

在D2到G2中输入以下公式:

=B2
=B2
=A2
=A2

现在在D3到G3中输入以下公式:

=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在该值上求和以获得最大总和。

希望这有帮助。