- 締切済み
この関数はもっと簡単になりますか?(EXCEL)
次の条件で成績判定をします。自分で式を作ってみましたが自信がありません。他に考え方があれば教えていただきたく質問します。 3つの条件の順序は関係なく、組み合わせで決まるのみです。 AとAとA ならば 総合A AとAとB でも 総合A AとAとC でも 総合A AとBとB ならば 総合B AとBとC でも 総合B BとBとB でも 総合B BとBとC でも 総合B AとCとC ならば 総合C BとCとC でも 総合C CとCとC でも 総合C 私の立てた式は次のとおりです。 (*と*と*がCOUNTIFの範囲だとします。) =IF(COUNTIF(範囲のはじめのセル名:範囲の終わりのセル名,”A”)>=2,”総合A”,IF(COUNTIF(範囲のはじめのセル名:範囲の終わりのセル名,”C”)<=1,”総合B”,”総合C”)) よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
先日も似た他の質問があったように記憶します。よく読めば、ルールがあるのでしょうが、何かの事情で変るとABCの数や優先関係ルールで判別できなくなる恐れがあります。悉皆ケースのテストもやりやすいです。 私ならVLOOKUP関数を使います。 (1)3つの条件の入った列を空き列に結合します。 D1に=A1&B1&C1を入れる。 (2)テーブルをF1:G27に作ります (F列) (G列) AAA A AAB A AAC A ABA ABB ABC ・・・ (3)E列に=VLOOKUP(D1,$F$1:$G$27,2,FALSE) と入れる。(1)(3)の式は下に複写する。 (4)D1はA1&B1&C1で置換えることが出来て、D列を 使わずに済ませられます。
ご質問に書かれている式で問題ないと思います。 こちらでも試してみましたが、動作に問題は見当たりません。 ただし、正確に文字種を一致させる必要がありますね。 全角と半角、大文字と小文字の違いなどがあると 間違った結果になりますので、 その点に関して注意が必要かと思います。 ここから先は、本論からは全く外れた蛇足です。 軽く読み流してください。 AとAとCのばあい、AとCの平均はBであると考えるならば、 AとAとC=AとB×2 となり、つまり「総合B」となるのが妥当なのでは?という気もします。 (AとCとCも同様) もしそういう基準でしたら、CODE関数とAVERAGE関数を使って ="総合"&CHAR(ROUND(AVERAGE(CODE(A1),CODE(B1),CODE(C1)),0)) こんな感じの式を作ることも可能なのですが・・・。
お礼
回答ありがとうございます。 一応こちらでも動作確認をして質問したのですが、いろんな式の考え方があるのでもっとすっきりした式もないものなのかなと思った次第です。
お礼
はい。先日もこちらで教えていただき、考え方がわかるようになりました。 先日のは順序が関係あったのですが、今回の分は順不同なんですね。 確かに、ルールが変わると式もやり直しになりますね。 VOOKUPだと、その辺はあとの変更は楽ですね。