• ベストアンサー

エクセル関数(複数行から結果の良いものだけ)

ゲームの成績(良いA~悪いC)の結果がついた表から、同一人物で、一番結果の良かった結果1行一つだけ残したいいのですが、どうすればよいですか。多いひとで、10回。少ない人でも3回おこなっています。そのため、同一名で、結果が複数行あります。 エクセル2010、エクセル初級者です。どうぞよろしくお願いいたします。  

質問者が選んだベストアンサー

  • ベストアンサー
  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.1

方法は色々あると思いますが、私ならば次のようにします。 元の表の書式がわからないので(質問されるならば、書いてほしいのですが)、次の前提の場合で回答します。 ・A列:選手名 ・B列:成績 ・1行目は見出し行。データは2行目から開始。 ・成績は、半角大文字のアルファベットに統一 ・同姓同名の区別はなし (1)選手の名前、成績、の優先順でソート(並べ替え) (2)空いている列(C列とします)の見出しを「最高成績」とする。 →C1のセルに「最高成績」と記入 (3)C列の2行目に、次の式を記入: =IF(A2<>A1,"○","-") 以下、3行目以降も同様。C2のセルをC3以降にコピー&ペーストすれば、各々のセルの相対位置に合わせて、自動的に式の内容が修正されて張り付きます。 →各選手の最高成績の行(同じ成績が複数ある場合は一番上の行のみ)に"○"がつきます。 (4)オートフィルタを用いて、C列が"○"の行のみを抽出表示 ソート(並べ替え)と、オートフィルタの使い方は、ヘルプを参照してください。

sinka
質問者

お礼

早速のご返答、大変ありがとうございます。並べ替えを行い、別列に関数の式を入れるんですね。やってみます。

sinka
質問者

補足

やってみました。並べ替えで、氏名ごとで、成績が良い順にならびました。C列に関数を入れて、一番上の行にまるがつきました。あとは、最高成績で、並び替えて、不要な行を削除する予定です。ありがとうございました。

その他の回答 (2)

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.3

関数を使わない場合は step1 成績でソート(並べ替え)   これで氏名を問わず、ABC順に並びます step2 氏名でソート   これで、各個人毎に成績順に並びます。 step3 データの重複除去  データタブの「重複除去」を利用   全データセルを選択し、「重複除去」をクリック   いったん選択を解除し、   重複を判断する列として、氏名の列のみを指定  これをすると、一部のデータが消えるので、  コピーを作ってから実行してください。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

上級者でも難しい関数になりますが配列数式を駆使すればご希望の表示が可能です。 例えばA列に名前、B列に評価結果(A、B、C)が入力されているなら、E2セルに以下のような数式を入力し下方向にオートフィルすればリスト中の名前を重複なく表示することができます。 =INDEX(A:A,SMALL(INDEX((MATCH($A$2:$A$100&"",$A$2:$A$100&"",)<>ROW($A$2:$A$100)-1)*1000+ROW($A$2:$A$100),),ROW(1:1)))&"" F2セルに、最も良い評価結果を表示するなら以下の式を入力して下方向にオートフィルコピーします。 =CHAR(MIN(INDEX(($A$2:$A$100<>E2)*1000+CODE($B$2:$B$100&" "),)))

sinka
質問者

お礼

早速のご返答、ありがとうございます。難しいですね。私には、関数の内容は、理解できませんが、挑戦してみます。

関連するQ&A