- ベストアンサー
Excelを使用して、得意先を頭文字から絞り込む方法はありますか?
- Windows XPのExcel 2007を使用して、数千社の得意先の中から頭文字で絞り込む方法が知りたいです。
- 入力ノートのA1に頭文字を入力すると、その頭文字に一致する得意先名のみが表示される、ドロップダウンリストのような機能を実現したいです。
- 段階的に絞り込みながら、特定の得意先を選択できるExcelのセルの入力方法が知りたいです。ドロップダウンリスト以外の方法でも構いません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下の様な方法は如何でしょうか。 補助シートを設けて、そのA列を作業列として使用し、「入力ノート」という名称のシートのB1セルにキーワードを入力しますと、入力ノートのA列~C列の4行目以下に、該当する社名を持つ会社のデータが表示される、という方法です。 まず、補助シートのA2セルに次の数式を入力して下さい。 =IF(AND(入力ノート!$B$1<>"",INDEX(得意先リスト!$B:$B,ROW())<>"",IF(LEFT(入力ノート!$B$1,1)="*",ISNUMBER(FIND(SUBSTITUTE(ASC(入力ノート!$B$1),"*",),ASC(INDEX(得意先リスト!$B:$B,ROW()))))+0,SUMPRODUCT(ISNUMBER(FIND(LOOKUP(ROW(INDIRECT("Z1:Z11")),{1,2,3,4,5,6,7,8,9,10,11;"会社","法人",")","(株)","K.K.","K.K.","(有)","(財)","(社)","(財)","(社)"})&ASC(入力ノート!$B$1),")"&ASC(INDEX(得意先リスト!$B:$B,ROW()))))*1))),ROW(),"") 次に、補助シートのA2セルをコピーして、補助シートのA3以下に貼り付けて下さい。 次に、「入力ノート」シートのA1セルに「キーワード」と入力して下さい。 次に、「得意先リスト」シートのA1~C1の範囲をコピーして、「入力ノート」シートのA3~C3の範囲に貼り付けて下さい。 次に、「入力ノート」シートのA4セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT(補助!$A:$A),"",IF(INDEX(得意先リスト!A:A,SMALL(補助!$A:$A,ROWS($1:1)))="","",INDEX(得意先リスト!A:A,SMALL(補助!$A:$A,ROWS($1:1))))) 次に、「入力ノート」シートのA4セルをコピーして、「入力ノート」シートのA列~C列の4行目以下に貼り付けて下さい。 後は、「入力ノート」シートのB1セルに、得意先名の先頭部分の文字列を入力しますと、「株式会社」や「(有)」、「~法人」といった、会社や法人の種類を表している部分を、除いた後の部分の先頭部分が、キーワードと一致するもののみが抽出されて、「入力ノート」シートのA列~C列の4行目以下に、並べて表示されます。 尚、「(有)偽大阪不動産」の様に、会社や法人の種類を表している部分を、除いた後の部分が、「大阪」から始まってはいないものも、「大阪」のキーワードで抽出する際には、「入力ノート」シートのB1セルに入力するキーワードを、「*大阪」という具合に、半角の「*」(アスタリスク)をキーワードの頭に付けて下さい。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! ご希望の方法とは異なりますが・・・ 一つの案です。 ↓の画像で右側が「得意先リスト」Sheet・左側が「入力ノート」Sheetです。 「入力ノート」SheetのA1セルに検索文字を入力 → Enter でA4セル以降に表示させてみました。 「得意先リスト」Sheetに作業列を1列設けます D2セルに =IF(入力ノート!$A$1="","",IF(ISNUMBER(FIND(入力ノート!$A$1,B2)),ROW(),"")) という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 そして、「入力ノート」SheetのA4セルに =IF(COUNT(得意先リスト!D:D)<ROW(A1),"",INDEX(得意先リスト!B:B,SMALL(得意先リスト!D:D,ROW(A1)))) という数式を入れオートフィルで下へコピーすると画像のような感じになります。 これでA1セルに一文字でも入力すると其の文字が含まれるデータが表示されると思います。 この程度しか思いつきませんが、 他に良い方法があればごめんなさいね。m(_ _)m
お礼
大変参考になりました。有難うございます。今後ともよろしくお願いいたします。
- esupuresso
- ベストアンサー率44% (257/579)
セルA1に・・・? 見出し行が1行目に入ると思いますのでA2からですよね? 顧客店名の列の右でも左でもいいですので空白列を2列作ります 例えば・・・ C列に顧客店名が入っていたとして・・・ A列の(この場合はA列とB列に空白列を作った場合の説明)A2セルに次の式を入れます A2=MID($C2,COLUMN(A2),1) 上の式をB列へコピー A列とB列に入った式を下までさらにコピーすると顧客店名左側の1文字目と2文字目が返りますので後はフィルタ機能を使って1列目で絞り込み次に2列目で絞り込んでいけます Excel2007より 添付画像から説明しました <(_ _)>
お礼
お礼が遅くなり申し訳ございません。見出し行の事を考えておりませんでした。ご指摘有難うございました。
- asciiz
- ベストアンサー率70% (6803/9674)
入力する毎に検索するというのは、いわゆる「インクリメンタルサーチ」という機能になりますね…。 当然、標準でその様な機能は無いのですが、そんなアドインを作ってくれた人がいるようです。 →http://pcgenki.com/soft2/exaddin.htm これを組み込み、「IncrementalSearch」を有効にして、何らかの設定(たぶん、検索値として使う表範囲を指定したりするでしょう)をすると、出来るようになるかも…?
お礼
早速インストールしてみました。今回考えていたものとは少し違いましたが、別の件で使えそうです。感謝しております。
お礼
いつも素早く、こちらが期待する回答を頂き感謝しております。 今後ともよろしくお願いいたします。