学年 グループ 名前
1 A 佐藤
1 A 鈴木
1 B 田中
1 B 伊藤
1 C 山本
1 C 高橋
2 A 中村
2 A 加藤
・
・
3 C 村山
のようなリストがあるとします。
別の空白の表を作りまして
列A 列B 列C
学年 グループ 名前
・▼ ・▼ ・▼
・・ ・・ ・・
列Aはプルダウンで学年「1~3」を選択できるように
します。同様に列Bはグループ、列Cは名前を選択できる
ようにします。
(入力規則→入力値の種類をリスト→元の値を設定
までは自力でできます・・・)
普通に設定しますと
列Aではプルダウンから「1~3」が選択でき、
列Bではプルダウンから「A~C」が選択でき、
列Cではプルダウンから「佐藤~村山」が選択できます。
実現したいのは、列Cのプルダウンの際に絞込みを
することです。
具体的には
列Aのセルでたとえば「1」、列Bのセルで「A」を
プルダウンで選択すると、
列Cのプルダウンリストの候補に「佐藤」「鈴木」
だけが出てくるようにしたいのです。
列Aと列Cの間だけ結びつけることはなんとかできます。
(列Aで「1」を選ぶと列Cで「佐藤~高橋」に絞り込む)
が、3列パターンにすると全く動きません。。
どなたか教えてください。お願いしますっ。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
例データ Sheet1
A1:D10
学年グループ名前役割
1A佐藤学級委員
1A鈴木図書委員
1B田中学級委員
1B伊藤図書委員
1C山本掃除監督
1C高橋学級委員
2A中村掃除監督
2A加藤顧問
3C村山図書委員
ーーーー
Sheet2
A1:C2 ->条件
学年グループ名前
3C村山
A2は入力規則 1,2,3
B2は入力規則 A,B,C
C2は名前を区切って入れるか、Sheet1の名前列指定。
ーー
VBEの標準モジュールに
Sub Macro1()
Sheets("Sheet2").Select
Sheets("Sheet1").Range("A1:D15").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"A1:C2"), CopyToRange:=Range("A5:D16"), Unique:=False
End Sub
フィルタオプションの設定をマクロの記録をとって、一部手直しすると出来るが、詳細は長くなるので略。
Sheets("Sheet1").を入れるのがミソ。
ーー
(下記は図書館ででもエクセルマクロの解説書を読んでください)
Sheet1にフォームのボタンを1つ貼り付け。
マクロの登録で、Macro1(上記のプログラムの名前)を登録。
Googoeででも「フォーム ボタン」「マクロの登録方法」などで照会のこと。(ツールバーのコントロールツールボックスでない方。フォームを選択の方がマクロの登録がわかりやすい)
http://www11.plala.or.jp/koma_Excel/contents4/ma …
の説明03439(オートシェイプに登録)がよいかも。
ーー
操作
Sheet2の第2行の学年・グループ。名前をそれぞれドロップダウンで選択。
上述のボタンをクリック
ーー
結果
A5:D6に
学年グループ名前役割
3C村山図書委員
No.4
- 回答日時:
おはようございます!
一例ですが↓の画像のように表を作ってみました。
Sheet1にデータがあり、Sheet2にプルダウンリスト表示させる場合です。
当方使用のExcel2003での場合になります。
尚、名前の定義の場合英数字から始まったり、同列・行に同じ名前定義のものがあると判断できなくなると思いますので
失礼ですがこちらで勝手に↓の表のように区別できるようにしてみました。
学年を第1学年~第3学年・グループをA_1~C_3 という具合に重複がないようにしています。
まず、Sheet1のK1~K3を範囲指定 → 挿入 → 名前 → 定義 → 「学年」として追加 → OK
(1行目のセルの結合部分を範囲指定して、プルダウンリストにすると、空白が含まれてしまうため)
同様にB2~D2を範囲指定 → 「第1学年」
E2~G2を範囲指定 → 「第2学年」
H2~J2を範囲指定 → 「第3学年」
そして、今度はグループ分けの名前定義です。
データ範囲によって範囲指定の領域は変えてください。
B2~B6を範囲指定 → 挿入 → 名前 → 「作成」 →
名前の作成先を「上端 行」を選択してOK
同様にC2~C6を範囲指定 → F4キーを押す → D2~D6を範囲指定 →F4キー・・・
というように最後の列まで同様の操作を繰り返します。
これでSheet1の名前定義が完了しましたので、
Sheet2の
A2セルに入力規則のリストから数式欄に
=学年 としてOK
B2セルをアクティブにし、入力規則のリスト数式欄に
=INDIRECT(A2)
C2セルも同様にリストの数式欄に
=INDIRECT(B2)
以上、全て完了でリスト表示させると↓の画像のような感じになります。
要するに元データの表がきっちりできていれば
後は範囲指定し、名前定義するだけですので簡単だと思います。
今回の場合はグループ分けですので同じグループ名が各学年にあるため
少し手間取りましたが、
都道府県分けのような場合はすぐに名前定義は設定できると思います。
以上、長々と失礼しました。
参考になれば幸いです。m(__)m
No.3
- 回答日時:
いくつか方法がありますが、
>列Aと列Cの間だけ結びつけることはなんとかできます。
>(列Aで「1」を選ぶと列Cで「佐藤~高橋」に絞り込む)
は、どのような方法で実現されていますか。
作業列と関数を使った案ですが
別シート(Sheet2)の
A B C
学年 グループ 名前
と2行目に入力規則でデータを選択するとして
学年 グループ 名前 作業列1 グループリスト 作業列2 名前リスト
1 A 佐藤
1 A 鈴木
1 B 田中
1 B 伊藤
1 C 山本
1 C 高橋
2 A 中村
2 A 加藤
・
・
3 C 村山
と4列準備して
D列に =IF(A2=Sheet2!A$2,ROW(),"") 下へコピィして条件にあった場合に行番号を表示
E列に =IF(ISERROR(SMALL(D:D,ROW(A1))),"",INDEX(B:B,SMALL(D:D,ROW(A1)))) で
条件にあった名前のみ表示できます。
同様に F列に =IF(AND(A2=Sheet2!A$2,B2=Sheet2!B$2),ROW(),"")
2つの条件があった場合に行番号を表示
G列に =IF(ISERROR(SMALL(F:F,ROW(A1))),"",INDEX(C:C,SMALL(F:F,ROW(A1))))
で、両方の条件にあった名前のみ表示されますので
E列、G列に 挿入=>定義 で名前をつけて
Sheet2のB2、C2の入力規則のリストにしてみてください。
No.2
- 回答日時:
シート1のA列で学年が、B列でグループが、C列で名前がそれぞれプルダウンのリストから選択できるようにするとします。
A列およびB列でのリストは作成できるのですがとのことですのでC列について述べます。
初めにデータベースとしてシート2を用意するとして、A1セルに学年、B1セルにグループ、C3セルに名前の文字があるとして、データは2行目から下にそれぞれ入力されているとします。
作業列を作って対応することになります。
D2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",A2&B2&(COUNTIF(D$1:D1,A2&B2&"*")+1))
E1セルには1学年のAグループを意味する1Aの文字を入力します。F1セルには1学年のBグループを意味する1Bの文字を入力します。同様に右横方向に学年グループ名を入力します。
E2セルには次の式を入力し右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
これで、各学年グループごとの名簿が表示されます。
もちろん初めから式を使わずにE列より右の列を作成してもよいのです。
そのように準備をしたうえでE列を選択してエクセル2007なら「数式」タブから「名前の定義」をクリックします。名前の窓には_1Aと表示されているでしょう。そのままOKします。Fの列でも同じ操作をして名前を定義します。同様に右横方向の列を選択しては名前を定義します。エクセル2003の場合でしたら「挿入」メニューから「名前」さらに「定義」と進んで名前の定義の操作を行います。
このような準備がすんでからシート1に戻ります。
シート1のC2セルから下方を選択して「データの入力規則」から進んでリストでのもとのデータには =INDIRECT("_"&A2&B2) の式を入力します。
これでA列での学年C列でのグループにマッチした名前のリストが表示され選択できるようになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- Excel(エクセル) Excel 数式を使用した条件付き書式が、一つのセルにしか反映されない 3 2022/06/08 23:20
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報