1

Excel ソルバーに制約を追加しています。

制約は、位置 A3 の入力データが 0 または 3 ~ 8 でなければならないことを示しています。

ソルバーの制約ボックスに「または」関数が見つからなかったため、この制約を Excel ソルバーに追加するにはどうすればよいですか。">="、"<="、"="、"int"、"bin"、​​"dif" 演算子しかありません。

どうもありがとう

4

2 に答える 2

0

これは少しハックですが、制約が満たされたときにゼロになり、満たされていないときにゼロ以外の関数を作成できます。たとえば、(名前付き範囲内に)すべて有効な個々の値などの数と、範囲val_1および(下限と上限) がある場合、条件が満たされた場合、次の式はゼロと評価されます。val_2llimulim

=(A3 - val_1) * (A3 - val_2) * FLOOR.PRECISE(ABS((A3 - (llim + ulim) / 2) / ((ulim - llim) / 2)))

cellA3val_1またはval_2の場合、式にゼロを掛けます。A3が ~の間llimにある場合ulim、 FLOOR.PRECISE() 関数内の式は 1 より小さい値に評価されるため、FLOOR はゼロになります。

その式をセルに入力し、このセルがゼロでなければならないという制約を作成します...うまくいくはずです。私にとってはそうでした-最適化する機能が「3 * A3」であり、制限が3と8に設定されているため、解決策は7.99999.

注 - これに関する 1 つの問題は、ソルバーがたった 1 つの間隔で「スタック」する可能性が高いことです。他の可能な値に気付くことはありません。それが重要な場合は、連続変数を離散値と範囲を持つ変数に変換する必要がある場合があります。例:

=IF(A3<-1,val_1,IF(A3<0,val_2,llim+(ulim-llim)*ATAN(A3)*2/PI()))

A3全範囲にわたって変化する可能性がありますが、この式を含むセルには常に「有効な」値が含まれます。繰り返しますが、さらに固定値が必要な場合は、ネストされたIFステートメントを追加できます...

于 2013-10-11T01:50:37.323 に答える