[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『組ごとにシートを分ける』(えいこ)
以下のように、A列に組、B列に名前が並んだ一覧表があったとして、 組ごとにシートを別にする、もしくは改ページをできるようなことは できますでしょうか。 以下のような表が6,000行ほどあり、手で取分けをしないで済む方法はないか 考えているのですがなかなか妙案がうかんできません・・・。 A B 組 名前 1 1 鈴木 2 1 伊藤 3 1 加藤 4 2 竹村 5 2 高橋 6 2 三田 7 2 津田 8 3 飯田 9 3 谷川 エクセルのバージョンはExcel2000 OSはWindows2000です。 よろしくお願いいたします。
多分、やり方は沢山あると思いますが まずは、作業列を使った方法でお一つ。
Sheet1 [A] [B] [C] [1] 組 名前 作業列 [2] 1 鈴木 [3] 1 伊藤 [4] 1 加藤 [5] 2 竹村 [6] 2 高橋 [7] 2 三田 [8] 2 津田 [9] 3 飯田 [10] 3 谷川 C2=A2&"♪"&COUNTIF(A$2:A2,A2) で下行へコピーします。
Sheet2 [A] [B] [1] 組 名前 [2] 1 [3] [4] [5] [6] [7] [8] [9] [10] B2=IF(COUNTIF(Sheet1!$A:$A,$A$2)>=ROW(A1),INDEX(Sheet1!$B:$B,MATCH($A$2&"♪"&ROW(A1),Sheet1!$C:$C,0)),"") で下行へコピーです。
ちなみに、Sheet2のA2を 2 とか 3 に変えてみて下さいな。 (SS)
Sheet1を6000人の名簿とします。
Sheet2のA1セルのユーザー定義を 0"組" として、1 を入力します。 A B 1 1組 名前 2 1 鈴木 3 1 伊藤 4 1 加藤 5 A2 {=IF(COUNTIF(Sheet1!$A$2:$A$6000,$A$1)<ROW(A1),"", INDEX(Sheet1!A$1:A$6000,SMALL(IF(Sheet1!$A$2:$A$6000=$A$1,ROW($A$2:$A$6000)),ROW(A1))))} 配列数式ですので Ctrl と Shift を押しながら Enter します。式が{ }で囲まれます。
A2をB2へコピー後、A2:B2を必要分(各クラス人数より多めに)フィルダウンします。
Sheet2をSheet3以降にコピーして各SheetのA1セルにクラスNo を入力します。
Sheet1のクラスNoはランダムでも抽出します。。。(gon-2)
先の回答で十分かもしれませんが、マクロでの回答です。
以前回答したコードですが、下記ように変更するればシートごとに分類できます (シート名は実際にあわせてください)。 [[20080522180917]]
Const masterSheetName = "ALL" '--- 元データシート名 Const checkRow = "A" '--- 元データの分割判定を行う列 Const checkLastRow = "A" '--- 各シートの最終列を判定する列 Const rowUnitSize = 1 '--- コピー行単位 Const dataStartLine = 2 '--- 各シートのデータ開始行(ヘッダ行+1) (Mook)
>もしくは改ページ 「もしくは」って事は 「一番の希望は ページを分ける」 ですよね・・・。
でも、めげずに改ページバージョンとして・・・。
1.「組」毎に並べ替え 2.データ(D)→集計(B)と進み グループの基準を [ 組 ] 集計するフィールドを [ 名前 ] ■グループ毎に改ページを挿入する(P) として一度集計を行う。 3.行番号より左側の[2]を押して集計行だけ表示させる 4.見出し行を含まない 表示されている範囲を選択 5.Alt + ;(セミコロン) で、表示されている行だけ選択 6.右クリック → 削除 7.集計範囲内(見出しセルとか)をアクティブにして データ(D)→集計(B)と進み 「全て削除」
集計行は6の作業で削除され 2でグループ(組)毎に入れた改行だけが残ります。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.