• ベストアンサー

データベースから検索して表示させる方法

karasumoriの回答

回答No.2

500件近くあるデータとは、入力するデータ(行)が500件あるのでしょうか?それとも、コードが500種類あるのでしょうか?まあどちらにしろ、何度もデータベースに読みに行くのは時間がかかるので、最初にコードと名前を全部読み込んでおく方がいいと思います。 A列にコードを入力し終わったらマクロを実行して、データベースからコードを名前を取得。その後まず1行目A列を読んで、それにに対応する名前を1行目B列に表示させる、次に2行目・・とやっていって、最終行まで実行するという。 具体的なコーディングは、そのブックや表の構成など(空白行があるのかとか)も書いたほうが回答が得やすいと思いますよ。シートがいっぱいある場合、データベースから取得するタイミングも違ってくることもあると思います。

hs7109
質問者

補足

質問内容が、わかりにくかったようで申し訳ありません。 私が作りたいのは、A列にコードを入力するたびにB列に名前を表示させる…ということなのです。 その表には、C列やD列(同行)にもデータをいくつか入力する表ですので、最後に表示するという形はとりたくないのです。 わかりづらい文章ですみません。よろしくお願いします。

関連するQ&A

  • あいまい検索でヒットするデータを表示する方法

    office2016 ある機種のデータをsheet1のA列2行目以降に取り込みます code  ←題目 1233 127011 ←(A) C00001 C00233 … C90001 ←(B) その後昇順にならんだデータにします。約50行くらいあります。 (A)のデータは 1270で始まるデータで 127011,127021の様に6ケほど存在します。 (A)のデータは機種に必須のデータなので6ケの中でどれか1つが必ず存在します。 文字列と数字が混載表示のデータで1270が含まれるデータはありません。 C91270の様なデータは無いということです。 (B)のデータは C9000で始まるデータで C90001,C9002の様に5ケほど存在します。 (B)のデータは機種に必須ではないので、存在しない場合があります。 A列のデータの中から (A)で存在するデータはsheet2のG3セルへ (B)で存在するデータはsheet2のM3セルへ それぞれ表示したいのですが、何か簡単に一発で表示される良い方法があれば教えていただきたく。 現状の構成は次の通りです。 マクロで下記を対応してます。 Aデータの有無を確認する作業シート(シート名はA)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("1270",A2,1)),"対象外",SEARCH("1270",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータが残るのでそれを表示 code 127011   1 の状況になるので SHEET2のG3セルは =IF(A!B2=1,A!A2,"") とすると 127011がG3セルに表示される Bデータの有無を確認する作業シート(シート名はB)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("C9000",A2,1)),"対象外",SEARCH("C9000",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータがあれば残るのでそれを表示 code C90001   1 の状況になるので SHEET2のM3セルは =IF(B!B2=1,B!A2,"") とすると C90001がM3セルに表示される C9****のデータが存在しない場合、M3セルは空欄表示でOK これで一応やりたい内容は達成できていますが、関数で一発表示ができたらとの思いです。マクロでも構いません。 よろしくお願いします。

  • EXCEL マクロ・VBA 自動で連番を振る

    EXCELのマクロ・VBAについて質問です。 例えば、B列にデータを入力すると、入力した行まで自動的にA列に連番が入力されるようにしたいのですが、どういった方法があるでしょうか。 マクロやVBAについてはこれから勉強をしようと思っている素人ですので、コードとその解説をいただけると助かります。

  • マーク入力セルがある行は非表示

    Excelシート1~10行のうち1.3.7.9行のD列にIF関数により"●"が入力されています。 "●"の1.3.7.9行をVBAコード入力で非表示にならないでしょうか。解る方、宜しくお願いたします。

  • データベースを検索するマクロ(エクセルで)

    エクセル初級者です。 データベース化してある顧客名簿がsheet2にあり、A列は個人別コードが、B列は氏名、C列は郵便番号、D列は住所、・・・といった感じになってます。 教えていただきたいのは、sheet1上で氏名を入力して検索するフォームを作り、検索の結果、ヒットしたすべてがsheet3上に抜き出す方法って可能ですか? うまくいえないのですが、例えば「佐藤」と入力して検索ボタンを押せば、sheet2のすべての佐藤さんのデータがsheet2の形式と同じ形でsheet3に表示されるようにしたいのです。 情報に不足があれば補足しますので、どなたかVBAの書き方を教えてください。よろしくお願い致します。

  • データベースの最下行に移動するVBAがわからない

    データベースの最下行にデータを入力すべく、マクロを実行すると データベースの先頭のセルが選択された状態で実行されますが 入力後にその入力を終えた最下行の先頭のセルが選択されるように マクロを実行したいのですがどうすればわかりません。 エクセル2010にてVBAで作成しています。 どのようなコードを入力すればできるでしょうか?

  • エクセル~空白のセルのある行を非表示に。

    エクセルで。 例えば、100行の表があって、1行目から順番にデータを入れていくんですが、 データが50行までで終わってしまった場合に、51行目からを、非表示にしたいのです。 Aドライブからのデータの読み込みは、マクロをつかっているので、できればそのあとに文章をくっつけて、1つのマクロで作業を完了したいのです。 具体的に言いますと・・・ A列には1~100までの数字が入力してあります。 B~E列には取り込んだデータ(数字)をVLOOK関数で文字に変換するようになってます。 それ以降は、固定した単位(m3)や、データの数字がそのまま入る・・・という感じです。 そして、101行目はそれぞれの列の合計を出すようにしてます。 つまり、データを読み込んだあと、例えば50行しかデータが無かったら(B50やC50などが空白だったら)、51行目から100行目までをいわゆる『表示しない』にしたいのです。 だいぶ考えましたが・・・・。 よろしくお願いします。

  • エクセル データベースと検索

    エクセル初心者です。 今データベースの検索の勉強のため 以下のような2枚のシートを作成しています。 上段がデータベースの元データで在庫の商品と 支店名です。 商品の種類は全部で1000個位の種類があります。 下段が商品を備蓄している支店名と支店コードです。 そこで今回したい処理なのですが、 下段の支店コードの横の列に以下のように 検索フォームをつくり、支店名(さらに言えば支店コードだけ) を入力すれば、その支店で持っている商品名を すべて表示したいのです。 現在、目視でしているためたいへん時間がかかります。 関数やVBAで抽出することはできるのでしょうか。 よろしくお願いします。

  • EXCELの 編集 検索キーを使わず 検索したい

    EXCELの 編集 検索キーを使わず シート上で検索文字を指定して 検索された 全ての セルを表示したい。  第1表 CODEー名前表 CODEを探す A列 B列 C列 D列 1行 CODE 名前 CODE 2行 1001 あいうえお 1001 3行 1002 ああいうえ 1002 4行 1003 おあいうえ 1003 5行 1004 えおいうえ 1004 6行 1005 うえおあい 1005 7行 1006 うえああい 1006 第1表 CODEー名前表 から”あ”の含まれる全ての 名前 CODEを 第2表みたいに 作りたいのです 第2表 CODEを探す A列 B列 C列 D列 1行 検索する 名前 *あ* 2行 3行 検索された 名前 検索された CODE 4行 あいうえお 1001 5行 ああいうえ 1002 6行 おあいうえ 1003 7行 うえおあい 1005 8行 うえああい 1006 マクロを使わない方法で お願いします。 1:検索された 文字の足し算 2:文字の足し算をするごとに 1行増やす 3:改列 4:SUMPRODUCTで 文字の足し算は出来ますか?

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセルVBAで非表示にする方法

    エクセルのVBAを使って表示・非表示の切り替えをする方法を教えてください。 マクロは初心者のため、コードを書いていただけると嬉しいです。 (1)6~9行目、11~14行目、16~19行目…151~154行目まで を表示・非表示 (2)合計列・差額列 (列に名前を入れています。ABCなどどの列に入るかはケースによりかわります) 今のところ、 Rows("6:9").Hidden = True Rows("11:14").Hidden = True Rows("16:19").Hidden = True . . . Columns("Q:R").Hidden = True で誤魔化していますが、時間がかかりますし、列はその都度設定している状況です。 ご指導お願いします。