• ベストアンサー

エクセルで、データの並び替えの方法

エクセルの初心者です。 簡単なことだとは思うのですが ご質問させていただきます。 例えば、セルの A1~A5 フルーツA A6~A8 フルーツB  A9~A16 フルーツC となっていた場合に A1~A7 フルーツC A8~A13 フルーツA  A14~A16 フルーツB というように、多い順に並び替えたいのですが どうすればよろしいのでしょうか? よろしくお願いいたします。  

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

B1に =COUNTIF(A:A,A1) と記入してA16までコピー貼り付け、 A:B列をB列の降順で並べ替えます。 並べ替え終えたら、B列はもちろん消去して構いません。

その他の回答 (1)

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

並べ替え機能を使った操作では新たなデータの入力が有っても即座に並び替えができません。 出来ればある品名の物が最後の行に入力されても自動的に同じ品名の物が多い順で並べ替えられて自動的に表示されることがよいでしょう。 そのためにはシート1に元のデータが入力されるとしてシート2にお求めの表を自動的に表示することにします。そのためにはシート1に作業列を作って対応します。 シート1にはA2セルから下方にお示しのデータが入力されるとします。 例えばE列までにその他のデータが入力されているとしたらF2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",COUNTIF(A:A,A2)) G2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(G$1:G1),-3)+1000+COUNTIF(A$2:A2,A2),INDEX(G$1:G1,MATCH(A2,A$1:A1,0))+COUNTIF(A$2:A2,A2))) H2セルには次の式を入力して下方にドラッグコピーします。 =IF(F2="","",F2*10000+(10000-G2)) お求めの表はシート2でA1セルからE1セルにかけてはシート1での項目名を必ず入力します。 A2セルには次の式を入力し、E2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(ROW(A1)>COUNT(Sheet1!$H:$H),A$1=""),"",INDEX(Sheet1!$A:$E,MATCH(LARGE(Sheet1!$H:$H,ROW(A1)),Sheet1!$H:$H,0),COLUMN(A1))) シート1に新たなデータが最終行に入力されても即座に対応した表が表示されます。

関連するQ&A