• ベストアンサー

エクセル2003 ドロップダウンメニューについて

ウィンドウズXPでマイクロソフトオフィスエクセル2003を使用しています。 Sheet1のA1セルにフリガナ(カタカナ半角)でアと入力すると、B2セルにドロップダウンリストでア行の取引先が表示されるようにできないでしょうか? 取引先一覧はSheet2にA1セルに取引先名一覧、B2セルにフリガナ(半角)の表題を入力していて、A2~A188に取引先名があいうえお順で入力しています。B2~B188にはフリガナ(カタカナ半角)があいうえお順で入力しています。 マクロ(VBA)は、わからないので関数を組み合わせた方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#70958
noname#70958
回答No.1

●甲案:オーソドックスに作業セルを使って。 1.作業列を設けてグループを書き出す  Sheet2のC2セルを   =MID("アカサタナハマヤラワ",MATCH(CODE(B2),{177;182;187;192;197;202;207;212;215;220},1),1)  として下方にフィル  ※"アカサタナハマヤラワ"は半角で入力してください。 2.範囲に名前をつける  [挿入] > [名前] > [定義] で   [名  前]: Idx   [参照範囲]: =Sheet2!$C$2:$C$999  として[追加] > [OK] 3.入力規則を設定する  Sheet1のB2を選択し、[データ] > [入力規則] > [設定]タブ で   [入力値の種類]: リスト   [元の値]: =OFFSET(Idx,MATCH(A1,Idx,0)-1,-2,COUNTIF(Idx,A1))  として[OK] ---------------------------------------------------------------------- ●乙案:(かなり無理矢理ですが)数式一発で。 1.範囲に名前をつける  [挿入] > [名前] > [定義] で   [名  前]: Phn   [参照範囲]: =Sheet2!$B$2:$B$999  として[追加] > [OK] 2.文字列に名前をつける  [挿入] > [名前] > [定義] で   [名  前]: Str   [参照範囲]: ="アカサタナハマヤラワ"  として[追加] > [OK]  ※"アカサタナハマヤラワ"は半角で入力してください。 3.入力規則を設定する  Sheet1のB2を選択し、[データ] > [入力規則] > [設定]タブ で   [入力値の種類]: リスト   [元の値]:    =OFFSET(Phn, SUM(INDEX(--(CODE(Phn&" ")<((FIND(A1,Str)-1-0.4*(CODE(A1)>=215))*5+177)),)),-1, SUM(INDEX(--(CODE(Phn&" ")<=(FIND(A1,Str)-0-0.4*(CODE(A1)>=212))*5+176),))- SUM(INDEX(--(CODE(Phn&" ")<((FIND(A1,Str)-1-0.4*(CODE(A1)>=215))*5+177)),)))  として[OK]  ※4行で一つの数式です。まとめて[元の値]欄にCtrl+Vで貼り付けてください。 -------------------------------------------------------------- いずれもExcel2003で動作確認。以上ご参考まで。

shota0403
質問者

お礼

本当にありがとうございました。甲案を使用させていただきます。本当に助かりました。ありがとうございます。

関連するQ&A