[[20090908213425]] 『入力規則 リスト範囲に空白行がある場合』(momo) ページの最後に飛ぶ

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

 

『入力規則 リスト範囲に空白行がある場合』(momo)

 Excel2003
 WindowsXP

 現在、入力規則にリストを利用しプルダウンから選択できるように設定しています。
 その際、範囲の指定に別シートにて名前の定義付けをした範囲名を利用しています。

 名前の定義付けをした範囲名は、別のセルも含めた表一式をエクセルの機能で
 「リスト」として設定し、可変対応になっています。

 このリストで、プルダウン上では"空白"にしたり、内容を変えたり等、
 条件によりに範囲名部分のセル内容を関数で表示するように設定ています。

 ★ここで"空白"⇒プルダウン上では非表示⇒空白行が残らないように詰めて表示

 このように、したいのです。

 現在支障はないのですが、空白行が飛びとびの場合
 プルダウンに表示されるリストも空白行が残った状態で見苦しいです。

 素直に名前の定義付けをした範囲名を、「条件用のリスト」とは別のリストにして
 都度変更すれば良いのでしょうけど・・・。

 ちなみに、「条件用のリスト」内で空白以外のセルにてフィルターをかけたら
 可視セルのみのプルダウン表示になるかと期待したのですが、ダメでした。
 名前の定義付けをした範囲が変わるわけじゃないので、当然ですが。

 「条件用のリスト」の変更のみで、上手く対応できるとスマートだと思ったので
 よろしくお願いいたします。

 (momo)


 (22:36)
 (HANA)様、削除なさった回答についてコメントするのは
 どうかとも思ったのですが、私の質問の内容が良くなかったようで・・・。

 上記の質問の詳細はともかく
 要は、入力規則をリストにて設定(プルダウンにて選択)
 このとき、範囲指定した表中に、空白セルが飛びとびにあると
 プルダウンも空白セル部分が飛びとびの状態で表示されるのが見苦しいので
 空白を無視して詰めた状態でプルダウンの表示をしたい。という事なんですが

 このような事は可能でしょうか?
 下手な質問でお手を煩わせてしまい申し訳ありませんが
 よろしくお願いいたします

 (momo)


 済みません、ご覧になってましたか。

 実は、話が全く分かりません。
 それというのもよく見ると、
 Excel2003を御使用で
 エクセルの機能で「リスト」として設定
 して居られるご様子。

 ↓の事ですよね?
http://www.wanichan.com/pc/excel/2003/05/195.html

 このリスト機能、2003にしかないのですが
 私はこの機能を使ったことが無いんですね。
 (ほとんど2002を使っているので。)

 ですから、その辺りがネックに成っているのかと思い
 一度コメントをしたのですが 削除させて頂きました。

 ただ、
 >このリストで、プルダウン上では"空白"にしたり、内容を変えたり等、
 >条件によりに範囲名部分のセル内容を関数で表示するように設定ています。
 リスト機能でこの様な事が出来るのかどうか 疑問です?

 もしかして、今回の件を考えるにあたり
 「リスト機能」を使って居られると言う事は
 態勢に影響を及ぼさないような事なのか??

 また
 >条件によりに範囲名部分のセル内容を関数で表示するように設定
 を、具体的にどの様になさって居られるのか??
 (リスト機能と関係する事?しない事?)

 単純に考えれば
  別の場所へ数式などで上から詰めて表示し
  その範囲に名前を定義し、入力規則のリスト範囲として
  使用すれば良いのではないか?
 と思うのですが(消した部分にも書いていましたが)

 >素直に名前の定義付けをした範囲名を、「条件用のリスト」とは別のリストにして
 >都度変更すれば良いのでしょうけど・・・。
 「条件用のリスト」と言うリストが既に有る段階で
 それと同じ情報(空白が無いだけのリスト)の範囲に
 入力規則用のリストとして名前の定義をする事を
 スマートでないと思われるなら この方法は駄目かな。。?

 等と、思ったりもします。

 全般的に言えることは、そちらで使って居られるシートと
 同じ状態のシートが作れるだけの情報を
 載せておかれるのが良いと思います。

 すると、読み手が推測しなければ成らない事も
 少なく成ると思うので。

 (HANA)


 HANA様、早速のコメントありがとうございます。
 し、しかも色々と考えて下さったようで恐縮ですが・・・。

 >単純に考えれば
 >別の場所へ数式などで上から詰めて表示し
 >その範囲に名前を定義し、入力規則のリスト範囲として
 >使用すれば良いのではないか?
 >と思うのですが

 そ、その単純な事の方法が分からなかったのです・・・。

 まさに、
 >別の場所へ数式などで上から詰めて表示し

 ここの部分が、どうすれば実現するかが?でした。

 最初の質問の詳細は一旦無視して
 今後、仕様も含め別途考えますので考慮せずに
 改めて、単純に状況を説明しますと

 C列に関数で条件により
 A列が"×"だったら、""(空白文字列)
 そうでなかったら、B列の内容

 この段階では、飛びとびの空白セルがある表(列)になってしまうので

 別の場所に
 空白を詰めた状態の表(列)を作成したいです。
 (連動した形で)

 質問の仕方が悪く
 度々お手数をおかけしますが、よろしくお願いいたします。

 (0:20、加筆しました)

 HANAさま
 色々とアドバイスありがとうございました。
  >別の場所へ数式などで上から詰めて表示し
 これが分かればOKという事に気が付き
 検索方法を変えて、色々と調べた結果
 無事、応用することができ
 希望の仕様に仕上げる事が出来ました。

 ありがとうございました。

 検索にヒットして、このページをご覧の方のために
 参考にしたURLを載せておきます。
  
http://www2.odn.ne.jp/excel/waza/validation.html
  
http://www.excel.studio-kazu.jp/kw/20070307162654.html
[[20070307162654]]『COUNTA方法』(竹鶴) 
  
http://oshiete1.goo.ne.jp/qa4023246.html

 (momo)

 解決された様ですが、リンクの修正がてら
 ご説明を受けて書いてみます。

 現在
 >C列に関数で条件により・・・
 の様にしておられる様ですが ここは入力規則の
 範囲として使用するために作成されていたと思いますので
 以下の説明では削除します。

 その代わり、C列を作業列として使用して
 E列に上からつめてデータを表示します。 

	[A]	[B]	[C]	[D]	[E]
[1]	条件	データ	作業列		リスト
[2]		子	1		子
[3]	×	丑			寅
[4]		寅	3		辰
[5]	×	卯			巳
[6]		辰	5		
[7]		巳	6		

 C2セルに
=IF(A2="×","",ROW(A1))
 E2セルに
=IF(COUNT($C$2:$C$7)<ROW(A1),"",INDEX($B$2:$B$7,SMALL($C$2:$C$7,ROW(A1))))
 として、7行目までフィルドラッグ。

 名前の定義で参照範囲に
=OFFSET(Sheet1!$E$2,,,COUNT(Sheet1!$C$2:$C$7),)

 (HANA)


 HANAさま
 自己解決のコメントを残していたので
 ご回答を頂いてるとは!
 しかも、私が書いたものより短いし
 手順は、ほぼ一緒なのになぁ。。。(汗)

 共有して使うものなので、
 やっぱり、美しい方が良いので
 HANAさんの教えてくださったのを元に
 少し、手直ししてみます。

 ありがとうございました。

 (momo)

 


コメント返信:

[ 一覧(最新更新順) ]


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