• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010 入力規則のリスト自動対応)

Excel2010 入力規則のリスト自動対応

keithinの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

こんにちは。 「名前の定義を利用して可変範囲を取得する」「名前定義を経由して,計算させた範囲を入力規則の元ネタにする」などの,基本テクニックは理解されているということですね。 さて。 いま「部署名」を関数を使って名前定義なさっていますが,そもそも部署名のセル範囲(A1:G1)を可変で計算させなきゃならないほど「部署数の増減(や部署名の変更)が頻繁にある」のですか? ごく一般的に考えると,次のように作成します。 A1「総務部」,B1「経理部」…G1「営業第二部」まで7部体制となっている。各部にぶら下がるメンバー(及び人数)には増減入れ替えがあるので,自動追従させたい。 名前の定義: 名前  部署名 参照範囲 ='リストデータ'!$A$1:$G$1  (固定範囲に対して定義) 名前  総務部 参照範囲 =INDIRECT("'リストデータ'!$A$2:$A$"&(COUNTA('リストデータ'!$A:$A)-1)) 名前  経理部 参照範囲 =INDIRECT("'リストデータ'!$B$2:$B$"&(COUNTA('リストデータ'!$B:$B)-1)) 以下同文で「営業第二部」までそれぞれ個別部署名で名前定義を作成します データシートのA列には入力規則のリストで =部署名 とします データシートのB列には入力規則のリストで =INDIRECT(A6) のようにします。

malixiang
質問者

お礼

早速の回答、ありがとうございます。 はい、おっしゃるとおり部署名は可変させるほどありませんので 回答者様のとおり変更しました。 各部署の名前の定義の参照範囲ですが「入力した数式は正しくありません。」と表示され OKをクリックすると、=INDIRECT("'リストデータ'!$A$2:$A$"の$A$の部分が反転しました。 $Aにしてみてもやはりエラーになってしまいました。。。

malixiang
質問者

補足

NO.1の回答者様 名前の定義の参照範囲の設定出来ました。 しかし、リスト選択の表示がでなくなってしまいました。

関連するQ&A

  • 3連動以上する、可変リスト作成方法

    縦横可変リストをつくりました(エクセル技道場を参考) (一行目に部署名が入っていて、その下に所属の部員名といったリストをもとに、入力規則を使ってA列に部署名をリストから入力、B列にはA列に入力された部署に所属する部員をリストから入力。しかも部署名も氏名も可変範囲) 名前定義 部署3 参照範囲「=OFFSET($A$1,0,0,1,COUNTA($1:$1))」      氏名  参照範囲「=OFFSET(リスト2!$A$2,0,MATCH(!$A2,部署3,0)-1,COUNTA(OFFSET(リスト2!$A:$A,0,MATCH(!$A2,部署3,0)-1))-1,1)」 別シートのA列・B列に入力規則を設定で、AB列連動になりました。 C列(さらにDE・・)も可変リストで連動させることができるでしょうか。教えてください。 ちなみに以下の方法で試しました。 部署+氏名(企画課佐藤)で名前定義。(それぞれ名前定義していく) C列入力規則、参照範囲「=INDIRECT(A1&B1)で3連動のリストができるのですが、部署+氏名の名前定義を可変にする、例えば「=OFFSET(リスト1!$A$2,0,0,COUNTA(リスト1!$A:$A)-1,1)」 エラーがでます。参照範囲を可変にしないと「=リスト1!$A$3:$A$9」だとOK。 参照範囲の設定がわるいのか関数の使用方法がわるいのか、可変リストにするのが無理なのか、わかりません。 なにか、他に良い方法があれば、教えてください。よろしくお願いします。

  • 名前の定義を使ったリストを動的に

    Excel2003を使っています。 「=OFFSET(Sheet2!$B$2,,,COUNTA(Sheet1!$B:$B)-1)」という形で名前の定義を行います。 入力規則のリストにこの名前を指定することで、後でSheet2にデータを付け加えても修正する必要のない動的なリストを作ることができますよね。 それともう一つ、入力規則のリストに「=INDIRECT(A1)」と指定することで、A1セル内に書かれてある文字の名前を指定したことになり、リストとして扱えますよね。 この二つの組み合わせはできないのでしょうか? 「=OFFSET(Sheet2!$B$2,,,COUNTA(Sheet1!$B:$B)-1)」に「名前1」とつけたとし、Sheet1のA1セルに「名前1」と記入し、B1セルの入力規則に「=INDIRECT(A1)」を指定してもエラーとなってしまいます。 「=OFFSET(Sheet2!$B$2,,,COUNTA(Sheet1!$B:$B)-1)」という形でいくつか動的なリストを作り、Sheet1のA1セル内を書き換えることでB1セルのリストが動的に変わるということをしたいのですが上手くいきません。 「=OFFSET(Sheet2!$B$2,,,COUNTA(Sheet1!$B:$B)-1)」ではなく、「=Sheet2!$B$2:$B10」のように固定してしまえば上手くいくのですが、これだとデータを付け加えるたびに修正しないといけません。 二つを組み合わせてリストを使う方法はありませんか?

  • 別シートデータからの重複のない入力規則リスト作成

    エクセルで、入力規則のリスト作成に関してご教示ください。 別シートにて、以下のようにC列にデータがあります。 データ数は可変です。 A列 B列 C列 No 種別 データ 1 A データA 2 A データA 3 A データA 4 A データB 5 C データC 6 A データB 7 C データB     :     : 上記データを使用して、入力規則で、リスト作成をしたいのです。 =OFFSET(シートA!$A$2,0,0,COUNTA(シートA!$A:$A)-1,1) 上記式を名前定義して、リストに設定した場合には、重複したリスト表示が されてしまします。 名前定義を使ってどう設定すれば、重複をしないリストづくり可能でしょうか。

  • エクセルの入力規則 リスト

    お世話になります。 入力規則でリストで選択し、その選択した値によって動的に次の入力リストの中身の変更を行いたいのですが上手く記述できないのでお願いします。 具体的に言いますと シート2を値を管理するシートとし、シート1を用意し シート2に アルファベットリスト(中身:A,B,C,D) Aリスト(中身:あ,い,う,え,お) Bリスト(中身:か,き,く,け,こ) Cリスト(中身:さ,し,す,せ,そ) Dリスト(中身:た,ち,つ,て,と) と命名したセルを用意します。 シート1のA列でアルファベットリストを入力規則のリストで呼べるようにします。 ここまでは出来るのですが シート1のA列でCを選択した場合B列ではCリストの「さ、し、す、せ、そ」を選択できるようにしたいのです。 Aであれば「あいうえお」Bであれば「かきくけこ」と絞りたいのですが上手くできないのです。 質問の内容がわからない場合申し訳ありません、質問頂ければお答えしますので宜しくお願い致します。

  • 入力規則-リスト選択で,リストの頭の行から表示させたいのに。

    1シート目に入力規則-リスト選択したいセルがあり, 2シート目にあるデータから選択するため,名前-定義で「行」に名前をつけて,範囲設定した。 ↓ 入力規則設定では空白を無視にチェックしてみたのですが・・・ 1シート目でプルダウン?(▼)で選択しようとすると,窓には2シート目リストの入力のない行(空欄)がデフォルトとして表示されてしまいます。 ↓ リストの先頭行から表示されるようにするにはどうしたら良いでしょうか?そのような技がありましたら教えて下さい。 (「行」を範囲選択するのがマズイでしょうか?行が増えても1シート目の範囲を設定し直さなくて良いかな,と思って行を範囲設定してみました。) ちなみに,Offset関数(?)は全くわかりません。

  • Excel(エクセル) 名前定義をしたリストから、indirect関数を利用して選択入力できるようにしたいのですが… 

     次のようなことができず困っています。  Sheet1とSheet2があり、Sheet2には"数字"、"英語"と名前定義された2つのリストがあります。Sheet1のセルA1には"数字"か"英語"どちらかの文字列を選択入力し、B1には、もしA1に"数字"を入力していればリスト"数字"から、もし"英語"を入力していればリスト"英語"から選択入力できるようにしたいのです。つまり、Sheet1のセルA1、B1の入力規則の種類をリストとして、元の値をそれぞれ、    ・Sheet1!A1には=数字,英語    ・Sheet1!B1には=indirect($A1) としています。 質問(1)) ここまでなら何の問題もないようですが、問題はSheet2の"数字"と"英語"の参照範囲です。    ・"数字"の参照範囲は=Sheet2!$A$1:$A$10,Sheet2!$C$1:$C$10    ・"英語"の参照範囲は=Sheet2!$B$1:$B$10,Sheet2!$D$1:$E$10 と複数範囲におよんでいる場合、Sheet1!B1にはうまくリストが表示されません。解決法、およびなぜ表示されないのか、どなたかご教示お願いいたします。 質問(2)) Sheet2の"数字"と"英語"の参照範囲を    ・=OFFSET(Sheet2!$A$1,,,COUNTA(Sheet2!$A:$A))    ・=OFFSET(Sheet2!$B$1,,,COUNTA(Sheet2!$B:$B)) とした場合も同様にSheet1!B1にはうまくリストが表示されません。こちらの方も解決法と表示されない理由をお願いいたします。

  • エクセル リストの連動について教えてください。

    エクセルの入力規則のリストを連動させて使用させたいのですが上手くできないのでご教授願いたいと思います。 まず、A1に食材の分類(野菜、肉など)をリストで選択できるようにしてあります。 A1の結果によってB1に食材(人参、玉ねぎなど)をリスト表示したいのですが、 (別シートに分類ごとにセル範囲に名前を付けてあります) 元の値を=indirect(A1)とするとエラーが出ます。 (A1には先に入力してあります) 食材のセル範囲の名前をoffsetを使って定義しているのですが (確認しましたが関数自体は間違っていません) offsetを使っているとエラーになるようなのです。 (A1:A5のようにセル範囲名前を定義しているときはちゃんと出来ます。) いろいろ調べましたが名前の定義、リストの連動の仕方自体は間違っていないと思うのですが・・・ 連動させるときはセル範囲をoffsetなどを使って可変にすると出来ないのでしょうか?

  • excel2003 vba の入力規則リスト

    入力規則でリスト登録する記述について、教えていただけないでしょうか。 例えば変数(long)で、a=1,b=5 というものがあったとします。 シート1のA1セルに、1,2,3,4,5 でそれぞれ数値選択できる入力リスト を作成したいのですが、うまくいきません。どのように修正したらよいか教えて欲しいです。 Dim a As long Dim b As long a=1 b=5 With Worksheets("Sheet1").Range("A1").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=a, Formula2:=b End With だと、何も設定されません。

  • 【Excel】入力規則のリスト表示について

    教えて下さい! Excelで入力規則のドロップダウンリスト「A」「B」の2つを作り、 「A」で選んだ内容によって、「B」で選択できる内容を変化させたいと 考えています。 INDIRECT関数を使用し、内容を変化させることは出来るようになったのですが 「A」を選択し直すと、「B」にすでに入力されているデータが一度クリアされ 空白の状態からリストを選択し、文字を入力するにはどうしたらよいでしょうか?

  • 一つの列に2つの入力規則を使いたい。

    B列にはプルダウンで選択するために入力規則で、リストで名前定義を使っているのですが、 また 「そのB列に隣接するA列のセルに何か入力されてないと、 B列に入力できない」 「=入力規則のユーザー設定、COUNTA(A1)=1」 とういう2つのことをしたいです。 でも、入力規則は1つしか出来ないですよね? こうゆう場合はどうすればいいのでしょうか? マクロでしょうか? よろしくお願い致します。