激凹みから立ち直る方法

エクセルで一覧表を作っています。
以下のようなことができるか、教えてください。

(例)
A列      B列      C列
田中      100
鈴木       50
佐藤      200
鈴木      150
佐藤      250
山本      200
田中      200
田中      300
佐藤      275
鈴木      180

例として上記のような表があります。

・A列には人の名前が入り、同じ人が何度も登場します。
・B列にはA列の名前の人の累計点数が入ります。
 何度も登場する場合は、下に行く程どんどん点数が上がります。
・表はこれからも、下にどんどん増えていきます。

この表に、点数に対する評価(ランク)を付けたいのです。

《評価付けの条件》
 ・0~99:空白
 ・100~199:A
 ・200~299:B
 ・300~  :C
 ・同じ人が2回以上同じ評価になった場合は
  「A・B・C」の横に「+」が付く

(例)
A列      B列      C列
田中      100      A
鈴木       50
佐藤      200      B
鈴木      150      A
佐藤      250      B+
山本      200      B
田中      200      B
田中      300      C
佐藤      275      B+
鈴木      180      A+

上記のようにC列で評価を出したいのですが、
関数だけでこういうことが出来るでしょうか?
よろしくお願いいたします。

A 回答 (6件)

回答No3です.


判定の式でAとCが逆になっていました.
正しくは下記の通りです.

=IF(B3>=300,"C",IF(B3>=200,"B",IF(B3>=100,"A","")))&IF(COUNTIF($G$3:G3,G3)>1,"+","")
    • good
    • 0
この回答へのお礼

助かりました

回答してくださり、ありがとうございます。
なるほど、名前と評価をくっつけて一つの文字列にするのですね!
目から鱗です。うまくできました!
最初の解決回答でしたので、ベストアンサーに選ばせていただきます。

お礼日時:2017/03/09 21:23

[No.5]の訂正版です。



添付図参照
E1: =A1&VLOOKUP(B1,G$1:H$4,2)
C1: =VLOOKUP(B1,G$1:H$4,2)&IF(COUNTIF(E$1:E1,E1)>1,"+","")
「同じ名前の中でランク付けをする方法」の回答画像6
    • good
    • 0
この回答へのお礼

回答してくださり、ありがとうございます。
VLOOKUPを使ってもできるのですね。
やはり名前に評価をくっつけるのがミソなんですね。
勉強になりました。

お礼日時:2017/03/09 21:25

添付図参照


C1: =VLOOKUP(B1,E$1:F$4,2)&IF(COUNTIF(A$1:A1,A1)>1,"+","")
「同じ名前の中でランク付けをする方法」の回答画像5
    • good
    • 0

作業列を使う方法で組んでみました.



作業列はFとGに設けています.
F列は純粋に得点によってつけられる判定(+は付かない)
G列は名前と判定を連結した値(=A3&F3)

判定の関数は以下の通り.
=IF(B3>=300,"A",IF(B3>=200,"B",IF(B3>=100,"C","")))&IF(COUNTIF($G$3:G3,G3)>1,"+","")

内容を説明すると=から&までの部分が判定の式です.
=IF(B3>=300,"A",IF(B3>=200,"B",IF(B3>=100,"C","")))

&以降は同じ人が同じ判定を受けた回数が1よりも大きいときには+を付ける,1以下なら何もつけないという式です.
IF(COUNTIF($G$3:G3,G3)>1,"+","")
「同じ名前の中でランク付けをする方法」の回答画像3
    • good
    • 0

訂正です。



=concatenate(if(b1<100,"",if(b1<200,"A",if(b1<300,"B","C"),if(countifs($c$1:c1,c1,$a$1:a1,a1)>1,"+","")
    • good
    • 0
この回答へのお礼

早速回答してくださり、ありがとうございます。
concatenate関数って、初めて知りました。
でも、括弧の数がおかしいのかうまくできませんでした。残念です。

お礼日時:2017/03/09 21:16

=concatenate(if(b1<100,"",if(b1<200,"A",if(b1<300,"B","C"),if(countifs($b$1:b1,b1,$a$1:a1,a1)>1,"+","")



みたいな感じではどうでしょう?
試せてないので間違いあるかもですが
    • good
    • 0

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