• 締切済み

EXCEL入力データの絞込み方法について

EXCELでの入力データの絞込み方法について質問させてください。 バージョンEXCEL2003 マスタとして、別シートに、メーカー・車種を持っています。 これに対して、データ入力シートにメーカー名を手入力した場合、 次の車種が絞り込まれ、該当するメーカーのものだけから選択 するようにしたいと考えています。 実際にはマスタは500件以上登録されています。 この状況では、入力規則でカンマ区切りして選択する方法ではマ スタが更新された時の追随性に難があると思い悩んでおります。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

No3です。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ↑ 選択したセルの位置が変わったら実行 If Target.Column = 2 Then ↑ Targetは、選択したセルの事 つまり選択したセルが2列目(B列だったら)以下を実行 Range("C2:C1000").ClearContents ↑C2~C1000 1000行目という値は適当ですが、値をクリア For i = 2 To 1000 ↑2行目から1000行目まで繰り返し If Target.Offset(0, -1).Value = Sheets("マスター").Cells(i, 1).Value Then ↑もし選択したセルの1つ左(つまりA列)とマスターのシートの1列目(A列)が同じ場合は Range("C" & Range("C1000").End(xlUp).Row + 1).Value = Sheets("マスター").Cells(i, 2).Value ↑C1000のセルから上へ移動して空白でない行の一つ下へ、マスターのシートの2列目(Bretu)の値を入れていく NextはForの繰り返し 複数セルを選択したりしたときのエラー処理は含まれていません。 データ数もMAX1000行までという事で設計しています。 抽出したデータを書き出す場所は Range("C" & Range("C1000").End(xlUp).Row + 1).Value を変更してください。別シートの場合は Sheets("シート名").Range("C" & Range("C1000").End(xlUp).Row + 1).Value とかになります。 For~Nextについては、調べて勉強してみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

VBA案ですが データ入力シートのC列が空いているものしてです。 シート名のタブを右クリック コードの表示をクリック VBエディターが起動したら Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 2 Then Range("C2:C1000").ClearContents For i = 2 To 7 If Target.Offset(0, -1).Value = Sheets("マスター").Cells(i, 1).Value Then Range("C" & Range("C1000").End(xlUp).Row + 1).Value = Sheets("マスター").Cells(i, 2).Value End If Next End If End Sub を貼り付けて閉じます。 B列を選択するたびに、C列に入力規則に必要なデータが抽出されると思います。

griffin-aki
質問者

補足

早速のアドバイスありがとうございます。 大変エレガントな処理方法だと思います。 アドバイス頂いた直後から色々調べて試みているのですが、 VBAは勉強中につき、なかなか応用が効きません。 恐縮ですが、この構文のそれぞれの意味について、追加の アドバイスを頂ければ大変助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

「お手軽」な方法: 昨日のご相談でしたが http://okwave.jp/qa/q7602579.html を参考にしてください。 トヨタ車の車種名が記入されたセル範囲に「トヨタ」、日産車の車種名が記入されたセル範囲に「日産」と、それぞれ名前を定義して利用します。 別の方法: >実際にはマスタは500件以上登録されています。 マスタをメーカ名で並べ替えてある前提で。(必須) マスタのシート名を「マスタ」、A列にメーカ名、B列に車種名として。 シート1のB2の入力規則に  種類 リスト  元の値 =OFFSET(INDIRECT("マスタ!B"&MATCH(A2,INDIRECT("マスタ!A:A"),0)),0,0,COUNTIF(INDIRECT("マスタ!A:A"),A2),1) と設定します エラーの警告が出ても無視して続行します。

griffin-aki
質問者

お礼

早速のご回答ありがとうございます。 今回、とにかく急ぎでの入力でして、エラーが出ようとも 結果が良ければ問題ないことから、頂いたアドバイスは 大変参考になります。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • k-josui
  • ベストアンサー率24% (3220/13025)
回答No.1

回答にはなりません。 そのような作業はAccessのの範疇です。 Accessは若干取っつきにくいですが、慣れれば処理はスムーズにできます。

griffin-aki
質問者

お礼

早速のコメントありがとうございます。 Accessは勉強中でして・・・ Accessも使いこなせるようにがんばります。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで曖昧検索および絞込みをしたい

    エクセルでなんですが、あいまい検索・かつ絞込みを行いたく。。 ここでは品番検索の簡易システムとして使いたく、 例えば   A   B    C   D (1) メーカー  車種   品番  単価 (2) トヨタ マジェスタ   ABC  10,000 (3) トヨタ ソアラ   BBO  5,000 (4) トヨタ セルシオ  MFR  1,000 (5) 日産  セフィーロ   MMFR  1,500 (6) トヨタ センチュリー   JUGY  9,000 上記のようなデータがSheet1にあり、 Sheet2の特定項目に、例えば「トヨタ」の「ト」をいれたら 同じSheet2の特定項目の下にトの分が一覧で表示される。 (ここで言えば見出しの(1)と、(2)(3)(4)(6)の行) また、車種の項目に車種を、これも同じように「セ」と入れると、 先ほどの一覧中、セで始まる分だけがさらに絞り込まれ、 同じく一覧で表示される。(ここで言えば(1)と、(4)(6)の行) オートフィルタを使えば?と言われそうですが、 リストから該当するものを選ぶのでなく(選択する種類が 多すぎるため)、入力をさせたいのです。 色々調べてみたのですが見当がつかず。。 分かりそうでしたら教えていただけると助かります。 どうかよろしくお願いします。

  • CSVデータをエクセルのセルに入れたい・・・

    よろしくお願いします。 CSVデータを当方ではエクセルで開いてます。 カンマ区切りごとのデータがエクセルのセルに1つずつ入力されてるので 不用データを行や列ごと削除できるので便利に使っていました。 が、他のPCでデータを同じように加工しようとしたところ、最初のセルに全て連続して入っているという状態で、上記のような作業が出来ませんでした。 5台のPCともXPでエクセル2003です。 テキスト形式・タブ区切り・カンマ区切りなどなど専門的なことが良く判っていないため、説明もうまくできませんが、PCの設定なのか?セルに1つづつ分ける方法があるのか?何でわたしのだけ? ?? 引継ぎが出来ず困っておりますのでどなたかお願いします。教えてください!!

  • エクセルで絞込み検索をしたいのですが。

    エクセルで絞込み検索ができないものかと頑張っているのですが知識が足りずできません。 具体的にどういった動作をさせたいかというと、画像を参照していただき、、 ”お客様登録シート”側にそれぞれ情報を登録して、そのデータを”入力シート”側の赤く塗りつぶしたセルそれぞれに検索結果を表示させたいのです。 黄色く塗りつぶしたセルに検索ワードを入力して検索。 登録年月日、又はフレームNo、もしくはその両方に該当する行の情報を出したい、ということです。 そのような、絞込み検索かつ指定した複数のセルにそれぞれの結果を表示させることは可能なのでしょうか? できれば関数でしたいのですが、マクロでないとできないということであればその方法を教えていただきたいです。 関数は少々かじっている程度。 マクロについてはほぼ初心者です。 文才もなく伝わりにくい説明かと思いますが、わかりやすいご回答をよろしくお願いします。

  • Excelの入力規則のリストにカンマを表示したい

    Excelの「データの入力規則」でリストにカンマ(,)を表示したいです。 手順としてはメニューの「データ」-「入力規則」を選択し、 表示された画面で「設定」タブを選択し「入力値の種類」で「リスト」を 選択します。 その後、「元の値」でカンマ(,)が含まれたシートのセル範囲を選択すれば 表示されますが、直に値を「元の値」に指定する場合にカンマ(,)をエスケープする方法が分かりません。 お分かりの方は教えてください。

  • csvカンマ区切りデータに=""を入力したい

    csvカンマ区切りデータに、例えば、 ="00",="123",="456" といった感じで入力したいのです。 大元のcsvカンマ区切りデータで、 00,123,456 が入っているので、これをExcelを使ってText変換や書式設定で文字列にして みたのですが、csvデータとしては=""としては保存されていないのです。 どなたか、こういった型変換に詳しいかたご連絡をお待ちしています。

  • VBAでテキストファイルからデータを読み込む方法

    VBAでテキストファイルからデータを読み込む方法を探しています。 コンマ区切りのデータを、エクセルに書き込みたいです。 テキストファイルにはコンマ区切りで6個のデータを書き込んであります。 それを、セルD3からD7に書き込む方法を教えていただきたいです。よろしくお願いします。

  • リストボックスで複数データを選択、入力(Access97)

    Access97で初めて入力フォーム作成にチャレンジしています。 リストボックスやコンボボックスで複数データを選択し、1つのフィールドに入力したいのですが、可能でしょうか? よろしくご教示ください。 例:”趣味”というフィールドに   リストからの選択で   ”読書,映画,テニス”のように入力したい。   (カンマ区切り、スペース区切り、区切りなし   など何でも結構です。)   *ベストはカンマ区切り。  

  • アンケートデータ(エクセルの処理について)

    アンケート集計について質問です。 複数回答のデータをエクセルのカンマ区切りデータがあるのですが、 (1つのセルに「1,2,3」という感じで入力されている) 集計しづらいので1,0データに変換して集計したいと思っています。 エクセルのデータ→区切り位置などを利用してできた記憶があるのですが忘れてしまいました。 どなたかご存知の方がいらっしゃったら教えてください。よろしくお願い致します。

  • データーの入力規則で

    エクセルにてデーターの入力規則を設定してますが 下記のようなエラーが出てきてしまいます。 どうしたらよいのでしょうか? 区切り文字でとありますが カンマで区切ってますが 元の値を参照してくれません。 区切り文字が違うのでしょうか? ちなみに元の値は「○○,△△,□□」と3つを区切ったものです。 『リストの元の値は、区切り文字で区切られたリストか、 または単一の行または列の参照でなければなりません。』 よろしくお願いいたします。

  • エクセルの入力規則リストで1行目に空白を設定したい

    エクセル2000です。 入力規則でリストからの入力をさせる場合、リストの最初の一行目に空白を設定したいのです。 もちろんシートにそのようなリストを作ってリストをセル範囲で指定すればそうなるのですが、セル範囲指定でなく、「元の値」に直接入力でリストを指定する場合、カンマ区切りの先頭に何も入れず、 ,選択肢1,選択肢2,選択肢3 とすると、最初のカンマの前は反映せず3択のリストになってしまいます。最初のカンマの前を全角スペースとすればできるのですが全角スペースは空白ではありません。 これはどうしようもないのでしょうか?

専門家に質問してみよう