エクセル列の並び替えと総合評価のチェック方法は?

このQ&Aのポイント
  • エクセルでの列の並び替えや総合評価のチェック方法を教えてください。
  • エクセルでの列の並び替えと総合評価のチェック方法を解説します。
  • エクセルでの列の並び替えと総合評価のチェックについての方法をご紹介します。
回答を見る
  • ベストアンサー

エクセル 列の並び替え

エクセル 列の並び替え A列に氏名、B~F列にa,b,cの評価、G列に総合判定(1~5段階評価)が入った100人分ほどの表があります。 まずG列の総合評価順にソートし、そのあとB~F列をABC順 (A君 abacb 5 → aabbc 5  B君 b a aba 4 → aa a bb 4という感じ) に全員を並び変えたいのですが、できずに困っています。やり方を教えてください。 最終的にやりたいのは、総合判定が間違っていないかのチェックで、5評価なのにbが3つあったり、cが入っていたりすると判定しなおしとなります。ただそのルールが細かいので、並び替えをした後に目視でチェックしようかと思っています。 本当はマクロなのかな・・とも思っていますが、エクセルに詳しくないので、どなたか教えていただけると嬉しいです。よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No3です。 G1セルには次の式を入力して下方にオートフィルドラッグすれば判定結果が表示されます。 =IF(COUNTA(B1:F1)=0,"",IF(AND(COUNTIF(B1:F1,"a")>=3,COUNTIF(B1:F1,"c")=0),5,IF(AND(COUNTIF(B1:F1,"a")>=2,COUNTIF(B1:F1,"c")=0),4,IF(AND(COUNTIF(B1:F1,"a")>=1,COUNTIF(B1:F1,"c")=1),3,IF(COUNTIF(B1:F1,"b")=5,3,IF(COUNTIF(B1:F1,"c")<=2,2,IF(COUNTIF(B1:F1,"c")>=3,1,"")))))))

その他の回答 (6)

  • utun01
  • ベストアンサー率40% (110/270)
回答No.7

No.4です。 だらだらソース書いといてなんですが、No.6さんの方がスマートですね。 もし既存の評価判定で出した結果をチェックしたいのであれば、 No.6さんの式をH列に入れてG列には条件付書式で「次の値に等しくない」「=H1」をいれ、 書式を黄色塗りつぶし等に設定してからオートフィルドラッグしたらいいかもしれません。

lalaruru
質問者

お礼

ありがとうございます!! 最初にご提示していただいた方法もとても参考になりました。 最終的にはNo.6でまとめていただいたやり方が、まさしく求めていた方法です。 本当はお二方にベストアンサーを付けたかったのですが、 先に回答をいただいた方にベストアンサーをつけさせていただきました。 本当にありがとうございました。

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

>最終的にやりたいのは、総合判定が間違っていないかのチェックで、5評価なのにbが3つあったり、cが入っていたりすると判定しなおしとなります。ただそのルールが細かいので、並び替えをした後に目視でチェックしようかと思っています。 最終的に総合判定がしたいなら(あるいはチェックをしたいなら)わざわざ目視で判定するのではなく、直接判定基準を数式にすることをお勧めします(目視で判定するのでは、また判定ミスをする可能性があります)。 実際の判定基準がどのようなルールになっているのか、その細かいルールを条件分けして具体的に提示されれば、判定結果の正誤を判別する数式を提示することができると思います。

lalaruru
質問者

補足

ご指摘ありがとうございます。 お言葉に甘えて、ルールの一部を記載いたします。 ・aが3つ以上あり、cが無い場合 → 5 ・aが2つあり、   cが無い場合 → 4 ・aが1つ以上あり、cが1つの場合→ 3 ・すべてbの場合          → 3 ・cが2つ以下の場合  → 2 ・cが3つ以上の場合  → 1 となります。もうひとつ贅沢を言えれば、上記条件とは違った総合評価をしているセルに色がつくとなお嬉しいです。

  • utun01
  • ベストアンサー率40% (110/270)
回答No.4

それっぽいものを作って見ました。 Excel2007で作成しているので、下位互換があるかどうかはわかりません。 マクロ基本的な使い方は検索すれば簡単に分かるので割愛させて頂きます。 使い方: 1、以下のソースを「Alt+F11」からモジュールとしてコピーする 2、氏名~総合評価までの全データのセルを選択する 3、「Alt+F8」からMacro1を実行する Sub Macro1() Dim rng As Range Dim startClm As Integer Dim endClm As Integer Set rng = Selection startClm = rng.Column endClm = Range(Mid(rng.Address, InStr(rng.Address, ":") + 2, 1) & "1").Column rng.Select ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Add Key:=rng.Columns(endClm - startClm + 1) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveSheet.Sort .SetRange rng .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Dim targetRng As Range Dim bufRng As Range For Each targetRng In rng If startClm = targetRng.Range("A1").Column Then Set bufRng = Range(targetRng.Offset(0, startClm).Address, targetRng.Offset(0, endClm - startClm - 1).Address) bufRng.Select ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Add Key:=bufRng _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveSheet.Sort .SetRange bufRng .Header = xlGuess .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With End If Next End Sub

lalaruru
質問者

お礼

No.7のところのお礼のコメントに『No.6で・・』と書いてしましいました。申し訳ありません。No.7ではセルに色をつける説明まで教えていただけ、本当に感激です。 この方法もよくわからずで困っていたところなので助かりました!! ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

aabbcなど度比較するのに便利なようにするのでしたら並び替えをするよりも、例えばH1セルに次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =REPT("a",COUNTIF(B1:F1,"a"))&REPT("b",COUNTIF(B1:F1,"b"))&REPT("c",COUNTIF(B1:F1,"c")) どうしても並び替えがしたいとのことでしたらBからF列に手を加えるのではなくI1セルに次の式を入力してM1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグすればよいでしょう。お望みのような形で表示されます。 =IF(COLUMN(A1)>5,"",IF(COUNTIF($B1:$F1,"a")>COUNTIF($H1:H1,"a"),"a",IF(COUNTIF($B1:$F1,"b")>COUNTIF($H1:H1,"b"),"b",IF(COUNTIF($B1:$F1,"c")>COUNTIF($H1:H1,"c"),"c",""))))

lalaruru
質問者

お礼

ありがとうございます。 こういった方法もあったんですね!!! 勉強になりました。

noname#141705
noname#141705
回答No.2

ただabcの数を数えたいだけでしたら、総合評価の列(列G)以降の列に新たに3列作って、カウント数だけを表示させたら楽かと思います。 例えば… 列A1からE1にa,a,b,c,bと入力されている場合 H1=COUNTIF(A1:E1,"a") I1=COUNTIF(A1:E1,"b") J1=COUNTIF(A1:E1,"c") これでH1にはA1からE1までのなかのaの数、I1にはA1からE1までのbの数、J1にはA1からE1までのcの数が表示されます。 あとはこれを行の数だけマウスでひっぱってコピーするだけです。

lalaruru
質問者

お礼

ありがとうございます。 こういった方法もあったんですね!!! カウントする方法も別の作業で使いたかったので、とても参考になりました。 ありがとうございました

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

総合評価順に目視でチェックでしたら、全データを、行列を入れ替えて別シートに貼り付けして、一人の氏名の評価のみ並べ替えをしてはいかがでしょう。

lalaruru
質問者

お礼

早速の情報提供ありがとうございます。 今回は、同じようなシートがいくつかあり、チェックするデータ数と多人数でチェックするため、 別の方法でやらせていただきます。 ありがとうございました。

関連するQ&A

  • エクセル関数で並び変え

    以前、2つの列の並び変えを教えていただいたのですが、3列の並び変えに変更することになったので教えてください。 http://jisaku.155cm.com/src/1372225760_41870f790e68dabc8acb8dcb5e71cd4665397864.jpg のような表があったとします。 A列、B列、C列を並べ替えしたものがE列、F列、G列に入っています。 優先順位としてE列、F列、G列の順番で並べ替えたいと思っています。 A列、B列、C列は文字ですが、E列、F列、G列は関数が入力されています。 A列、B列、C列の文字を変えた時に自動で並び変えてE列、F列、G列に反映させるにはどのように関数を組めばいいのでしょうか?

  • Excelのセルの並び替えの応用について

    こんにちは。 投稿させていただいている内容と同様の投稿があり、 重複していたら申し訳ございません。 しかし、チェックした限りでは見当たりませんでしたので お伺いさせていただきます。 「Excel(WinXP)セルの並び替えについて」  A  B  C  D 1あ 2い 3う 4え 5お A列の会社名を、あいうえお順で並び替えられました。 しかしB列の電話番号のデータが同様に移動してくれません。 B列、C列・・のデータもA列に順応して移行させるには どのようにしたら良いのでしょうか。 非常に初歩的な質問ならば、申し訳ございません。 宜しくお願い申し上げます。

  • エクセルの並び替えについて

    エクセルの並び替えについて質問させて頂きます。 下記のようにエクセルに文字列を入力しています。 A         B       1 10011   ホワイト 2        ブラック 3        ブルー 4 10002   ブラウン 5      レッド 6      イエロー 7 10005   パープル  8      ネイビー 9      サックス      A1に「10011」と入力してありますが、「10011」という品番に対してセルB1・B2・B3のホワイト・ブラック・ブルーのカラーが存在するという意味です。 ここで並べ替えを行いセルA1・A4・A7の数字を若い順(昇順)に並べ替えを行った場合、品番のみ昇順となり、カラーがその品番に対してキレイに並び替えが行われないのです。 最終的に下記のように並び替えを行いたいのですが、どのように並び替えを行えばよろしいでしょうか?よろしくお願い致します。 A    B    C   …    1 10002   ブラウン 2      レッド 3      イエロー 4 10005   パープル  5      ネイビー 6      サックス  7 10011 ホワイト 8      ブラック 9      ブルー     

  • エクセルの並び替え

    エクセルの並び替えをしたいのですが、  最優先させるキー:A列  2番目:B列 のように並べ替えたいので B列を最優先させるキーに指定して並べ替え    ↓ OK   A列を最優先させるキーに指定して並べ替え をしました。ですが、こうなってしまいます   ↓↓ こうしたいのですが↓↓ A列      B列      A列   B列 1       A       1   A 1       B       1   A  1       C       1   B 1       A       1   B   1       B       1   C  1       C       1   C ちなみに本当は数字ではなく文字でユーザー設定リストを使って並べ替えています。分かりにくい質問で申し訳ないのですがお願いします。

  • EXCELの列の並び替え

    EXCELでA列、B列にA~Zまでそれぞれアルファベットのデータが入っています。 ここで、A列、B列両方にあるデータは同じ行に、 A列にあってB列にないものは、B列に空白を。 B列にあってA列にないものはA列に空白を。 このようにA~Zまで並び替えるにはどうしたらよいのでしょうか? セルの中の文字も左からABC..順に並び替えます。

  • エクセルの並び替え または関数

    エクセルの並び替え または関数ですが、シート1に A列に店名が入っています。 B列に氏名 C列に成績 D列は資格 1行目は、見出し A列に店名がはいっているのですが、店名は100行まで店名がランダムに入っています 店名は、小渕店  春日部店  長野店  三島店  加賀店  丸田店 がランダムで100行まで入っています。これを並び変えで小渕店  春日部店  長野店  三島店  加賀店  丸田店の順に並び変える方法はありますか? 教えてください

  • エクセルの表の並び替え

    エクセル2003(OSはwin7(HP))を使用しています。 表の並び替えをやりたいのですがご存知の方、ご教授願います。 目的 ・クラス分けされた人(20人程度)のそれぞれの点数が示された表 (B列にクラス、C列に点数、D列に氏名が入力済み)にクラス平均点を 示す行を追加したい。 条件 ・B列に0から順に3までの数値が並んでいます。これは学校などの クラスをあらわしており、C列に点数(D列に名前があるが今回は無視)が 入力されています。 ・クラスは整数で表されており、0から3まであります。 並び方は0から順に大きくなっていきますが、どの数値が何行あるかは 決まっていない状態。(各クラスの人数はバラバラ)   ・例えば B列(B1セル~B7セル)に 0,0,0,1,2,2,3 C列(C1セル~C7セル)に 4,2,6,5,9,5,2 と入力されている場合  0クラスの平均点は4点(4,2,6の平均)、1クラスの平均点は5、2クラスは 7(9,5の平均)、3クラスは2となります。  これを以下のように各クラスの境目に平均点を示す行を1行ずつ追加したいのです。  F列(F1セル~B11セル)に0,0,0,"平均",1,"平均",2,2,"平均",3,"平均"  G列(G1セル~G11セル)に4,2,6, 4 , 5 , 5 , 9,5, 7 , 2, 2  これをマクロではなく、関数を組み合わせてうまくやりたいのですがそのやり方に ついてお教えください。

  • エクセル 並び替えがうまくいかない。

    不法投機されたゴミの種類ごとの個数が記載されているエクセルの表を仕事で使用しています。 数が多い順に1位~3位までのゴミの種類をあげてくれと上司にいわれたので並び替えを使用し算出しようとしました。ところが右端にあるゴミの個数のみ空白行がない形でびっしり並び替えされ、並び替えされなかった左端にあるゴミの種類の項目と対応しなくなってしまいました。 そのため、結局 目視で探すことになりました。 このような一つの表であるにもかかわらず、特定の列のみ並び替えされ、連動して並び替えしてほしい列が並び替え対象外となる理由ないしは回避方法についてご存知の方がいたらご教示ください。

  • エクセルの並び替えについての質問です。

    エクセルの並び替えですが、例えば列の並び替えで2列(仮にA列・B列)に数値は入れてあり、A列を基準に昇順する場合2003ではその並べ替えをしたい範囲を指定して、「データ」→「並べ替え」→範囲の先頭行をデータにチェックを入れて、最優先されるキーを列Aにして、昇順にチェックを入を入れれば、A列基準で並び替えが完了しましたが、2007ではではその並べ替えをしたい範囲を指定して、「並べ替え」→最優先されるキーを選択すると列A・列Bの選択ではなく、A・B列の1行目の数値の選択となり、それで並び替えると1行目はそのままで、2行目からの並び替えになってしまいます。また1行目を数値のない空欄セルにしておいて1行目から上記作業をすれば、優先されるキーは列A・列Bの選択肢が出ますが、もしその表が1行目が空欄で無い場合はどうするのでしょう?また、2003では並び替えの作業を『繰り返し』で別の表も同じく並び替えの作業が出来ますが、2007では上記の1行目空欄セルにしておいてから並び替えをして『繰り返し』の作業は出来ません。 どの様にすれば、『繰り返し』の作業も出来るのでしょうか?

  • Excelでのデータの並び替え

    Excelで以下のようにデータの並び替えを行いたいのですが どのような関数や手順で行えばいいのでしょうか。 A  B           A   B  C  D 001 a           001  a  b 001 b       →   002  a  b  c 002 a       →   003  a 002 b       →   004  a  b 002 c       →   . 003 a           . 004 a           . 004 b           . .               . . . 上記のような感じで、A列の重複を省きB列のデータを1列ごとに表示したいのです。 宜しくお願いいたします。

専門家に質問してみよう