プロが教えるわが家の防犯対策術!

小学校の教員をしています。成績付けの関数を作りたいのです。ア.AABB、 イ.AAAB、 ウ.CCCB、 エ.BAAC、 オ.ACAAなど4項目の「A」「B」「C」がデータとして入っている成績を評価する方法を教えて下さい。
Aが3個以上あるときでCが1個もなければ「3」、Cが3個以上あれば「1」、それ以外は「2」と評価したいのです。上記のアは、AもCも3個ないので「2」。イは、CがなくてAが3個なので「3」。ウは、Cが3個なので「1」。エは、Cが1個あるがAが2個なので「2」、オは、Aが3個であるがCが1個含まれているので「2」になります。
このような関数は、どのように表せばよいのでしょうか? 成績の〆切が近づいています。よろしくお願いします。

A 回答 (8件)

一例です。


・4文字の文字列を1文字ずつにセル分割すれば、COUNTIF関数で個数算出できます。
 後はIF関数で仕分けが可能ですし、後にデータとしても活用し易くなります。
 例えば、IF(COUNTIF(範囲,"C")>=3,1,IF((COUNTIF(範囲,"A")>=3)*(COUNTIF(範囲,"C")=0),3,2))
・セル分割は、成績コードの右隣に3列分挿入→成績コード列を選択→データ→区切り位置→「スペース・・・」を選択→次へ→文字間をクリック→完了
    • good
    • 0
この回答へのお礼

COUNTIFやってみます。ありがとうございました。

お礼日時:2011/03/12 18:45

前回の回答は1セル(A列)にデータが入力の前提で回答しました




回答が沢山出ているので解決すると思いますので変則的に

A列からD列にデータが入力されているとして
=IF(COUNTA(A1:D1)=4,MATCH(SUM(COUNTIF(A1:D1,{"A","B"})*{3,2}),{0,4,11}),"")
    • good
    • 0
この回答へのお礼

丁寧な回答、ありがとうございました。

お礼日時:2011/03/12 18:41

出来るだけ自由度を高めるためには、表引きの方法の方が良い。


本件も、AとCしか点数に、係わっていないことを幸いに、出来るだけその方向でやってみる。
またこうするとルールが白日の下に明確になる。
ただし、例外があるとこれは使えない脆さがある。また3次元以上のものは、つくりにくいが。
既に出ているようなIF関数で、場合分けを式にするのは進歩が無いと思って、あえて下記をやってみた。
実績表A1:F8
ーーー国語算数理科社会点数
山田AABC2
鈴木AAAB3
大野ABCA2
木村AAAA3
鈴木AAAB3
田中AAAC2
山下ACCC1
ーーーー
点数決定テーブル  HI1:M6
下記表の点数は、当事者でないので不正確かもしれない。
ーーーC0C1C2C3C4
A432211
A332211
A222211
A122211
A022211
F2の式 =INDEX($I$2:$M$6,MATCH("A"&COUNTIF(B2:E2,"A"),$H$2:$H$6,0),MATCH("C"&COUNTIF(B2:E2,"C"),$I$1:$M$1))
下方向に式を複写
ーー
参考 確認のための道具
式の要素確認H11:J17
I2:M6の表の参照部分の正確さ確認
表の何行目/何列目かが、正しいか
32
21
32
11
21
22
44
H11の式 =MATCH("A"&COUNTIF(B2:E2,"A"),$H$2:$H$6,0)
J11の式 =MATCH("C"&COUNTIF(B2:E2,"C"),$I$1:$M$1)
ーーー
例の作り方
ア.AABBなどと抽象的な記号にせず、上記の(私の)ようにするのが判りやすいのではないか。
例は上記のように作るべきだ。教員なら、生徒に説明する場合、文章より表で例示が説明に大切なのは判っているのでないか。
    • good
    • 0
この回答へのお礼

丁寧な回答、ありがとうございました。

お礼日時:2011/03/12 18:42

No.5です


もっと簡単にできました。
F2に
=IF(AND(COUNTIF(B2:E2,"A")=3,COUNTIF(B2:E2,"C")=0),3,IF(COUNTIF(B2:E2,"C")>=3,1,2))
    • good
    • 0
この回答へのお礼

こっちの方が、わかりやすいです。

お礼日時:2011/03/12 18:43

もっと簡単な式があるかもしれませんが


画像で
F2に 
=IF(AND(COUNTIF(B2:E2,"A")=3,COUNTIF(B2:E2,"C")=0),3,IF(AND(COUNTIF(B2:E2,"A")>=3,COUNTIF(B2:E2,"C")>=1),2,IF(COUNTIF(B2:E2,"C")>=3,1,2)))
下方にオートフィル
「Excelの関数教えて下さい。学校成績。」の回答画像5
    • good
    • 0

A1に4文字の成績が入力されていると


=IF(LEN(A1)<>4,"",IF(AND(LEN(SUBSTITUTE(A1,"A",""))<=1,COUNTIF(A1,"*C*")=0),3,IF(LEN(SUBSTITUTE(A1,"C",""))=1,1,2)))
    • good
    • 0

こんな感じでも良いかな



=IF(LEN(A1)=4,IF(OR(SUBSTITUTE(ASC(A1),"A","")={"","B"}),3,IF(LEN(SUBSTITUTE(A1,"C",""))<2,1,2)),"")
    • good
    • 0
この回答へのお礼

ありがとうございました。。'''の3つは何ですか?

お礼日時:2011/03/12 18:44

A1にそういった4文字が入っているとして


=IF(LEN(A1)=4,(LEN(SUBSTITUTE(ASC(A1),"A",""))<2)*(LEN(SUBSTITUTE(ASC(A1),"C",""))=4)+2-(LEN(SUBSTITUTE(ASC(A1),"C",""))<2),"")
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!