- ベストアンサー
エクセルの入力規則について
エクセルの入力規則についてですが、 セルA1に商品コードを入れるとセルB1に商品名が出るようにしたいと思います。 参照関数でB1に計算式を入れておけばA1に数字を入れることによりB1に商品名が出ることは分かるのですが、商品コードが分からなかった場合にA1に入力規則でリストを作成して選べばと思いますが、1列分しかデータが入らないのでコードと商品名の関連性が分かりません。 希望は、A1にリストを作成し「00001 パソコン」を選択すると「00001」だけ表示されるようにしたいと思います。 この様なことはできるのでしょうか。よろしくお願い致します。 商品コード 商品名 00001 パソコン 00002 マウス 00003 モニター
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
できそうだけど、質問者側に相当VBAの勉強をしてもらわないと。 VBAの色々な勉強事項が詰まっている。 ーー シートのタブで右クリック コードの表示 下記をコピペ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then 'A列のみ効力発生 Application.EnableEvents = False Target = "'" & Left(Target, 5) Application.EnableEvents = True End If End Sub ーー A列には普通に A列の適当な行数の範囲指定 データ 入力規則 リスト 範囲F1:F3 OK ただしF1:F3に 00001 パソコン 00002 マウス 00003 モニター を入れておく こと。 上例A列には全角文字列の数字5桁が入る。
その他の回答 (3)
- sige1701
- ベストアンサー率28% (74/260)
表がずれましたので再送します A B C D E 1 商品コード 商品名 2 00001 パソコン 3 00002 マウス 4 00003 モニター
- sige1701
- ベストアンサー率28% (74/260)
可能とは思いますが、お薦めしません A B C D E 1 商品コード 商品名 2 00001 パソコン 3 00002 マウス 4 00003 モニター C列にコード E2に =C2 E2の書式 ユーザー定義 @"00001 パソコン" E3に =C3 E3の書式 ユーザー定義 @"00002 マウス" 以下設定していき 入力規則 リスト E2:E4 あくまで、できると言うことで、参考までに
- zap35
- ベストアンサー率44% (1383/3079)
>A1にリストを作成し「00001 パソコン」を選択すると「00001」だけ表示されるようにしたい これは入力規則のリストではできません。VBAならできますが、でもそういうご質問ではないと思います 元々の趣旨は「商品コードが分からないときにリストの中から選択したい」なので、A1には「商品コード手入力」もしくはリストから「00001 パソコン」を選択入力させ、B1に商品コードを抜き出します 商品コードが5桁の文字列なら、例えば =IF(LEN(A1)>5,LEFT(A1,5),A1) のような式でも良いでしょう。 その上でC1にVLOOKUP関数などで商品名を参照させたらいかがですか。 >1列分しかデータが入らないので とのことですが、入力規則のリストを多段にすることもできますよ。 http://officetanaka.net/excel/function/tips/list.htm このURLでは最初のリストで性別を選択させ、次のリストでは指定した性別の氏名を表示させる例が紹介されています。もしかすると参考になるかもしれません。 (他にも「エクセル リスト 連動」で探すとたくさんあります)
お礼
VBAは正直分かりません。 ちょっとできそうにないのでこの方法はあきらめます。 選択肢が12個しかなかったのでセルコメントを活用する方法で間に合わせます。 ありがとうございました。