https://oshiete.goo.ne.jp/qa/717333.html
ここで質問されてる様にしたいのですが、どうしても出来ません。
質問内容
入力規則を使って、社員コードを入力する際に
10001 山田太郎
10002 鈴木花子
10003 佐藤大介
のように、ドロップダウンリストに「社員コード」「社員名」と2列表示させたいのです。
そして、例えば山田太郎を選択すると、セルには「10001」だけが入力されるようにしたいのですが・・・
解答内容
番号のデータがA2からA4、社員名がB2からB4にあるとし
C1にリストを設定して番号を入れ、D1に社員名が反映するようにするときにはD1に
=INDEX(A2:A4,MATCH(C1,B2:B4))
と入れてやるとうまくいくと思います。
つまり
A B C D
10001 山田太郎 DDリスト表示 =indexの式
しかしCにリスト設定しても AとBは分割されてるのでAしか設定出来ませんよね?
目的はCで「ドロップダウンリストに「社員コード」「社員名」と2列表示」にしたいのに
これでは駄目なのでは?
それとも出来てて私の理解がおかしいのでしょうか?
再度の解説をお願いしたいのですが、よろしくお願いします。
No.5ベストアンサー
- 回答日時:
#2です。
社員コードは文字列扱いなのですか?それだと、示した回答ではVlookupできないはずなので、頭に「0」がつくものだけ文字列にしているのでしょうか。
それなら、全て文字列扱いにして、LEFT(C2,5)*1をLEFT(C2,5)にすれば、エラーは出ないと思います。
文字列扱いしているものと数字扱いのものを混在したままにしたいなら、
=IFERROR(VLOOKUP(LEFT(C2,5),$A$2:$B$4,2,FALSE),VLOOKUP(LEFT(C2,5)*1,$A$2:$B$4,2,FALSE))
これでどうでしょうか。
早速の回答、大変、ありがとうございます。
社員コードは数字と文字列混在してますので、0が頭にくると0が表示されないのでその分だけは
'を付けて「’00123」と言う風にしてます。
LEFT(C2,5)*1をLEFT(C2,5)とすればいけるのですが、
=IFERROR(VLOOKUP(LEFT(C2,5),$A$2:$B$4,2,FALSE),VLOOKUP(LEFT(C2,5)*1,$A$2:$B$4,2,FALSE))だと入らないみたいなのですが?
式もあってるみたいですし、IFERRORを外して
=VLOOKUP(LEFT(C2,5),$A$2:$B$4,2,FALSE),VLOOKUP(LEFT(C2,5)*1,$A$2:$B$4,2,FALSE)としても、入りません。
よろしくお願います。
No.4
- 回答日時:
案1
1) C2セルに =A2&" "&B2
下へオートフィル
2) E2セルに入力規則 リスト
例) =$C$2:$C$5
3) F2,G2セルを選択して
=IF(E2="","",INDEX(A:B,MATCH(E2,C:C,0),{1,2}))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
下へオートフィル
案2
案1の2)まで同じ
3) F2セルに
=IF(E2="","",LEFT(E2,FIND(" ",E2)-1))
下へオートフィル
4)G2セルに
=IF(E2="","",RIGHT(E2,LEN(E2)-LEN(F2)-1))
下へオートフィル
案3
1) [Ctrl]+[F3]名前の定義
名前 入力場所
範囲 =INDEX(Sheet1!$D:$D,COUNTA(Sheet1!$D:$D)+1)
2) コントロールツールボックス(ツールバー)から
リストボックスを適当な位置に作成
3) そのリストボックスをデザインモードで右クリック - プロパティ
ColumnCount 2
LinckedCell 入力場所
ListFillRange A2:B5
に変更する
4) デザインモードを解いてリストボックスをクリックするとD列に番号のみ追加されていく
回答ありがとうございます。
いまひとつ、よくわからないのとE列が表示されるのが意にそぐわないみたいですね。
せっかく、大変詳しくしていただきましたが、#2さんので解決しそうです。
骨を折ってくださり、ありがとうございました。
No.3
- 回答日時:
#2です。
=Sheet1!A2& CHAR(10) &Sheet1!B2 はおっしゃる通り、私が間違っていました。
C列はリストを入れていますが、これが余分ですか?ドロップダウンリストの列は必要では?
Left(C2,5)*1は、Vlookupの「検索値」に入れてください。
D列を作業に使うのではなく、
=VLOOKUP(LEFT(C2,5)*1,$A$2:$B$4,2,FALSE)
とD列に入力すれば、OKです。
回答ありがとうございます。
出来ました。
しかし「’」を付けて「'00200」としてるのですが、頭に0が付くとエラーとなります。
これは何ともならないでしょうか?
よろしくお願います。
No.2
- 回答日時:
一例として前の質問の#5さんの回答を使って、実現する方法を。
Sheet1のセルA2~A4に社員コードが、セルB2~B4に社員名がある状態で、
Sheet2のセルA2に=Sheet1!A2& CHAR(10) &Sheet2!B2として、
A4までコピーします。
そうしてSheet2のA列で「折り返して全体を表示する」にすると、
社員コード
社員名
の2行で表示されると思います。
ここで、A2:A4の範囲に名前を定義します。A2:A4を選択し、
数式タブ→名前の定義→コードリスト→OKをクリックしてください。
次に、Sheet1のC2で入力規則でリストを設定します。
データの入力規則→入力値の種類をリストに→元の値のボックスでF3を押す
→名前の貼り付けボックスが出るので、「コードリスト」を選択→OK→OK
C列を「折り返して全体を表示する」設定にして、2行目から4行目までを1行しか
表示できない行の高さに設定します。(たとえば13.5)
これで見た目はコードのみ表示されます。
そして、Vlookupでの検索をするにあたっては、C2そのままを検索値にするの
ではなく、Left(C2,5)*1としてください。
社員コードは5ケタで固定だと思うので、C2の入力値のうち左から5文字目まで
を取り出して検索します。取り出したものは文字列なので数字にするために「*1」
を付加しています。
回答ありがとうございます。
うーん、ややこしくて少しわかりにくいのですが、まず最初の処で
社員コード社員名の2行で表示されると思います。
が、2行で表示されないのですが?
=Sheet1!A2& CHAR(10) &Sheet1!B2ですよね?これなら出ます。
それからCでドロップダウンリストを出すとコードと氏名となってますし、高さを低くしてますから
選ぶとコードだけの表示にはなっています。
でこの Left(C2,5)*1 はどこにいれますか?D列?
それでE列にVLOOKUPとすると確かにD列とE列で思ってる事にはなってますが、この理解であってますでしょうか?
しかしC列が余分なのですが?
よろしくお願いいます。
No.1
- 回答日時:
質問者さんは「目的はCで「ドロップダウンリストに「社員コード」「社員名」と2列表示」にしたい」とおっしゃっていますが、それはどういう状態を指すのか、詳しく説明してください。
C 列の列数は 1 列なのに、2 列にするとは何でしょうか?引用されている過去の質問では、番号と氏名が 1 対 1 の対応関係になっています。そういう場合、普通は、複数リストの連動などは考えず、単に VLOOKUP 関数を含む数式をセルに記入して終わりです。
VLOOKUP の代わりに INDEX(MATCH) を使っても構いません。列の配置によっては、VLOOKUP では検索できず INDEX(MATCH) にしなければならないこともあります。
ご質問のシートは、別にリスト機能は使っても使わなくても構わないけれど何らかの方法により C 列に番号を記入し、それに対応する氏名を D 列に自動表示させるという内容のようです。C、D 列という 2 列に、一個人に関するデータが表示されている状態になりますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) エクセルの表で A1にデータの入力規則でリストを作って、 (リス、キリン、ゾウとします) リストを選 4 2022/07/15 09:29
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
Excelのセル内文字の並び替えに...
-
HYPERLINKとADDRESSとMATCHの組...
-
入退社日より各月末の在籍者数...
-
エクセルで小数を含む数値の抽出
-
数式が入ったセルを含めて、数...
-
SUBTOTAL SUMIF??
-
エクセルで住所の番地順に並べ...
-
エクセルで市町村コードから、...
-
OpenOfficeでウインドウの固定...
-
B列に、A列の数字が偶数の場合...
-
別のセルに値が入力されたら、...
-
エクセルで正解率を出す関数は?
-
エクセルで表示されている数字...
-
スペースとスペースの間の文字...
-
EXCELのAVERAGEIF関数で#DIV/0!...
-
エクセルで合計欄を結合し、左...
-
エクセルで数式に値を代入して...
-
[関数について]わかる方教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
列の数字に100をかけたい
-
Excel上でのデータ数字が連番で...
-
エクセル:横長の表を改行して...
-
別のセルに値が入力されたら、...
-
スペースとスペースの間の文字...
-
エクセルでセルの値分の個数の...
-
エクセルで表示されている数字...
-
エクセル:一覧表に存在する文...
-
【EXCEL】指定したセルの値を他...
-
HYPERLINKとADDRESSとMATCHの組...
-
時間を「昼間」と「夜間」に分...
-
エクセルのsumifでかけ算してか...
-
エクセルで曜日に応じた文字を...
-
エクセルで、毎日の走行距離(...
-
エクセルで住所の番地順に並べ...
-
エクセルで1列全部10倍したい
おすすめ情報
解答ありがとうございます
すいません言い忘れていましたが、C列でVLOOKUPによりAのコードに対するB社員名をを検索するようにしてます。そのとき、コードだけが表示されますがコードに社員名も一緒に表示させたいのです。
よろしくお願いします。
すいません、勘違いしてました。
DにはVLOOKUP関数でCに入力したコートから社員名を持ってくるようにしてます。
Cにドロップダウン表示でAとBの表示させて、実際にCに入力確定するときに関数か何かで
左側のコードだけを入力するように出来ないでしょうか?
よろしくお願いします。
あ、すいません違いました。
入力規制で複数指定出来ないのですから例えばAに「コード 社員名」として
BにドロップダウンリストでA「コード 社員名」を表示、入力されるのは左のコードだけでCにはVLOOOKUPで社員名を持ってくる。
こんな感じになるでしょうか?
何度もすいません。よろしくお願いします。
すいません、出来ました。
大変大変、ありがとうございました。