1167144446 エクセルについての質問です。

エクセルで問題集を作成しようと考えています。
問題の答えはBなのですが、間違った答え「C」が入力されているため、答えの欄には×が表示されています。
答えが間違っていれば解説が表示されるように設定したいのですが、そのための関数を教えて下さい。


【詳しい条件】
・解答欄の答えが正解であれば「○」、間違っていれば「×」と表示する。

・答えが間違っていれば、答えの欄に赤い×が付くように。正解であれば、赤い○が付くように設定する。

・答えが間違っていれば、解説欄に解説が表示され、正解であれば解説は表示しない。


※画像では何も関数を入れていない状態です。
 例として解りやすく説明したかった為、画像を作成しました。
 画像を参考にした上での関数を教えて下さい。


お手数おかけ致しますが、良い関数を教えて下さい。
宜しくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/12/30 00:04:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:castiron No.4

回答回数418ベストアンサー獲得回数30

ポイント45pt

まず問題を乗せる(画像のやつ)シートと正解と解説を記述した二つのシートを用意します。(それぞれのシート名を「問題」「正解」とします)

(ただし左端列(A列)には問題番号を挿入してください。(検索に使います)正解のシートも同様です。)

正解シートに問題の解答並びにその解説を入力し終えたら。

まず、「答え」の列(D列(以降は全て列で解説します))に以下の式を記入します。

=IF(C2="","",IF(VLOOKUP(A2,正解!A:C,2,1)=C2,"○","×"))

まず、最初のIF関数はC列(解答欄)に入力がない場合は答え合わせをしないようにするためのものです。そして次のIF関数が答え合わせをするものです。

次にVLOOKUPですがこれは以下のような意味を持ちます。

A2:検索する値(この場合は問題番号です。)

正解!A:C:検索する範囲を指定します(A列に問題番号、B列に答え、C列に解説が入力されています。)

2:検索する値と一致した行の検索する範囲の左側から数えた列の値を指定します(この場合だと答えが返ってきます)

以上からある問題番号の答えが分かります。これとC列(解答欄)に入力した値とを比較して正解ならば○、不正解なら×を表示するようにしてあります。

(色を変えるのは書式で変えてください(ただし不正解の場合だけ赤にしたいのなら「条件付き書式」を利用してください))

次に解説についてですが以下のようになります。

=IF(OR(C2="",D2="○"),"",VLOOKUP(A2,正解!A:C,3,1))

VLOOKUPについては出力するのが回答から解説に変わっているだけなので省きます。(先ほどの式と比べると2→3となっています)

ORについてですがこれは両方どちらかの条件満たす場合は1、そうでない場合は0を返します。

これは正解だった場合と空白の場合は解説を表示しません。

(私は正解したとしても記号問題だと勘で正解してしまうから解説を出した方がいいと思いますけどね)

分からないこと並びに要望があれば答えます。

http://q.hatena.ne.jp/1167144446

id:WARABICHAN

具体的に解説いただきありがとうございます。

VLOOKUPという方法を使うという手があるのですね。

とても参考になりました。

ありがとうございました。

2006/12/30 00:01:34

その他の回答3件)

id:hiko3karasu No.1

回答回数1058ベストアンサー獲得回数25

ポイント10pt

ifでいいんじゃないですか?

答えが入っているセルを仮にC100、

解説が入っているセルを仮にD100として、

C4に =if(b4="","",if(b4=c100,"○","×"))

D4に =if(c4="×",d100,"")

http://q.hatena.ne.jp/1167144446 だみー

id:WARABICHAN

簡単なIF文の関数なら作れるのですが、文法は複雑になってしまうけれど、確実に答えや解説を表示できる方法はありませんか?

ありがとうございました。

2006/12/30 00:00:52
id:rikuzai No.2

回答回数1366ベストアンサー獲得回数141

ポイント20pt

まず別シートに各問題の正解と解説が一覧になった表を作成します。

問題シートをSheet1、正解解説シートをSheet2として、

Sheet2のA列に一問目から順に正解、B列に同じく順に解説文を入力して完成です。


Sheet1に戻って、Sheet1のセル構成が例示の画像どおりなら、

C4=IF(B4="","",IF(B4=Sheet2!A1,"○","×"))

D4=IF(C4="","",IF(C4="○","",Sheet2!B1))

と記入し、問題のある行までフィルコピーすれば式は完成です。

後は判定列のC列の書式を中央揃え、文字色赤に設定すれば、

○×は赤で表示されます。

上記の式の場合、解答欄(B列)が未記入の場合は、

C列、D列共に何も表示しないようになっています。


ただし、一つ留意していただきたいのは、

数式で呼び出す場合、文字列の改行は無効となってしまいますので、

Sheet2で改行を入れて解説文を入力しても、

一行文としてSheet1には表示されてしまいます。

どうしても改行が入った状態を表示したい場合は、

Sheet1の解説列(D列)のセル書式を「折り返して全体を表示する」に設定し、

Sheet2の解説文をスペースなどで調節して入力するという方法があります。


http://www.pursue.ne.jp/Document_xls/xls0004.htm

以上ご参考まで。

id:WARABICHAN

具体的に説明していただき、ありがとうございました。

Sheetを分けて使う方法があるんですね。

勉強になりました。

2006/12/30 00:02:52
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント15pt

Eに答え

Fに解説を入れて E列とF列は 表示しないとします。

それで

Cには

=IF(B2=E2,"○","×")

Dには

=IF(B2=E2,"",F2)

として フォントを赤色にします。

http://www11.plala.or.jp/koma_Excel/contents3/mame3032/mame30320...

id:WARABICHAN

こんなに解りやすいサイトがあるんですね。

じっくり読んでみて作成したいと思います。

どうもありがとうございました。

2006/12/30 00:02:13
id:castiron No.4

回答回数418ベストアンサー獲得回数30ここでベストアンサー

ポイント45pt

まず問題を乗せる(画像のやつ)シートと正解と解説を記述した二つのシートを用意します。(それぞれのシート名を「問題」「正解」とします)

(ただし左端列(A列)には問題番号を挿入してください。(検索に使います)正解のシートも同様です。)

正解シートに問題の解答並びにその解説を入力し終えたら。

まず、「答え」の列(D列(以降は全て列で解説します))に以下の式を記入します。

=IF(C2="","",IF(VLOOKUP(A2,正解!A:C,2,1)=C2,"○","×"))

まず、最初のIF関数はC列(解答欄)に入力がない場合は答え合わせをしないようにするためのものです。そして次のIF関数が答え合わせをするものです。

次にVLOOKUPですがこれは以下のような意味を持ちます。

A2:検索する値(この場合は問題番号です。)

正解!A:C:検索する範囲を指定します(A列に問題番号、B列に答え、C列に解説が入力されています。)

2:検索する値と一致した行の検索する範囲の左側から数えた列の値を指定します(この場合だと答えが返ってきます)

以上からある問題番号の答えが分かります。これとC列(解答欄)に入力した値とを比較して正解ならば○、不正解なら×を表示するようにしてあります。

(色を変えるのは書式で変えてください(ただし不正解の場合だけ赤にしたいのなら「条件付き書式」を利用してください))

次に解説についてですが以下のようになります。

=IF(OR(C2="",D2="○"),"",VLOOKUP(A2,正解!A:C,3,1))

VLOOKUPについては出力するのが回答から解説に変わっているだけなので省きます。(先ほどの式と比べると2→3となっています)

ORについてですがこれは両方どちらかの条件満たす場合は1、そうでない場合は0を返します。

これは正解だった場合と空白の場合は解説を表示しません。

(私は正解したとしても記号問題だと勘で正解してしまうから解説を出した方がいいと思いますけどね)

分からないこと並びに要望があれば答えます。

http://q.hatena.ne.jp/1167144446

id:WARABICHAN

具体的に解説いただきありがとうございます。

VLOOKUPという方法を使うという手があるのですね。

とても参考になりました。

ありがとうございました。

2006/12/30 00:01:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません