[[20090612091336]] 『ドロップダウンリストで、空白を無くしたい』(ナカスミ) ページの最後に飛ぶ

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

 

『ドロップダウンリストで、空白を無くしたい』(ナカスミ)

お世話になっております。

現在、ドロップダウンリストを作成しているのですが、タイトル通り空白を無くしたいのです。

例えば、ドロップダウンリストで表示したいデータは10個しか無いのですが、今後増える可能性があるので20行をリストの範囲にしたとします。
その際リストには10個分のデータと、10個分の空白が出来てしまいます。

この空白を無くすために調べているのですが、わからず躓いてしまっています。
どなたか教えて下さると助かります。宜しくお願い致します。

Excel2007、XP


 元の値を =A1:INDEX(A1:A20,MATCH(9^9,INDEX(CODE(A1:A20),0)))
 などとされてはどうでしょうか。
 (ROUGE)

ご回答ありがとうございます。

元の値とは、ドロップダウンリストの入力規則に、ということですよね?
やってみましたが、ごめんなさい。エラーになってしまい、よくわかりませんでした。

現在、入力規則部分には =INDIRECT(N1) と入っていて、N1にはマスタ!B4:B38と入っています。

INDIRECTを使ってN1を参照し範囲をしていしているのは、列が削除された時にB4:B37などと自動的に減らないようにと使っています。

このINDIRECTが問題なのでしょうか?
質問ばかりで、申し訳ありません…。

(ナカスミ)


 別シート参照されているのであれば、INDIRECTである必要がありますね。

 N1="マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(マスタ!B4:B38),0))+3)

 とされたらどうでしょうか。

 シートに数式を埋め込まなくても、名前の定義を使うと見栄えがよくなるかもしれません。
 (ROUGE)

おかげさまで、希望通りに動かすことが出来ました!
ありがとうございます!

ちなみに…教えて頂いたことについてのですが、

最初のマスタ!B4: の後の B、

MATCH( の後の 9^9(構文通りだと、検索値でしょうか?)

最後の+3(検索方法でしょうか?)は、どういった意味なのでしょうか…?

お手数をおかけしますが、教えて頂けたら幸いです…!

(ナカスミ)


すみません…よく見てみたら、上の式のマスタ!B4:B38部分が、列を削除すると消えてしまいます…。

ドロップダウンリスト部分には =INDIRECT(N1)

N1には上で教えて頂いた式を入れたのですが…INDIRECTが無効になってしまっているのでしょうか?

(ナカスミ)


 列を削除って、どこのことですか?
 マスタシートのB列を削除すれば、参照しているので当然のことながら消えますよ?

 > 最初のマスタ!B4: の後の B、
 参照したいアドレスを作成するために、"マスタ!B4:B" までは固定なのでそのように記載しているだけです。

 > MATCH( の後の 9^9(構文通りだと、検索値でしょうか?) 
 そのとおりです。
 リスト範囲で入力されているセルの一番下の場所を特定するために設定しています。

 > 最後の+3(検索方法でしょうか?)は、どういった意味なのでしょうか…? 
 4行目から参照していて、Match関数の戻り値は実際のアドレスと比較すると3不足するために足しています。

 (ROUGE)

すみません、間違えていました。列ではなく、行です。

最初に言った、仮に20行をリストの範囲として選択するというのを、行を削除した時に19行などと減らしたくないので、INDIRECTを使ってN1(マスタ!B4:B38)を参照していました。
そうすると行を削除してもB38が変わることはなかったので…。

ですが、教えて頂いたものだと空白は消えるのですが、行の削除時にB38の部分が減っていってしまうので困っています。

各解説、ご丁寧にして頂いてありがとうございました!

(ナカスミ)


 なるほど。
 だとすれば、数式にその要素を持ち込みましょう。

 N1="マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(INDIRECT("マスタ!B4:B38")),0))+3)

 ....................................
 ....................................
 ....................................、、、直接 元の値に 
 =INDIRECT("マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(INDIRECT("マスタ!B4:B38")),0))+3))
 と入力してしまいませんか?
 (ROUGE)

出来ました!
ありがとうございます!

ROUGEさんに指摘されたとおり、

=INDIRECT("マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(INDIRECT("マスタ!B4:B38")),0))+3))と入力していたり、

N1="マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(INDIRECT(マスタ!B4:B38)),0))+3)と、""を忘れていたり、

また新たにN2に マスタ!B4:B38 と入れて、
=INDIRECT("マスタ!B4:B"&(MATCH(9^9,INDEX(CODE(INDIRECT(N2)),0))+3))とし、範囲を参照しようとしたり…

そんなことを繰り返しておりました…。

貴重なお時間を割いて頂き、本当にありがとうございました!とても助かりました!

(ナカスミ)


コメント返信:

[ 一覧(最新更新順) ]


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