[[20200510222202]] 『プルダウンリストの作成について』(RIO) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『プルダウンリストの作成について』(RIO)

下記のような表をプルダウンで作成したい。

A列     B列    C列
会社名  注文品名  伝票名

・各会社から注文があるときに作成する表なのですが、間違いが

 多いのでプルダウンから選択したい。伝票名は注文品の正式名称となる。

今現在、いろいろ調べて1.2.3のリストを作成。

1.会社名 A社    B社    C社

2.注文品 A-1    B-1    C-1
     A-2    B-2    C-2
     A-3    B-3    C-3

3.伝票名 A-1あいう B-1あいう C-1あいう
     A-2かきく B-2かきく C-2かきく
     A-3さしす B-3さしす C-3さしす

会社名で「A社」を選択すると、注文品の欄で「A−1、A−2、A−3」
のリストから、伝票名では「A-1あいう、A-2あいう、A-3あいう」

という表を作成したい。
会社名のリスト入力は、元の値に「=A1:C1」で作成できる。
注文品から、元の値に「=INDIREC(A2)」と入力すると、プルダウンリストには、関数がそのまま入っていて、それをクリックするとその行しか反映しない。

例:A社を選択するとプルダウンには「=INDIREC(A2)」となっておりクリックすると「A-1あいう」が反映される。
「B-1」を選択すると「B-1あいう」のみ反映。cも同様。

どうしたら、全リストがプルダウンリストにのりますか?
詳しく教えてください。よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


INDIRECTでは?
(mm) 2020/05/12(火) 09:36

 「=」を全角から半角。んで、INDIREC「T」。
(GobGob) 2020/05/12(火) 10:14

すみません。文章では、「T]が抜けていますが、実際は入っています。
(RIO) 2020/05/12(火) 21:31

=INDIRECT($A$2)で表示されましたが、
 >例:A社を選択するとプルダウンには「=INDIREC(A2)」となっており
 >クリックすると「A-1あいう」が反映される。
それだと、コピーしてTを入れても反映されませんでした。名前定義をどうされているかわかりませんが、
データの入力規則で=INDIRECT()としてから()内にカーソルを入れて直接A2をクリックして入れてみてください。
わかりにくいですが、(GobGob)さんがおっしゃっているように半角にしないとできません。
(檸檬) 2020/05/12(火) 22:30

 こんな変な書き方の質問だと良く解らない。
 手抜きしないでもう少しまともにレイアウト書けませんかね。
 文章でどこに何が入ってとか読むのは疲れる。
 大体、A2に何が入っているのか書いてない。
(BJ) 2020/05/13(水) 01:56

おはようございますごめんなさい〜

>直接A2をクリック

すると絶対参照になってだめですね。表になることを忘れてました。

伝票名は注文品の正式名称なら 
プルダウンしたら関数で自動的に入るようにしたほうがいいかも
しれませんが

>どうしたら、全リストがプルダウンリストにのりますか?

ここだけ、

会社名のリスト入力は、元の値に「=A1:C1」で作成できる。なら
A1からA列の範囲を選んで 名前定義の[選択範囲から作成]で上端行にチェックを入れてOK.

A社   
A-1    
A-2    
A-3    
A-1あいう 
A-2かきく 
A-3さしす 

B列・C列も同じく。それぞれA社・B社・C社と名前がつきます。
A2にA社と入ると=INDIRECT(A2)でA社と名前のついた範囲が連動します。
(檸檬) 2020/05/13(水) 06:16


ありがとうございます。
名前の定義とINDIRECTを何度やってもダメ。会社名はうまくいくのですが、「注文品」や「伝票名」のリストは、空白になり選ぶことができません。

新しいBook開いて新しく打ち直してもうまくいきません。
プルダウンってむずかしいのですね。
(RIO) 2020/05/13(水) 22:38


 RIOさんの説明で確信を持てるのは、会社名がA1:C1に入っていることだけです。

 注文品と伝票名はどこに入っているんですか? 
 単純に解釈すると下図ですけど合っていますか

 行  ____A____  ____B____  ____C____
  1  A社       B社       C社     
  2  A-1        B-1        C-1      
  3  A-2        B-2        C-2      
  4  A-3        B-3        C-3      
  5  A-1あいう  B-1あいう  C-1あいう
  6  A-2かきく  B-2かきく  C-2かきく
  7  A-3さしす  B-3さしす  C-3さしす

 そこさえ明確なら回答者にとっちゃ楽勝です。

 ただ、本当にそんな単純な矩形範囲なんですかねぇ。
 実務ではちょっとありそうもない気がしますが。

(半平太) 2020/05/13(水) 23:01


質問がわかりにくくてすみません。
今作成しているのは。。。

入力したい表は、

列:  A    B   C
  会社名  注文品  伝票名

横3列の表で、Sheet2にリストを作成

半平太さんが書いている感じです。
会社名の下に、注文品のリスト、その下に伝票名を入力しています。
名前の定義を、伝票名をどうしたらいいのかわからない。
伝票名のところにも(段の一番上に)会社名を入れるべき?

会社名はプルダウンできました。(A1:C:1で)
注文品までどうにかできましたが、表の
途中からリストボタン?(三角)を押しても何も出ない。
表は10行まで作成。
ドラッグでコピーしたのでダメなのかと思い、一段づつ設定したのですが、空白で動かない。

伝票名の設定まではできていません。

(RIO) 2020/05/13(水) 23:25


 >名前の定義とINDIRECTを何度やってもダメ
 ↑の説明がないから、どこで躓いているのかわかりません。
 INDIRECT(A2)のA2は選択したA社・B社・C社に応じたセル範囲を指定する内容となります。
 それには「名前」がよく使われるようですが、アドレスを指定すればよいので、例えば ↓のような数式でもOKです。
 関数(INDIRECT)とプルダウンの仕組みの理解に努めてください。
 理解できればそう難しくもないです。

  _____ _________ __________ __________ __________ __ _________ ______________ _________________________________________
 |_____|____A____|_____B____|_____C____|_____D____|_E|____F____|_______G______|____________________H____________________|
 |___1_|1.会社名  A社       B社       C社          1.会社名  A社           =$B$1:$D$1
 |___2_|2.注文品  B4:B6      C4:C6      D4:D6         2.注文品  A-2            =INDIRECT(HLOOKUP(G1,$B$1:$D$3,2,0))
 |___3_|3.伝票名  B8:B10     C8:C10     D8:D10        3.伝票名  A-3さしす      =INDIRECT(HLOOKUP(G1,$B$1:$D$3,3,0))
 |___4_|          A-1        B-1        C-1
 |___5_|          A-2        B-2        C-2                     ↑プルダウン   ↑リスト:元の値の数式
 |___6_|          A-3        B-3        C-3
 |___7_|
 |___8_|          A-1あいう  B-1あいう  C-1あいう
 |___9_|          A-2かきく  B-2かきく  C-2かきく
 |__10_|          A-3さしす  B-3さしす  C-3さしす

(チオチモリン) 2020/05/13(水) 23:41


 >名前の定義を、伝票名をどうしたらいいのかわからない。
 >伝票名のところにも(段の一番上に)会社名を入れるべき?
今日はお休みだったのでやってみました。
そのやり方だと A-1あいう に A-1 と名前をつけることになるのですが
名前に記号(ハイフンなど)は使えないようです。
Sheet2!E2:F10 に対応表をつくり
表をそのまま利用したらExcelが親切にアンダーバー(_)に変換してくれました。

 h ttp://office-qa.com/Excel/ex209.htm

 でもB2に入っているものを名前にしないと連動しないので
 例えば
 Sheet2!E1:F10に   
注文名	 伝票名
A-1	A-1あいう
A-2	A-2かきく
A-3	A-3さしす
B-1	B-1あいう
B-2	B-2かきく
B-3	B-3さしす
C-1	C-1あいう
C-2	C-2かきく
C-3	C-3さしす
として
 Sheet2!E2:F10の範囲を選択して対応表と名前をつける。

 Sheet2!E1:F10の範囲を選択して[選択範囲から作成]より
上端行にのみチェックを入れOKで参照範囲 =Sheet2!$E$2:$E$10 注文名 
               参照範囲 =Sheet2!$F$2:$F$10 伝票名と名前がついています。

 Sheet1のC2 データの入力規則 リスト					
元の値 =OFFSET(INDEX(伝票名,MATCH(B2,注文名,0)),0,0,COUNTIF(注文名,B2))

ーーー

伝票名のところをプルダウンにしないでSheet1のC2に

 =IF($B2="","",VLOOKUP($B2,対応表,2,FALSE))とかにしておけば入力の手間がはぶけます。

ーーー

 >ドラッグでコピーしたのでダメなのかと思い、一段づつ設定したのですが、空白で動かない。
 データの入力規則でA2の元の値 =Sheet2!$A$1:$C$1
 データの入力規則でB2の元の値  =INDIRECT($A2)
 データの入力規則でC2の元の値  =OFFSET(INDEX(伝票名,MATCH(B2,注文名,0)),0,0,COUNTIF(注文名,B2))

 Sheet1の A2:C2 がきちんと表示されたら、
一旦表示を全部クリアしてA2:C2を選択して下へフィルコピー。

(檸檬) 2020/05/17(日) 13:05


 私も同じようなことをやっているので参考にさせてもらいましたが
 >データの入力規則でA2の元の値 =Sheet2!$A$1:$C$1
 データは何も入っていないのになぜそこを指定するのですか。
 >データの入力規則でC2の元の値  =OFFSET(INDEX(伝票名,MATCH(B2,注文名,0)),0,0,COUNTIF(注文名,B2)) 
「指定した名前の範囲は見つかりません。」とエラーメッセージが出て設定できません。
 会社名はどこで指定するのでしょうか。

 私のやり方が間違っているのでしょうか。

(KLY) 2020/05/19(火) 17:11


 はっきり言って、質問者がちゃんとしたレイアウトを書かないから、
 どこに何があるのか誰も解らないのが現状だと思います。
 だから各人、レイアウトを想定して書いているのでセルのアドレス等は違うのでは?

 私は1度注意書きしたのに、まともなレイアウトを一向に書こうとしないこういう手抜き質問にあれこれ考えるのは面倒でしませんけど。
(BJ) 2020/05/19(火) 17:50

(KLY)さんへ

 >データは何も入っていないのになぜそこを指定するのですか。
 入力したい表は、
 列:  A    B   C
  会社名  注文品  伝票名
 横3列の表で、

 Sheet2にリストを作成
 半平太さんが書いている感じです。とあったので

 A2はSheet1!のA2のことで
 会社名の下です

 >データの入力規則でA2の元の値 =Sheet2!$A$1:$C$1
 リストで  =Sheet2!$A$1:$C$1 にはA社B社C社が入ってますよね?
(ここは名前定義してもアドレス指定してもどっちでもいいので)
 チオチモリンさんのようなA列は入れてません。

 >会社名はどこで指定するのでしょうか。
 Sheet1!のA2です。

 >半平太さんが書いている感じです。
 感じ。。。なので本当はどうだかわかりませんが。。。

 >データの入力規則でA2の元の値 =Sheet2!$A$1:$C$1は
  データの入力規則でSheet1!A2の元の値 =Sheet2!$A$1:$C$1 です。

 >データの入力規則でC2の元の値
 >=OFFSET(INDEX(伝票名,MATCH(B2,注文名,0)),0,0,COUNTIF(注文名,B2))
はSheet1!のC2です。

 >会社名はプルダウンできました。(A1:C:1で)
 >注文品までどうにかできました
 とあったのでSheet1!B2には触れてなかったのですが
 データの入力規則でSheet1!B2の元の値 =INDIRECT($A2) です。

 >データの入力規則でA2の元の値 =Sheet2!$A$1:$C$1
 >データの入力規則でB2の元の値  =INDIRECT($A2)
 >データの入力規則でC2の元の値  =OFFSET(INDEX(伝票名,MATCH(B2,注文 
 >名,0)),0,0,COUNTIF(注文名,B2))
 >Sheet1の A2:C2 がきちんと表示されたら、
 です。
 >一旦表示を全部クリア
 値をDelete

 >「指定した名前の範囲は見つかりません。」
 念の為
 A社	 =Sheet2!$A$2:$A$4
 B社	 =Sheet2!$B$2:$B$4
 C社	 =Sheet2!$C$2:$C$4
 注文名	 =Sheet2!$E$2:$E$10
 伝票名	 =Sheet2!$F$2:$F$10

〜〜〜
蛇足ですがSheet1!B2に入るA-1以下をA_1としてもいいなら名前定義で
=INDIRECT($B2)でもC2にA-1と入るのですが。。。
あと、私のやり方だとSheet1!C2には一個しか出てきません。
A-1とA-1あいうでは絞り込みようがないですから。

Sheet1!C2に
A-1あいう
A-2かきく
A-3さしす
と出す意味がわかりませんが、それならチオチモリンさんの提示された式を参考にされたらいいと思います。
あ、これは(RIO)さんに対して言っていますが。。。

(檸檬) 2020/05/19(火) 23:48


 訂正
 >蛇足ですがSheet1!B2に入るA-1以下をA_1としてもいいなら
 蛇足ですがSheet1!B2に入るSheet2!のA-1以下をA_1 A_2としてもいいなら
 >=INDIRECT($B2)でもC2にA-1と入るのですが。。。
 Sheet1!C2の入力規則で
 =INDIRECT($B2)でもC2にA-1あいうと入るのですが。。。

 記号が入ってなければ簡単だったんでしょうね

 >Sheet1!C2に
 >A-1あいう
 >A-2かきく
 >A-3さしす
 >と出す意味がわかりませんが、
もう一度読み直したら
 >「B-1」を選択すると「B-1あいう」のみ反映。
 あ、ちゃんと書いてありましたね。。。失礼しましたm(_ _)m
 Sheet2!E1:F10に   
 注文名	 伝票名
 A-1	A-1あいう
 A-2	A-2かきく
 A-3	A-3さしす
 B-1	B-1あいう
 B-2	B-2かきく
 B-3	B-3さしす
 C-1	C-1あいう
 C-2	C-2かきく
 C-3	C-3さしす
と対応したリストを作ればいいのですが。。。
(檸檬) 2020/05/20(水) 13:16

 >「B-1」を選択すると「B-1あいう」のみ反映
 私案も修正しときます。
  _____ _________ __________ __________ __________ _ _________ ______________ ___________________________ _____________________________________________________________________________________________
 |_____|____A____|_____B____|_____C____|_____D____|E|____F____|_______G______|_____________H_____________|______________________________________________I______________________________________________|
 |___1_|1.会社名  A社       B社       C社         1.会社名  B社           リスト:元の値の数式 →    =$B$1:$D$1
 |___2_|2.注文品  B4:B6      C4:C6      D4:D6        2.注文品  B-1            リスト:元の値の数式 →    =INDIRECT(HLOOKUP(G1,$B$1:$D$3,2,0))
 |___3_|3.伝票名  B8:B10     C8:C10     D8:D10       3.伝票名  B-1あいう      リスト:元の値の数式 →    =INDEX(INDIRECT(HLOOKUP(G1,$B$1:$D$3,3,0)),MATCH(G2,INDIRECT(HLOOKUP(G1,$B$1:$D$3,2,0))))
 |___4_|          A-1        B-1        C-1
 |___5_|          A-2        B-2        C-2                    ↑プルダウン                               ↑リスト:元の値の数式
 |___6_|          A-3        B-3        C-3
 |___7_|
 |___8_|          A-1あいう  B-1あいう  C-1あいう
 |___9_|          A-2かきく  B-2かきく  C-2かきく
 |__10_|          A-3さしす  B-3さしす  C-3さしす

(チオチモリン) 2020/05/20(水) 16:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.