• ベストアンサー

Excelの入力規則について

Excelの入力規則について教えてください。 A1:A20に入力規則を設定します。 入力値の種類にリストを選び、元の位置で、北海道、青森、岩手、山形・・・と都道府県名を20件ほど入力し、設定が完了したとします。 A1セルでドロップダウンして、岩手を選び、次のA2のセルでドロップダウンした時、岩手をリストから消しておきたいのです。 つまり、リストから選んだものは、次のセルでドロップダウンした時、常に消えておくことができるように設定したいのですが、良い方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.1

こんにちは~ リストを2つ作ってもよければ、次の方法を試してみてください。 A1:A20を空白の状態にしておいてください。 元のリストが J1:J20 にあるとします。 K1に =IF(COUNTIF($A$1:$A$20,J1),"",ROW()) と入れて、K20までフィルコピー( 1から20の数字が入ります ) 同じリストをたとえば H列につくるとします。 H1に =IF(COUNT(K:K)<ROW(A1),"",INDEX(J:J,SMALL(K:K,ROW(A1)))) と入れて、H20までフィルコピー J列と同じリストができたと思います。 A1:A20の入力規則のリストを、この H列の方で指定してください。 リストが目障りでしたら非表示にしてもかまいません。

purepop
質問者

お礼

返事遅くなり申し訳ございません。 すごいです。できました。 簡単なことかと思いましたが、こんなに難しい関数が入っているとは、・・・。 私には、絶対できませんでした。 本当に教えていただき、ありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 私もちょっと試しに考えてみました。 混乱させないように、#1 さんの回答のデータの位置関係をそのまま利用させていただきます。 H1:~H20まで =IF(COUNTA($J$1:$J$20)>=COUNTA($A$1:$A$20)+ROW(A1),INDEX($J$1:$J$20,SMALL(ISERROR(MATCH(ROW($A$1:$A$20),MATCH(INDIRECT("A1:A"&COUNTA($A$1:$A$20)),$J$1:$J$20,0),0))*ROW($A$1:$A$20),COUNTA($A$1:$A$20)+ROW(A1)),),"") 配列数式なので、一旦式を入力したら、F2を押して、『ShiftとCtrlを押しながらEnterキー』を押して、再確定してください。 入力規則のリスト位置は、「$H$1:$H$20」です。 また、範囲の変更は、置換で行ってください。また、ROW()関数内部の範囲は、$A$1から始るということになっていますので、ご注意願います。 なお、今回、あくまでも、数式はプロセスよりも解本位であり、配列により1列で出せることを示しただけに過ぎません。

purepop
質問者

お礼

ご連絡遅くなり申し訳ございません。 質問した内容が、私にとってこんなに難しい内容のものであったとは、全く分かりませんでした。 骨を折っていただき、本当に感謝しています。 やってみます。 回答をいただいたお二人に、心を込めて!

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

No.1です。 入力規則のリストを設定するとき、データの入力規則ダイアログの<元の値>の欄には、 =$H$1:$H$20 ではなく、 =INDIRECT("H1:H"&COUNT(K:K)) という数式を入れてください。 ※No.1の最初の数式が K列、2番目の数式が H列に入っていれば、です。 H列、K列以外の列に数式を入れた場合は、上の数式の H、K をその列記号に変えてください。 <元の値>に =$H$1:$H$20 のように入れてもできますが、これだとよけいな空白ができて、ちょっとウザイです。 ※おわかりかとは思いますが、No.1の数式も、セル位置・列記号などは実際の表に合わせて、変更すべきところは変更してくださいね( J1 とか、 K:K とか、J:J とかです )。 ただし、2番目の数式の ROW(A1) の (A1) は変えないでください。

purepop
質問者

お礼

いろいろな作り方があるのですね。 回答いただいたshiotan99さんは、関数の達人ですね。 私も、回答いただいたようになりたいですけど、 私の能力では、到底追いつけないようです。 でも、教えていただいた内容をペイストすれば、作成できます。 また、分からない事があったら、教えてください。 よろしくお願いします。

関連するQ&A

  • Excel VBA:エクセルのマクロで入力規則を設定する際のアラートの扱いがわからず困っています

    エクセルでINDIRECTを使った入力規則設定をマクロで行う際の、アラートの扱いがわからず困っており、お教えいただけると幸いです。 例えば、A列に日付、B列にその日付に行った都道府県名、C列にはB列で選択した都道府県に属する自治体名を入れる場合を考えます。 そのために、  ・北海道、青森、…という具合に都道府県名のリストに、あらかじめ『都道府県名』と言う名前をつけたものを作成しておく。  ・洞爺湖、阿寒湖、釧路、…という北海道の自治体名リストにあらかじめ『北海道』と言う名前をつけたものを作成しておく。  ・弘前、八戸、十和田、…という青森県の自治体名リストにあらかじめ『青森』と言う名前をつけたものを作成しておく。   :(以下同様) と言う準備をしたあと  -B列の入力規則ダイアログボックスで、入力値の種類を『リスト』、元の値として『=都道府県名』とすることでドロップダウンリストから都道府県名を選ぶことが出来ます。  -C列の入力規則ダイアログボックスで、入力値の種類を『リスト』、元の値として『=INDIRECT(B1)』とすることでドロップダウンリストから自治体名を選ぶことが出来ます。   C列の規則を設定する際にB列にまだ都道府県名が入っていない場合は『元の値はエラーと判断されます。続けますか?』と言うアラートが出ますがOKを押して続行。 とすれば、C列のドロップダウンリストでB列で選択した都道府県に属する自治体名が選べることになります ここまでは、教科書などにも書いてある内容なので問題はないのですが、これをマクロ化すると問題が発生します。 上記の入力規則の設定をマクロで記録し、実行すると  『実行時エラー'1004'.アプリケーション定義またはオブジェクト定義のエラーです。』 が発生します。エラーの起こっている場所はC列の入力規則定義部分の .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:="=INDIRECT(B1)" のようです。 B列に都道府県名が入った状態ではエラーとはならないので、マクロ記録時に『元の値はエラーと判断されます。続けますか?』が出てOKとした部分が 何らかの問題となっているとは思うのですが、対処方法がわからずに困っております。 ちなみに、On Error Resume Nextを入れておいたとしても、エラーでマクロが中断されることはなくなりますが、入力規則の設定は行われないので対処方法にはなりません。 質問が長くなり恐縮です。 コピーペーストなどで入力規則の設定が消えてしまうことがあるので、ブックの立ち上げ時に入力規則の再定義をしたいと考え、このような質問となりました。 対処方法おわかりの方、ご教授いただけると大変助かります。 なお、環境はwindowsXP、excel2003です。 よろしくお願いいたします。

  • エクセルの入力規則

    エクセルで入力規則を使って行き先を入力しています。リスト項目は時々増える事があるので、事前に下の方に空きセルも少し範囲に設定していますが、これだと、ドロップダウンリストの下の方が表示されてしまします。これをリストの上のほうから表示出来るように設定出来ないものでしょうか。又、ドロップダウンリストの表示範囲(枠?)の長さを変更する事は出来るのでしょうか? エクセルは2003です。

  • エクセルの入力規則

    エクセル2007の入力規則で、リストを設定したのですが、 リストのドロップダウンメニューが出てきません。 他の入力規則は設定されるのですが、リストだけがどうしても・・・ ただ、リスト以外の値を入力するとエラーが表示されるので、リストの入力し規則は生かされているようです。 分かる方、教えてください。

  • 入力規則で入力値の種類がユーザー設定の状態で…

    Excel2010の入力規則で入力値の種類がユーザー設定の状態でドロップダウンリストを表示する方法を探しています。 あるセルで特定の文字の禁止や、特定セルが空欄の時の入力禁止、文字数制限などで入力規則を設定しています。 ここれを入力もできてドロップダウンリストも選べるようにしたいのですが、入力規則で入力値の種類を「ユーザー設定」にしている場合「リスト」を作成出来ず困っています。 入力値の種類はユーザー設定のままで関数を使用してドロップダウンリストをだせるようにする方法はないでしょうか?

  • EXCELのデータの入力規則について

    EXCELのデータの入力規則の設定で入力をドロップダウンリストから選択するようにしたのですが、ドロップダウンリストの文字が小さく、大きくしたいのですができません。アドバイス宜しくお願い致します。

  • EXCELの入力規則ユーザー設定

    EXCELの入力規則ユーザー設定で、特定のセルに 0、10、20、30、40、50だけの入力を許可したい。 ドロップダウンリストで選択する方法はわかっていますが、ユーザー設定でやる方法があれば教えてください。

  • [Excel2000]セルの入力規則→リストのセルから出るドロップダウンリストが小さ過ぎなのは?

    エクセル2000での質問です。 [ツールバー]→[データ]→[入力規則]→[リスト]のセルから出るドロップダウンリストが 小さ過ぎるのはなぜでしょう? 入力規則を設定したセルも、設定時の元の値のセルでも書式を変更してみたのですが、 ドロップダウンリストは大変小さく変更されません。 ドロップダウンリストの書式(フォントサイズ)を変更する方法をご存知の方が おられましたらどうぞご教授ください。 お願いいたします。

  • エクセルでのデータ入力規則

    お世話になります。早速エクセル操作(設定)いついて教えてください。 やりたいことは、例えば国内の全都道府県の市町村を選び出し、その市町村の照会文を表示させたいわけです。 まずはセルA1で都道府県名を選ぶためにデータ入力規則を設定します。設定タブから入力の種類をリストに設定し、A1セルの横に出る▼で予め登録していた都道府県名を選ぶようにします。 次にセルA2ではA1で選んだ都道府県の市町村名だけをを同様な入力規則設定をして▼で表示させたいのです。最終的にはセルA2で選択した市町村を紹介したファイル(エクセル、ワード)にハイパーリンクで飛ばせたいのです。うまく表現できなくて申し訳ないのですが、現在は『紹介』というフォルダ内に都道府県別のフォルダを作成し、それぞれの都道府県フォルダの中に市町村フォルダを作り、さらにその中に、紹介文や写真などのファイルを保存しています。これをエクセルシート上で行いたいのです。このOKwaveでカテゴリ選択する時と同じような選択ができれば最高と思うのですが・・・。以上よろしくお願いします。

  • エクセル 入力規則について

    皆さん教えてください。 いまドロップダウンのリスト作成しました。初めて作成しました。 私が作成した方法は あまっているセルに下の数値を入力しました。 250 500 750 1000 1250 1500 ... ... 5000 ドロップダウンを作りたい場所を選んで⇒データ⇒入力規則⇒リスト⇒別枠で作った数値をクリックして作成しました。 なんとかドロップダウンで作成できました。  完成したエクセルの該当場所をクリックすると、 ドロップダウンの窓が小さいのです。 表示されて見える数字が 上から、3500 3750 4000 4250 4500 4750 5000だけでした。 使用頻度が高いのが250~2000くらいです。 まぁ、右横のスクロールバーで上に戻せばいいのですが、面倒なので、なにかよい方法はないかとおもました。 私の希望は 1)ドロップダウンの表示されている窓を並べ替えをする又は ドロップダウンの窓を縦に大きくしたいのですがどうすればいいでしょうか? 2)願わくば、年寄りが多いので、ドロップダウンの文字も大きく出来るといいのですが方法はありますか? お知恵をお借りしたいです。 分かりやすいURLもあれば尚助かります!!

  • Excel 入力規則のリストについて

    入力を簡略化するため、入力規則からドロップダウンリストを作成しました しかし小さくて選びにくい・・・(それでも簡略化はできてます) ▽を押すと、大きいリストが出るようにできないでしょうか?

専門家に質問してみよう