Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2013)
データの入力規則で、動的値一覧を設定したい
投稿日時: 20/01/10 11:13:10
投稿者: nice-guy

みなさん、こんにちは。
A列の値によって、B列の値をVOOKUPでは取得出来ます。
しかし、A列の値によっては、該当するデータが複数ある時があります。
その時に、リストのように複数から選択できるようにしたいのですが。
イメージで言うと、リストの設定枠にVLOOKUP関数を入れるようなイメージですが。
どうしたらよいか教えてください。
よろしくお願いします。
 

回答
投稿日時: 20/01/10 13:05:55
投稿者: んなっと

必ず表形式の具体例を添えて質問してください。
 
●中級者向け
 
   A    B C D E F  G    H
1 No. 取引先       No. 取引先
2 101   い       101   あ
3 102   え       101   い
4 103   か       102   う
5              102   え
6              102   お
7              103   か
 
B2
入力規則:リスト▼:元の値:
=OFFSET($H$1,MATCH(A2,$G:$G,0)-1,,COUNTIF($G:$G,A2))
 
●初級者向け
 
   A    B C D E F  G  H  I  J
1 No. 取引先       101 あ い  
2 101   い       102 う え お
3 102   お       103 か    
4 103   か               
 
 G1:J3を選択
→数式 定義された名前 選択範囲から作成
→「左端行」だけチェックを入れてOK
→B2を選択して
入力規則:リスト▼:元の値:
=INDIRECT("_"&A2)
 
上の例ではA,G列が数字から始まるので、前に "_"& が必要。
通常は
=INDIRECT(A2)
このように状況によって変わるので、具体例は必須です。

投稿日時: 20/01/10 14:52:14
投稿者: nice-guy

んなっと さん、回答ありがとうございました。具体的に書きます。
 
値一覧側
区分    1段目    2段目    パターン
3-1    3    1    @
3-1    3    1    B
4-1    4    1    @
4-1    4    1    C
4-3    4    3    @A C
4-3    4    3    @ BC
4-3    4    3    均等
5-1    5    1    @
5-1    5    1    D
5-3    5    3    @A  D
5-3    5    3    @  CD
5-3    5    3    @ B D
5-4    5    4    @A CD
 
 
 
入力側(1段目と2段目を入力。区分フィールドは1段目と2段目を関数でつないでいます。区分フィールドで値一覧側と照合します)
1段目    2段目    区分    パターン
5    3    5-3    上の5-3の3つから選びたい
5    3    5-3    上の5-3の3つから選びたい
3    1    3-1    @
5    1    5-1    D
4    3    4-3    上の4-3の3つから選びたい
4    3    4-3    上の4-3の3つから選びたい
 
 
こういう風になっています。
よろしくお願いします。

回答
投稿日時: 20/01/10 15:01:08
投稿者: んなっと

既に回答しましたよ。
 
●中級者向け
  
   A    B C D E F  G    H
1 No. 取引先       No. 取引先
2 101   い       101   あ
3 102   え       101   い
4 103   か       102   う
5              102   え
6              102   お
7              103   か
  
B2
入力規則:リスト▼:元の値:
=OFFSET($H$1,MATCH(A2,$G:$G,0)-1,,COUNTIF($G:$G,A2))
 
参照範囲はそちらで変更しましょう。がんばってください。
最初から具体例を書けば、それに合わせて回答しました。

投稿日時: 20/01/10 15:16:10
投稿者: nice-guy

んなっと さん、回答ありがとうございました。
一度やってみます。
 

回答
投稿日時: 20/01/10 15:26:22
投稿者: んなっと

それからVLOOKUPとリストからの選択を一つのセルで併用することはできません。
その場合は作業列(下の例ではC,D列)が必要です。
 
   A    B   C    D E F  G    H
1 No. 取引先 単独 選択▼    No. 取引先
2 101   あ      あ    101   あ
3 102   え      え    101   い
4 103   か  か        102   う
5 104   き  き        102   え
6                  102   お
7                  103   か
8                  104   き
 
B2
=IF(D2="",C2,IF(COUNTIFS($G:$G,A2,$H:$H,D2),D2,""))
下方向・↓
C2
=IFERROR(IF(COUNTIF($G:$G,A2)>1,"",VLOOKUP(A2,$G:$H,2,FALSE)),"")
下方向・↓
D2
入力規則:リスト▼:元の値:
=OFFSET($H$1,MATCH(A2,$G:$G,0)-1,,IF(COUNTIF($G:$G,A2)>1,COUNTIF($G:$G,A2),0))
下方向・↓

回答
投稿日時: 20/01/10 15:38:25
投稿者: んなっと

それから表形式の具体例を添える理由として、「相手に伝わりやすい」
という点もあります。
 
小さな子供に少し難しめの事項を説明するとき、
「相手の知っているわかりやすい言葉を使う」
「〜でしょ?〜だとどう?と確認しながら進める」
「例えば...、〜みたいな...と、相手の興味のありそうな内容を例にしたり、例え話をしたりする」
...などのことに注意すると思います。
 
相手が大切な存在であれば、上記のことを無意識のうちに行っているはずです。
Q&Aサイトでは、質問者は赤の他人に回答してもらう立場です。
質問内容が回答者に伝わりやすくする努力を惜しまないようにしましょう。

回答
投稿日時: 20/01/10 16:28:35
投稿者: んなっと

これでもいい。
B2
=IF(C2<>"",C2,IF(COUNTIFS($G:$G,A2,$H:$H,D2),D2,""))
C2
=IF(COUNTIF($G:$G,A2)=1,VLOOKUP(A2,$G:$H,2,FALSE),"")

投稿日時: 20/01/11 11:53:57
投稿者: nice-guy

んなっと さん 回答ありがとうございました。
教えていただいた、2つめの回答で、別シートでもうまく動作できるようになりました。
 
質問の仕方の件、以降気をつけます。