- ベストアンサー
Excelのif関数で組み合わせによって数字を入力する方法
- Excelのif関数を使って組み合わせによって数字を入力する方法がうまくいかない問題があります。入れ子のif関数では解決できないため、別の方法を探しています。
- A1~D4のセルに入力されたA、B、Cの組み合わせによって、E5のセルに1~5の数字を入力したいです。
- しかし、AAAA~CCCCの組み合わせが15通りあるため、入れ子のif関数では解決できません。AAABやAABAも同じと判断して、1~5の数字を自動的に入力したいです。何かいい方法はありますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 外していたらごめんなさい。 成績関係の結果を表示したい(←私がそう感じただけです・・・)ということだと思いますので、 勝手に↓のように表を作ってみました。 やはり「A」の数が多いほうが成績上位にしなくてはならないと思いますので、 元データの15種類にランクをつける必要があると思います。 15種類の組合せを表示させ、N2セルに =COUNTIF(I2:L2,"A")*50+COUNTIF(I2:L2,"B")*30+COUNTIF(I2:L2,"C")*10 (A一つに付、50点 B一つに付30点 C一つに付10点としています) という数式を入れ、オートフィルで下へコピーしています。 隣のN列はその点数によって1~5までのランク分けを手作業で行います。 そして、G2セルは =IF(COUNTBLANK(B2:E2),"",COUNTIF(B2:E2,"A")*50+COUNTIF(B2:E2,"B")*30+COUNTIF(B2:E2,"C")*10) 結果のF2セルに =IF(COUNTBLANK(B2:E2),"",INDEX($N$2:$N$16,MATCH(G2,$M$2:$M$16,0))) という数式を入れ、F2・G2セルを範囲指定しG2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、あくまで成績関係の結果をお望みだという前提での投稿ですので 的外れなら読み流してくださいね。m(__)m
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
A-D列各列を&で結合した値を入れる列(X列と名づける)を作る(作業列であり、なければそれに越したことは無いが、判りやすくなるのでお勧め) その組み合わせの15通りとセットする数字の対応表を別セル範囲に検索表として作る。 後は検索表によって、X列の各行の値に対し求める数字をVLOOKUP関数(TRUE法型)で引く。 知らなければVLOOKUP関数(TRUE法型)はGoogleででも照会してください。 多列にあるデータ(特に文字列の場合)を条件とする、などの場合は、1セルデータにして考えないと、関数などは使えないと思う。2(列)つぐらいならAND条件で何とかなるが、3つだと9通り、以下爆発的に増えるから)
お礼
素早い回答ありがとうございました。 まだまだ知らないことが多いことを実感しました。 ありがとうございました。
- maron--5
- ベストアンサー率36% (321/877)
- mt2008
- ベストアンサー率52% (885/1701)
A、B、Cそれぞれの個数で場合わけですね? こんなのはどうでしょう。 Aは0、Bは1、Cは10と考えると、以下の式でそれぞれの個数に応じた数値が得られます(AAAAは0、BAABは2、CCACは30)。 = COUNTIF(A1:D1,"B")+10*COUNTIF(A1:D1,"C") あとはどこかに、得た数値と表示したい番号の対応表を作っておいてVLOOKUPで表示番号を抽出します。
- Cupper
- ベストアンサー率32% (2123/6444)
自分なら記号に対して数値を割り付けて、足し算した値を評価するなあ。 具体的に、どの組み合わせに、どの数字を表示させるのか質問文からは分からないので そこは質問者さん自身で考えてください。 例:A=1 B=8 C=64
お礼
ありがとうございました。 まさにおっしゃる通りの成績処理でした。 うまくいきました。 また勉強させてもらいました。