『縦横可変範囲の名前定義でリスト作成』(とも) 8:00   8:30   9:00   9:30  10:00  10:30 8:30   9:00   9:30  10:00  10:30  11:00 9:00   9:30  10:00  10:30  11:00  11:30 9:30  10:00  10:30  11:00  11:30 10:00  10:30  11:00  11:30 10:30  11:00  11:30 11:00  11:30 11:30 1行目は、開始時間のリストで 2行目以降は、終了時間のリストです。 仮にこのシートを「リスト」シートとします。 リストのシートとは別のシートのAM列に開始時間をリスト入力出来る様にし、 AN列にはその開始時間を見て、終了時間がリスト表示されるようにしたいのです。 例)開始時間をリストから「10:00」で入力したとしたら   終了時間のリストには「10:30、11:00、11:30」がリスト表示される 終了時間のリストの登録の仕方が間違っているのか、 入力規則の設定が間違っているのか、 AN列の方だけエラーが出てリストが全く表示されません(;_;) 何かお気づきの点があれば誰か教えて下さい。お願いします。 ---- 多分、上記のような条件でしたら、複数列は必要ありません。 具体的にどのような数式で可変範囲にしているかがわかりませんが、 シート「リスト」を次のようにします。 A 1 8:00 2 8:30 3 9:00 4 9:30 5 10:00 6 10:30 7 11:00 8 11:30   入力規則を設定するシートを仮に「出勤簿」としますと、 メニュー「挿入」「名前」「定義」で、 「名前」を仮に「終了時間」(この名前はナンでもいいのですが、) 「参照範囲」を「=INDIRECT("リスト!A"&MATCH(出勤簿!$AM$1,リスト!$A$1:$A$8,0)+1&":A8")   入力規則でリストの「元の値」を「=終了時間」とします。 AM1に入力した時間に対応した終了時間が表示されます。 (KAMIYA) ---- ありがとうございます。 さっそくやってみたのですが、入力規則を設定しOKボタンを押すと 「元の値はエラーと判断されます」と出ます。 あと、シート「リスト」を複数シートに使用したい場合は どうしたら良いですか?? ---- ともさん、遅くなりました。 「元の値はエラーと判断・・・」は「名前定義」で入力した 参照範囲を示す数式がうまく働いていない状態です。 つまり、入力規則ではなくて、名前定義の時点で入力ミスがあるはずです。 さきに私が示しました数式はあくまで例ですので、そのままコピペしても 役に立ちません。ともさんの使用しているシート名やセル範囲に 部分部分をあわせてあげる必要があります。 もし、直し方がわからない場合には再度レスお願いします。   >シート「リスト」を複数シートに使用したい場合は この質問はどのように使うのかがわからないとはっきりした答えは 出せません。最初の質問の利用の仕方を他のシートでも同様にできるか、 ということでしょうか。それとも他の用途としてリストを利用するとい うことでしょうか。この点についてもレスをお願いします。 (KAMIYA) ---- わざわざありがとうございます(≧□≦) 名前定義の参照範囲は、一応私が使用してるシート名・セル範囲に 合わせたはずなのですが・・・間違っているのでしょうか?駄目みたいです。 ちなみにシート「リスト」にリストがあります。 範囲はA2:A31 です。 リストを利用するシートは「梅新」で、 AN列に終了時間を入力できるようにしたいのですが・・・ これと同じ用途で、複数シートにこのリストを利用したいと思っています。 何度もすいませんが、お願いします!! ---- 確認しました。 INDIRECTではひとつのセルの入力規則では有効ですが、 複数のセルでやろうと思うと都合よくないみたいですね。 以下、2行目からであると想定しています。 「AN2を選択した状態で」名前の参照範囲を下記のように変更してみてください。 複数セルで使う場合はOFFSET関数のほうが良いようです。 =OFFSET(リスト!$A$2,MATCH(梅新!$AM2,リスト!$A$2:$A$31,0),0,30-MATCH(梅新!$AM2,リスト!$A$2:$A$31,0),1) 入力規則については前述の通り。   ただ、「名前」はブック単位で定義されるため、他のシートで同じように入力 規則を設定してしまうと、梅新シートのAN列しか参照しなくなるため、 少し工夫が必要です。 複数シートで利用する場合には梅新シートを必要数シートそのものを コピーしてシート名を変更して利用してください。そうすることでシート 単位の定義された名前として有効になります。 現存するほかのシートがある場合、内容を梅新シートのコピーへ移し変えて 利用するようにしてください。 (KAMIYA) ---- ありがとうございます!!! 出来ました!出来ました!! でも問題が・・・ 私にはなんでか分からないのですが、 AN列の31行以上に入力規則を設定しようとすると、 やっぱり同じエラーが出ます。 どうしてでしょう??? ---- (小数誤差の問題)---推測です。 リストシートのリスト、あるいは、AM列の時間が フィルドラッグ/シ リアル値の演算で求めた値だとそのような可能性はあります。 時間シリアル値は現実には誤差を含んだ小数でドラッグなどでの 定率/定数計算で誤差が拡大します。 先にあげた参照範囲の数式で、「MATCH(梅新!$AM2,リスト!$A$2:$A$31,0)」 の部分は「完全一致」のみ検索対象となるので、誤差が少しでもある場合、 不一致とみなされ、リストがエラーになるのではないかと推測します。   「完全一致」ではなく「検査値 以下の最大の値」にすれば、表示される時間が 所期のものと比べリストに30分前のものが表示される場合もありますが、エラー になる確率は低くなるはずですが・・・。   =OFFSET(リスト!$A$2,MATCH(梅新!$AM2,リスト!$A$2:$A$31,1),0,30-MATCH(梅新!$AM2,リスト!$A$2:$A$31,1),1)   ちなみに、こちらのテストではリストシート、ならびにAN列が双方とも手入力 の場合は「完全一致」でうまく動作しているみたいです。また、AM列のリスト からの選択がどのように設定されているかがわかりませんが、入力規則のリス トでリストシートのA2:A31の値を参照して入力するようなら、問題ないようです。   要は、AM列にリストシートの値が確実に入るようにする、 AN列のリスト選択でもリストシートの値を参照するようにするということで うまく動くはずですが・・・。 (KAMIYA) ---- おお(*゜ロ゜)人(゜ロ゜*) 出来ました!!!ありがとうございます。助かりました☆ またなんかあったときはお願いします! (とも)