エクセルで部活動名簿を作っています。
この学校では、一人の生徒が複数の部活に所属しています。
シート1に下記のような名簿を作成しておいて
A B C D E F G
______________________________
1 学年 氏名 性別 部活 部活 部活 部活
2 1 スズキ 男 バスケ 水泳
3 1 ヤマシタ 女 テニス 水泳
4 2 サトウ 女 バスケ バレー
5 2 イトウ 男 テニス
6 3 タナカ 男 バスケ テニス バレー
シート2に、たとえば「2 男 バレー」(2は、2年生ということ)
と入力して、ボタンをクリックするとシート1の名簿から抽出されてシート2に表示されるようにしたいのです。
最初は複数抽出ではなく、バレー部ならバレー部、バスケ部ならバスケと抽出すればよかったので、マクロの記録を使って
フィルタオプションの設定で指定した範囲を選択
シート1でリスト範囲を指定し
検索条件範囲は、シート2に部活 バレー部と入力しそこのセルを指定
抽出範囲でシート2の表示したいセルを選択しました。
マクロの記録を終了してから、ビジュアルベーシックエディタで
少しいじって、その後フォームでボタンを作成し
そこにマクロを読み込ませて、そのボタンをクリックすると
シート2に表示されるようにしました。
これで出来上がりと思ったら、依頼主からバレー部の中でも
学年でわけ、さらに性別で分けるようにしたいという要望があり
いろいろと試してみたのですがうまく行かず・・・
お手上げ状態です。
ちなみに、私はエクセルは詳しくないです。
前回の抽出も、ネットや図書館で借りてきた本で調べ調べやっと出来たものです。
どうか、お力をお貸しください!よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
部活を 部活1 部活2 部活3 部活4 といった具合に変更します
条件となるセルに
学年 性別 部活1 部活2 部活3 部活4
2 男 バレー
2 男 バレー
2 男 バレー
2 男 バレー
といった具合に設定しておき
フィルターのオプションで抽出してみてください
1行の列にきじゅるされた条件がアンド(AND)
行方向に伸びる条件がオア(OR)
になります
No.3
- 回答日時:
登録のシートと検索結果のシートを分けなくてもいいのであれば、下のように表を変更して、オートフィルタを使うのが簡単だと思います。
A B C D E F G
______________________________
1 学年 氏名 性別 バスケ テニス 水泳 バレー
2 1 スズキ 男 ○ ○
3 1 ヤマシタ 女 ○ ○
4 2 サトウ 女 ○ ○
5 2 イトウ 男 ○
6 3 タナカ 男 ○ ○ ○
1行目で、[データ]メニューの[フィルタ]から[オートフィルタ]をチェックします。
この回答への補足
ありがとうございます。
そうなんです!私も最初それを提案しました。
それで、ほしいデータだけをコピーして別の名簿に貼り付ける等したら
どうかと提案したのですが・・・
依頼主は、とにかくワンタッチボタンで・・・と言うので。
すみません・・・
ありがとうございました。
No.2
- 回答日時:
エクセルの初心者がやるような問題ではないと思う。
それで処理ロジックは総なめ(全員をIF文で判別する方法)法という初等的な方法でやったものを挙げておく。
例データ
A1:G6
学年氏名性別部活部活部活部活
1スズキ男バスケ水泳
1ヤマシタ女テニス水泳
2サトウ女バスケバレー
2イトウ男テニス
3タナカ男バスケテニスバレー
部活所属記録はD列から左よりになっているが、質問例でも問題なかろう。
ーーー
コード
標準モジュールに
Sub test01()
k = 3
d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
MsgBox d
For i = 2 To d
If Worksheets("Sheet1").Range("C" & i) = Worksheets("Sheet2").Range("A1") Then
For j = 4 To 8 'D-H列まで
If Worksheets("Sheet1").Cells(i, j) = Worksheets("Sheet2").Range("B1") Then
For m = 1 To 8 'その行A-H列をSheet2へ値代入
Worksheets("Sheet2").Cells(k, m) = Worksheets("Sheet1").Cells(i, m)
Next m
k = k + 1 '次の行をポイント
End If
Next j
End If
Next i
End Sub
これをSheet2のコマンドボタンのクリック処理のなかへ
Private Sub CommandButton1_Click()
test01
End Sub
にする。
ーー
結果 1例です
男テニス(コマンドボタン)<--条件をA1,B1に入れる
学年氏名性別部活部活 <--コピーしておく
2イトウ男テニス <-以下が結果
3タナカ男バスケテニスバレー
ありがとうございます。
確かに、私のような初心者がやるようなことではないかもしれないですが
仕事上、やらざるを得なくて・・・
部活1 部活2 部活3 部活4とすることで
うまく出来ました!!
imogasi様の回答はすごいですね。
やはり、初心者には難しいです。
これを機に、勉強してみたいと思います。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) 出勤簿の土、日、休日に色付けできない 2 2022/08/04 20:10
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- 学校 部活選びに失敗、中一です バレー部に入り失敗した。4月の仮入部で楽な方、楽な方へ考え過ぎました。小6 6 2023/03/28 15:02
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
私は高校で男バスのマネージャ...
-
部活をやめたいです。ですが、...
-
助けてください
-
限界を超えるのって簡単にいき...
-
18:00 バスケ 近所迷惑と言われ...
-
なんでバスケってチノパンなん...
-
朝の7時から外でバスケのドリブ...
-
小学6年ミニバスをしている娘を...
-
息子(小4)がミニバスを辞めた...
-
シューズの違い
-
スポ小の保護者の輪の中に入れ...
-
バスケ部の初心者
-
今日なんですが、毎週火曜日に...
-
□■バスケをしている時よくこけ...
-
1、家の前の道路(私有地)で ...
-
(保育)実習生個人票の自己紹介...
-
家の私有地にバスケゴールを置...
-
Hすると一日ぼーっとしてしまう
-
小6息子にバスケットを続けさせ...
-
大きい彼女と
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報