重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

スプレットシートの入力規則がわかりません。

エクセルで、シート2に以下のようなリストを作成しています。
トヨタ   ホンダ    ニッサン
ノア    ステップワゴン   セレナ
クラウン    フィット   エルグランド


シート1で
A1は、入力規則で「社名」を選択するようにしています。

A2に入力規則で=INDIRECT($A1)と入力しているので、
A1が何も選択されていなければ、ここはリストが出てこずに、
例えば「トヨタ」が選択された場合は、「ノア・クラウン」という
リストが表示されるようになっています。

(ここから質問になります)
これを、スプレットシートに変換しましたところ、
A1に「トヨタ」を選択しても、「A2」にリストが表示されません。
リストは表示されないものの、
「ノア」と手動入力すれば反映され、セレナと入力すると
”入力規則違反”となります(トヨタなので)

スプレットシートでも同じようにA2には A1で選択されたリストが表示されるように
したいのですが、

教えて頂けませんでしょうか。

質問者からの補足コメント

  • すみません不足していました。
    シート2のリストは、
    トヨタ
    ノア
    クラウン

    この「ノア・クラウン」のセルを選択して、
    左上の名前ボックスに「トヨタ」と入力しています。

    スプレットシートが全然わからないので、
    詳しく教えて頂けると助かります・・・。スミマセン

    No.1の回答に寄せられた補足コメントです。 補足日時:2025/05/08 11:05
  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (2件)

こんにちは



ご提示のエクセルでの方法は、(説明には記述がありませんが)「名前の定義」を利用した方法だと思います。
そのあたりの仕組みについては、質問者様十が分に理解しているものと仮定しての回答になります。

スプレッドシートの場合は、同様の設定は「名前付き範囲」ですが、これは同様に事前に指定されているものとします。
簡単に試してみましたが、スプレッドシートでは入力規則で式による範囲指定はうまくいかないようです。
INDIRCT関数のドキュメントを見てみると、IMPORTRANGE関数を利用すれば可能かも知れません。
https://support.google.com/docs/answer/3093377?s …
(面倒なので試していないため、できるかどうかは確認していません)
一方で、OFFSET関数や配列等でリスト範囲を指定してみても、無効扱いされるようですので、関数や配列によるリスト設定は許容していないのかも知れません。


以下は、代替案になってしまいますが、「作業用のリスト」を利用すれば、ご質問の動作を実現可能です。
「作業用のリスト」はどこでも良いですし、邪魔であれば非表示にしておいても良いです。
仮に、ご提示のA1、A2セルのあるシートのC列を利用するものとします。
・C1セルに
  =INDIRECT(A1)
 の式を入力しておきます。
これにより、A1セルの値に応じて、それに対応するリストが下方にスピル表示されます。
(A1セルの値が変更されれば、リストの内容も変わります)

・A2セルの入力規則の範囲指定は、上記により固定にできるので、
  =C1:C2
 に設定しておけば良いことになります。

これにより、ご質問の機能を実現できますが、A1セルをクリアすると作業リストがエラー値となってしまい、A2セルの選択肢にエラー値が表示されてしまいます。
これが嫌であれば、リスト用の式を
 =iferror(INDIRECT(A1),"- ")
等としておくことで、選択肢には「-」が表示されるようになります。
(""や" "でも良さそうなのですが、「無効」と判断されてしまいますね)


※ ご質問には関係ありませんが、No1様もご指摘のように名前の定義を利用しなくても、同様の入力規則の設定は可能です。
    • good
    • 0

関数を使わなくても簡単にできる方法がありますが



>NDIRECT($A1)
sheetが違うのであれば$A1では駄目です。sheetを指定しなければ
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!