[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2つの入力規則[リスト]の連動』(じゅん)
入力規則のリストを2つのセルに適用して
1つ目のセル(リスト-1)でグループAか、グループBを選択
2つ目のセル(リスト-2)で
(グループAを選択した場合)→a1,a2,a3から選択
(グループBを選択した場合)→b1,b2,b3から選択
というように順序だてて選択できるようにしたのですが
リスト-2を選択した後にリスト-1を変更すると、
「グループBのa1」などの、あり得ない組み合わせが表示
されてしまいます。
これを防ぐ、あるいは警告を表示させる方法はあるでしょうか。
よろしくお願いいたします。
じゅん
設定に問題があるのではないでしょうか? 名前の定義は「絶対参照」でなさいましたか?
具体的に数式などご提示いただいたほうが間違っている箇所が 洗い出せると思いますよ?
(Ohagi)
シート2に次のような表をつくっています。
A B a1 b1 a2 b2 a3 b3
AからBの範囲を「グループ」 a1からa3の範囲を「A」 b1からb3の範囲を「B」 と、それぞれ名前の定義を行いまいした。
シート1の リスト-1(A1セル)の入力規則の元の値は =グループ リスト-2の入力規則の元の値は =INDIRECT(A1) としています。
よろしくお願いいたします。
じゅん
コチラは、ちゃんと動きますよ? 名前の「A」が全角半角等の違いかな… Aからa3までを選択して、挿入→名前→作成→「上端行」にチェック で、名前定義してみて下さい
(Ohagi)
すみません。 質問の仕方が悪かったかもしれません。 リストの連動は、とりあえずうまくいきます。
けれども、リスト-1→リスト-2と選択し終わった後、作為的にまたリスト-1を 変更した場合、Bグループのa1というような、あってはならない組み合わせが できてしまいます。 (例 A→a1と選んだ後、リスト-1のAを Bに変更する) これを防ぐ手立てを教えていただきたかったのですが。 おそらくOhagiさんのエクセル上でも同じ現象が現れると思いますが・・・
よろしくお願いします。
入力規則ですから、仕方ないと思いますよ? お望みの動作なら、HLOOKUPで抽出すれば良いのではないでしょうか… リスト-2を選択する手間、ありえない組合せの表示 がなくなります
(Ohagi)
ありがとうございます。
すみませんが、具体的にどのようにすればいいかわかりません。
出来れば2つのリストをつかいたいのですが。 そして2つめのリストの選択肢は1つめのリストで選んだモノに対し共通するものが 多いのです。
例 シャツを選択→(S,M,L)から選択 ズボンを選択→(S,M,L) から選択 (選んだアイテムに関わらずサイズの選択肢(S,M,L)は共通)
最終的には選択終了後にそれぞれの単価が表示されるようにしたいので 同じMサイズでも、シャツなのか、ズボンなのか、を区別する 必要があるのです。
(じゅん)
サイズの選択肢は、共通なのですよね? 連動させたリストで選ぶ必要が無いように思いますが… 単価を抽出する際の計算をIF関数で、「ズボン」「シャツ」と区別させる もしくは、単価を「ズボンM」などとして、検索値「A1&B1」としてはダメですか?
最初の質問のように、リスト2のボックスをリセットするなら 多分、マクロでやら無いと無理だと思います…
(Ohagi)
<追加> 最初のご質問内容でしたら、「リスト2の項目がありえない組合せ」の時に 「条件付書式」や「IF関数」で、リスト2の値が誤りだと分かるように 色を変えたり、何か表示を出させるのも一つの手かと…
ちょっとワケがあり、このような形式にこだわっています。 <追加>でご指示頂いたようにエラー表示させるのが理想です。 しかし、IF関数などを使用する際、 入力規則の設定内容を数式の中で表す必要があると思うのですが、 方法がよくわかりません。 申し上げたように、リスト-2の選択肢は各アイテム間で 共通するものが多く、単純にリスト-1とリスト-2の選択肢の 文字列(ある部分の)の一致を求める わけにはいきません。 リストの参照先となるセル範囲を用いて、エラー表示 させられないか、と感じているのですが・・・。
例えば リストの参照先となるセル範囲が、あるシート上にあるか、 そうでないか、ということを調べる関数はあるでしょうか?
(じゅん)
リスト1:シャツ リスト2:M と入力されていたものを リスト1:ズボン とリスト1を再入力したときに、リスト2に表示されたままになっている M というデータが、リスト1で指定したアイテムに対応するリストから選択されたものかどうか、 を判定したいのだと思いましたが、シャツに対応するリストにもMがあり、ズボンに対応する リストにもMがあるのなら、判定は難しいように思うです。ズボンに対応するリストに Mはない、のであれば、 COUNTIF(ズボンに対応するリスト,リスト2を表示しているセル)で 対応するリストにあるかないかがわかると思います。
再選択の場合に、前回入力したものを空白に戻すのなら、VBAはどうでしょう? 色々ケースが考えられると思うのですが、 リスト1を再入力した場合に、リスト2のセル内容がクリアされる。 便宜上、リスト1はA列で選択し、リスト2はC列の同じ行で選択するものとする。 として、考えてみました。 シートタブを右クリックし、コードの表示を選択。でてきた画面の右側白い部分に 以下を貼りつけて、×をクリックしてウィンドウを閉じます。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub Cells(Target.Row, 3).ClearContents End Sub
1がA列 3がC列を指してますので、適宜変更してください。 (かなれっと)
衝突…☆ 以下、そのまま記入
重複するものがあっても、それぞれの製品に対応する「一覧表(リスト2の選択肢)」を作成 リスト1で選択されたものの「一覧表」の中に、無ければ「間違い」 あれば何も表示無し…のように すればよいのではないでしょうか?
=IF(COUNTIF(INDIRECT(A1),B1)<1,"間違い","")
(Ohagi)
>かなれっとさん >Ohagiさん
どうもありがとうございます。 お二人の方法どちらも試させて頂きました。 どちらも有効だと思いますので、両方組み込んでみたいです。 おそらくこれで解決した、と思いたいのですが、 またもし壁にぶつかったらよろしくお願いします。 (たぶんぶつかると思います・・ ^^;)
本当にどうもありがとうございます。 (特にOhagiさん、長い間付き合っていただいて 感謝しております。)
(じゅん)
いえいえ…どういたしまして(*^_^*) DSLightが注文できたはずなのにキャンセルメールがきて 先ほどまで、落ち込んでおりました… でも、お言葉を頂いて立ち直れましたぁ〜♪ヽ(^。^)ノ
(Ohagi)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.