• 締切済み

エクセルの表の並び替え

エクセル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  これをマクロではなく、関数を組み合わせてうまくやりたいのですがそのやり方に ついてお教えください。

みんなの回答

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

B列やC列は2行目から下方にお示しのデータが入力されているとします。 式が複雑になりますので作業列を作って対応します。 例えばE2セルに次の式を入力して下方にドラッグコピーします。 =IF(B2="","",IF(ROW(A1)=1,1,IF(COUNTIF(B$2:B2,B2)=1,MAX(E$1:E1)+2,IF(COUNTIF(B$2:B2,B2)<=COUNTIF(B:B,B2),MAX(E$1:E1)+1,"")))) その後にお求めの表ですがF列とG列に表示させるとしてF2セルには次の式を入力してG2セルまで横にドラッグコピーした後に下方にもドラッグコピーします。 =IF(ROW(A1)>MAX($E:$E)+1,"",IF(COUNTIF($E:$E,ROW(A1))>0,INDEX($B:$C,MATCH(ROW(A1),$E:$E,0),COLUMN(A1)),IF(COLUMN(A1)=1,"平均",AVERAGEIF($B:$B,$F1,$C:$C))))

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.2

並び替えとは? やりたいことの詳細と並び替えの関係がわからないのですが。

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

>これをマクロではなく、関数を組み合わせてうまくやりたいのですがそのやり方に ついてお教えください。 一番簡単なのは、集計行の挿入で平均を選択することですが、駄目ですか?

関連するQ&A

  • こんな表で一気に平均値出せますか?【エクセル】

    こんな表で一気に平均値出せますか?【エクセル】 例えば、1行目から1万行目まで100人の人のあるデータが100行ずつ入っているとします。 A列=人名、B列=点数とします。 A列の1行目から100行目までを仮に【No.1】として、B列の1行目から100行目までランダムに点数が入っています。そして、この【No.1】の平均点を出したくて、C列の1行目に=AVERAGE(B1:B100)として、平均点を出します。 次に、【No.2】として101行目から200行目までのデータの平均点をC列の101行目に出します。 用は、このように【No.1】~【No.100】のそれぞれの平均点を出したいのですが、簡単にできる方法はありますか? オートフィルタで【No.1】~【No.100】まで、それぞれ抽出して、式を入れればいいのですが、何しろ数が多いので、もっと簡単にできる方法があるか聞いてみました。 実際のデータは、100人以上いるし、データもそれぞれ100ぴったりではありません。 分かりにくい説明かもしれませんが、よろしくお願いします。

  • エクセルでの行の並び替えについてお願いいたします

    XPでエクセルのデーターたとえばA列に日付B列に名称 C列に数値等を入力しています C列 D列に一つのセルを外枠で囲みます たとえば1行目のC列に1個  5行目のD列に1個 8行目のC列に一個など 他のセルは外枠で囲んでおりません 変則的な使用理由は支払日の表を作成しています A列支払予定日 B列口座自動引落 C列コンビニ払い込み D列集金来社 などの振り分けで 支払方法が間違わない様 あらかじめ入力位置が分かる様 セルを囲いました。 支払予定なので入力時は問題なかったのですが 1月も終わりに近づき 支払日完了日がC列 D列 などが変わって来たので A列の日付を代え日付順に行をソートして並び替えた所 囲ったセルはソートされず 囲いと内容が合わなくなってしまいました。 仕方なく今日は切り取り/貼り付けで並び替えしましたが囲ったセルごとソート出来る方法がありましたら ご伝授いただきたいと思います。

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

    A列からC列に表AがありE列からG列に表Bがあります。 表Bの品番順に表Aのデータを並べたいのですがどのようにしたらよいでしょうか。 サンプルの表を添付しますのでよろしくおねがいします。

  • エクセル2000で質問です。

    下記のように式を入れたいのです。 先ずC1にはすでに数値が入力されています。 そこからA2を足しB2、B3を引いた数値をC3に出す。 日付順に並んでいるのですがA列には一つの日付に対して 一つしか数値が入りませんがB列には一つの場合も複数行入る場合もあり いくつ入るか分かりません。 いくつ入るか分からないのですがその日のB列に入った数値はすべて 引き算してその横のC列のセルにその答えを反映させたいのです。 この場合C列にどのような式を入れれば良いのでしょう? 下記の表の場合は 5000+300ー500-600=4200 4200+800-400-700-100=3800 というふうになっていくようにしたいのです。             A       B      C 1                         5000 2  10/20     300    500 3   10/20             600   4200 4   10/21     800    400 5   10/21            700 6   10/21            100    3800 7   10/22     500    300    4000 8   10/23     300    900    3400 9   10/24    1000    700 10  10/24            1200   2500

  • エクセルのマクロ記述について

    下記の処理をエクセルのマクロで行いたいのですが、どのように記述したよいか教えてください。 4行目から入力されている行まで下記の処理をマクロで行う。 1.J列のセル入力がCIRCLEの行で、B~E列の数値が同じセル間を結合する。 2.K列のセル入力がCIRCLEの行で、F~I列の数値が同じセル間を結合する。 3.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じ場合、B列をB列の数値XC列の数値とし、B~E列のセルを結合する。 4.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じ場合、F列をF列の数値XG列の数値とし、F~I列のセルを結合する。 5.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じでない場合、B列をB列の数値XC列の数値とし、B,C列のセルを結合する。又、D列をD列の数値XE列の数値とし、D,E列のセルを結合する。 6.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じでない場合、F列をF列の数値XG列の数値とし、F,G列のセルを結合する。又、H列をH列の数値XI列の数値とし、H,I列のセルを結合する。 7.J列のセル入力がSHAPEの行で、B~E列は何もしない 8.K列のセル入力がSHAPEの行で、F~I列は何もしない

  • エクセルの表の修正

    100行×800列程度の数値データを定期的に仕事で作成します。 作成後に特定のセルの数値を変更する必要が毎回あり、探すのにとても手間がかかっています。簡単に変更できる方法があれば教えてください。 たとえば    A店  B店   C店  D店 ア  20  10   6    5   イ  20  10    5    5 ウ   15    3    1     2 という表で 「C店」の「ウ」という商品を1追加したい といった使い方です。 よろしくお願いいたします。

  • excel:表をある列の内容で並べ替え

    excel2000以上 EXCELのシートがあります。 (B3からE102)まで4列、100行の表 B列(B3の頭から順にb102まで1番から100番まで順番に数字が入っています。) さてこの表を、別にあるG3からG102に入っている数値この数値は1から100のある順列になっており、その順列の順番に元の表の行を並べかえたい。どうすればいいのでしょうか。 例えば G列には上から 23,53,61,63,11,5,43、―――となっていたら 新しい表は1行目から元の表の23行目、53行目、61行目と並べる。 よろしく。

  • Excel2000で表を作っていますが、うまくできません

    Excel2000で表を作っていますが、うまくできません(T_T) セルA1+B1=C1 C1+A2+B2=C2 C2+A3+B3=C3.... のようなC列に合計欄がある表を作っています。(元帳のような物です) (A列、B列の欄には必ずしも全て数字が入る訳ではありません。) しかし、セルA列とセルB列に数字を入力していない場合、C列に全て「0」が 表示されてしまいます。 数字入力後は、全て下まで残高が入ってしまいます。 セルA列,B列に最後に数字を入れた行まで、Cに数字が入るようにしたいのですが、 できないでしょうか? (30行まで表を作って20行まで数字を入れたとき、21行から30行に残高も入らないように したいのです。) 何だかうまく説明できませんが、是非教えていただけますでしょうか。 よろしくお願いします。

  • Excelでの並び替えについて

    1 セルA1~A10には、数字の1~10までが不規則に入力されています。(数字が入力されていないセルもシートによってはあります) 2 セルB1~B10には、人名が入力されています。 3 セルC1~C10には、生年月日が入力されています。 上記の条件で、  セルD1~D10には1から成績順に昇順に並べてリストを作成したいです。。(数字が入力されていないセルがあったときはその行は無視しても可)このときマクロは使用せず数式(関数)のみを使用し並び替えるにはどうしたらよういのでしょうか?  

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

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