0

いくつかの「値の境界」をいくつかの異なる「開始位置」に適用し、その後「進行中の位置」を出力する必要がある状況があります。

「値の境界」は次のとおりです: <500、>=500<750、>750<=850、>850

「開始位置」は、「ベーシック」、「スタンダード」、「スタンダード+」、「プラチナ」です。

次に、値の境界が適用され、「進行中の位置」が出力されます。

たとえば、「ベーシック」で開始した人が 600 を達成してから「スタンダード」に移行したり、「プラチナ」の誰かが 700 を取得したために「スタンダード +」に戻ったりするなど、ネストされた IF でこれを試してみましたが、役に立ちませんでした。

編集: 解決策は数​​式を超えているようですが、これを解決するには VBA が必要ですか?

4

5 に答える 5

0

OK...列 A に一連の値を入力します。B1 に次のように入力します。

=IF(A1<500,0,IF(AND(A1>=500,A1<750),1,IF(AND(A1>=750,A1<800),2,3))) を下にコピー

これにより、4 つのレベルを表すコード 0 から 3 が生成されます。

C1 に次のように入力します。

=B1

C2 に次のように入力します。

=IF(ABS(B1-B2)<2,B2,IF(B2>B1,B1+1,B1-1)) とコピーダウン

列 C は 1 ステップ制限を実装します。最後に D1 に次のように入力します。

=CHOOSE(C1+1,"Basic","Standard","Standard+","Platinum") を下にコピー

これにより、コードが単語レベルに変換されます

ここに画像の説明を入力

于 2013-11-11T21:56:44.187 に答える
0

私の理解が正しければ、2 つの数値を入力してください。境界条件に関してこれらの数値がどこに該当するかに基づいて、進行中の位置が決定されます。さらに、進行中の位置は、開始位置と「1 つ以上異なる」ことはできません。

その場合、D1 の最初のスコアと E1 の 2 番目のスコアを使用すると、次の式で進行中の位置が出力されると思います。

=CHOOSE(MATCH(D1,{0;500;750;850})+SIGN( MATCH(E1,{0;500;750;850})-MATCH( D1,{0;500;750;850})) ,"ベーシック","スタンダード","スタンダード+","プラチナ")

于 2013-11-11T21:27:14.783 に答える