- ベストアンサー
エクセル2003 ドロップダウンメニューについて
ウィンドウズXPでマイクロソフトオフィスエクセル2003を使用しています。 Sheet1のA1セルにフリガナ(カタカナ半角)でアと入力すると、B2セルにドロップダウンリストでア行の取引先が表示されるようにできないでしょうか? 取引先一覧はSheet2にA1セルに取引先名一覧、B2セルにフリガナ(半角)の表題を入力していて、A2~A188に取引先名があいうえお順で入力しています。B2~B188にはフリガナ(カタカナ半角)があいうえお順で入力しています。 マクロ(VBA)は、わからないので関数を組み合わせた方法を教えてください。
- みんなの回答 (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で動作確認。以上ご参考まで。
お礼
本当にありがとうございました。甲案を使用させていただきます。本当に助かりました。ありがとうございます。