ユナイテッド航空のマイレージプラスプレミアのステータスレベルは、基準の組み合わせによって決定されます:
(PQM>=25000 OR PQS>=30) AND PQD>=3000
(PQM>=50000 OR PQS>=60) AND PQD>=6000
(PQM>=75000 OR PQS>=90) AND PQD>=9000
(PQM>=100000 OR PQS>=120) AND PQD>=12000
PQM、PQS、およびPQDの合計を含む列があります。ステータスレベル(「ゴールド」など)を表示する数式が欲しいのですが。ネストされたIFステートメントの複雑なセットが必要ですか?どういうわけかルックアップを行いますか?
INDEX
とMATCH
を使用した別のアプローチを次に示します。これはより抽象的なものですが、ロジックに基づいた短い式でもあります。
=INDEX(Table1[LEVEL],MIN(MAX(MATCH(B9,Table1[PQM]),MATCH(C9,Table1[PQS])),MATCH(D9,Table1[PQD])))
(PQM> = 25000 OR PQS> = 30)AND PQD> = 3000
PQM>=25000 OR PQS>=30
_- PQMまたはPQSが到達するより高いレベル=> MAX(...) AND PQD>=3000
_-前の選択とPQDによって到達した下位レベルまたは、ヘルパーテーブルのない数式:
=INDEX({"--","Silver","Gold","Platinum","1k"},MIN(MAX(MATCH(B9,{0,25000,50000,75000,100000}),MATCH(C9,{0,30,60,90,120})),MATCH(D9,{0,3000,6000,9000,12000})))
したがって、ネストされたIF
ソリューションを使用したい場合は、次のような小さなルックアップテーブルを作成できます。
そして、PQM
、PQS
、およびPQD
の値がそれぞれ_B8
_、_C8
_、および_D8
_にある場合、式は次のようになります。 be:
=IF(AND(OR(B8>$B$5,C8>$C$5),D8>$D$5),$A$5,IF(AND(OR(B8>$B$4,C8>$C$4),D8>$D$4),$A$4,IF(AND(OR(B8>$B$3,C8>$C$3),D8>$D$3),$A$3,IF(AND(OR(B8>$B$2,C8>$C$2),D8>$D$2),$A$2,"None"))))
ルックアップテーブルが必要ない場合は、テーブル参照をハードコードされた値に簡単に置き換えることができます(ただし、将来計算のパラメーターを変更する必要がある場合に備えて、ルックアップテーブルを使用することをお勧めします)。
=IF(AND(OR(B8>100000,C8>120),D8>12000),"1K",IF(AND(OR(B8>75000,C8>90),D8>9000),"Platinum",IF(AND(OR(B8>50000,C8>60),D8>6000),"Gold",IF(AND(OR(B8>25000,C8>30),D8>3000),"Silver","None"))))
うまくいけば、これがどのように機能するかはかなり明白です。最初に最高レベルの条件をチェックし、次にそれらが満たされていない場合は、レベルが見つかるまでレベルを下げていき、該当するレベルがない場合は_"None"
_を返します。戻る。