• ベストアンサー

エクセル 列でグループ分けされたものを行に振り分け

Excel2010です。よろしくお願いします。 添付画像にあるようにグループの分け方を変えたいのですがどのようにすれば効率的でしょうか?? ご教授お願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VBAでこういう方法もある。 Range("a2:L6").Item(i) といった、(VBAでは)セル範囲の何番目のセルというのを取り出せるので、 行と列番号の算出(計算)問題でしかない。Z型的にセルを取り出せる。 ーー 変換前後が、長方形的で、規則性のある(=繰り返しである)表の組み換えはこういう方式は役に立つ。VBAコード数が極く少なくて済む。 ーー データがA2:L12セルにあるとして 標準モジュールに書きコピペして実行(F5キー) Sub test01() For i = 1 To 12 * 5 r = Int((i - 1) / 3) + 1 + 20 c = ((i - 1) Mod 3) + 1 Cells(r, c) = Range("a2:L6").Item(i) Next i End Sub 結果はA21以下に、3列のデータになる。 (注)r = Int((i - 1) / 3) + 1 + 20 の⁺20の部分は、データ数によっては、調整必要。

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>添付画像にあるようにグループの分け方を変えたいのですがどのようにすれば効率的でしょうか?? Sheet2!A1へ次の数式を入力します。 =INDEX(Sheet1!$A$1:$L$5,INT((ROW()-1)/4)+1,MOD(ROW()-1,4)*3+COLUMN()) 右へC1セルまでコピーし、下へ20行までコピーしてください。 貼付画像はExcel 2013で検証したものですがExcel 2007以降のバージョンで再現できます。 尚Sheet2は条件付き書式で塗りつぶしを行っています。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

Sheet2!A1: =OFFSET(Sheet1!$A$1,(ROW(A1)-1)/4,MOD(COLUMN(A1)-1+(ROW(A1)-1)*3,12))

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

マクロで行うので有れば Sub Test()   Dim i As Long, j As Long, k As Long   For i = 1 To Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row     For j = 1 To 84 Step 21       k = k + 1       Worksheets("Sheet2").Cells(k, 1).Resize(, 21).Value = Worksheets("Sheet1").Cells(i, j).Resize(, 21).Value     Next   Next End Sub

関連するQ&A

  • 重複しないグループ分けをエクセルで

    excel2010を使用しています。 1~9までを3つずつ3グループに分ける作業を4回行い、4回とも重複しないようにしたいのですが、エクセルの関数でうまく重複を避ける方法があるのでしょうか?         Aグループ Bグループ Cグループ 1回目    1-2-3  4-5-6  7-8-9 2回目    1-4-7  2-5-8  3-6-9 3回目    ・・・ 4回目    ・・・ のようにすべての回で重複しないようにしたいと思っています。 9つを3つずつ・・・は手書きでもなんとかなると思いますが 1~12を4つずつ3グループに重複しないで・・・ 1~15を5つずつ3グループに重複しないで・・・ 1~18を6つずつ3グループに重複しないで・・・ というように応用したいと思いますので、ぜひエクセルの関数かVBAのプログラムで作成できるようにしたいと思っていますが、どのような関数をどのように使えばいいのかわからず困っています。 どなたかご教授いただけないでしょうか。   

  • エクセル2003でのグループ化について

    なんどもすみません 以前からの続きですが セルを5つグループ化して下のだんは6つのセルを グループ化してそれぞれ中央ぞろえにすれば5つ6つ7つ と末広がりにセルを並べたいのですが詳しく教えてください。 添付画像参照してください。

  • エクセルを使ったグループ分け

    3つあるグループをいくつかのグループに分け直したいと考えております。 最初あるグループをA,B,C,分け直した後のグループを1、2、3、4、5(5グループの場合) とし、イメージとしては以下のようなものを考えています 1・・・AABCC 2・・・ABBCC 3・・・ABBCC 4・・・ABBC 5・・・ABCC ※A・・・Aグループの人間 B・・・Bグループの人間 C・・・Cグループの人間 なお、A、B、Cグループの人数は全てばらばらで、できれば出席・欠席、グループ数の変更等にも対応できればと考えています。お力添えの方よろしくお願いいたします。

  • エクセルでグループ分け

    エクセルでセルB1~B30に30名の名前を入力してます。ランラムに分けてグループNo.1~グループNo.30グループ名をセルC1~C30に書きたいのですがどうすればよいでしょうか? ご存知の方、教えてください。

  • エクセルでグループ分け

    お知恵を貸してくださいよろしくお願いします。 A:グループ名 B:性別 C:名前 が100人分横で入っています。 それを、グループごとに分けて、縦の一覧にしたいのです。   A B C 1 A 男 佐藤 2 C 女 山田 3 B 女 田中 4 A 女 鈴木   ↓(別シートに)   Aグループ   Bグループ   Cグループ 1 男 佐藤    女 田中    女 山田 2 女 鈴木 3 4 このように抽出して、並び替えることを関数をつかってできないでしょうか。よろしくご教示ください。

  • エクセルを使ったグループ分け

    下記のような条件でエクセルを使ってグループ分けがしたいと思っています。 A組は15名、B組は5名、C組は7名…T組は10名というように、複数組からばらばらの人数が参加するイベントがある。 この全参加者(150人ほど)をランダムにグループ分けしたい。 条件 1つのグループの人数は7名から8名にする。 同じ組の人を同じグループには入れない。(この点が一番のポイントなのですが) 良い方法はないでしょうか?

  • エクセル 表の作り変え(行と列の入れ替え)

    データ量の多い表を作成しなおす必要があり、効率の良い方法を探しています。 元の表と作りたい表の画像を添付します。 データ量が多いので、データ部分をコピーして「形式を選択して貼り付け」という方法には無理があるかなと思いました。 よろしくおねがいします。

  • エクセル 列 左詰め

    よろしくお願いします。 windows excel2010です。 添付画像sheet1のようにまとまった結果を、別シートで左詰にしたいです。 sheet1の空白に見える部分は、数式が入っています。 添付画像は3行ですが、アンケート形式で行数が随時追加されるので、 フィルタで削除という方法ではなく、数式などで対応できるようにしたいと考えています。 ご回答よろしくお願いいたします。

  • excel2003 2列のデータを1列に 改良

    excel2003 にて2グループのリストを全グループリストに表示したい。 前回もこちらでお世話になっております。 前回の改良版として作成しています。 画像を添付しましたので参照していただきご回答をお願いいたします。 行いたいことは Aグループのサブ番号と氏名 Bグループのサブ番号と氏名を 全グループリストに順番に表示させたい。 セル番号 J6 K6 に入れる数式を教えてください。 よろしくお願いいたします。 

  • エクセルでのグループ分け(グループ数の求め方)

    「いくつのグループができるのか?」をエクセルで計算しようとしています。 グループの構成は、 ・5年生がリーダーで1名 ・4年生が班員で3名 とし、また、 ・6年生が1名で1から5グループの監視役 とします。(監視役の6年生は、全員が同数のグループを監視することとし、監視するグループ数に応じた全体の数量を求めたい) このとき、監視役になれなかった6年生はリーダーか、班員となり、また、リーダーになれなかった5年生は班員となります。(4年生は、必ず班員で、5年生は監視役はできません。) 以上の条件で『最大何グループができるか』を求めようとしていますが、良い計算式が思いつきません。どなたか教えてくださいませんか???よろしくお願いいたします。 なお、一般式を作りたいので、あえて各学年の生徒数は入れてありません。

専門家に質問してみよう