シートRanges
:
シートWork
:
シートではRanges
、細胞中でA1:A5
のは言う私はいくつかの値を持っている、聞かせて:One
、Two
、Three
、Four
、Five
。セルB1
には、次の数式があります。=ARRAYFORMULA(transpose(if(Work!$A1<>"";$A$1:$A$5;"")))
これは、シートB1:F1
内のセルA1
がWork
空でないかどうかに基づいて、上記の値でセルを埋めます。
次に、セルB1:F1
を選択し、塗りつぶしハンドルを使用して、範囲をカバーするように選択範囲を下にドラッグしましたB1:F10
。これにより上記の範囲がコピーされましたが、各行はシートの対応する行に依存するようになりましたWork
。
基本的に、別のシートの特定のセルが空でない場合にのみ入力されるデータ範囲のリストを作成しました。
最後に、シートWork
にB1
ドロップダウンリストを使用してセルのデータ検証を追加しました。Ranges!B1:F1
これが何をするかの値を使用して、このセルのドロップダウンリストを作成している:One
、Two
、Three
、Four
、Five
しかし、セルが場合にのみ、A1
非空であります!
今私の質問のために-私はこのデータ検証をフィルハンドルで他の行(1-10)に伝播したいのですが、ドロップダウンリストがそれぞれ異なるセル/行に依存するようにします。ただし、フィルハンドルは、いずれの場合も最初の行から検証ルールをコピーするだけです。(2番目の図では、列に空のセルがある行でもA
、値のあるドロップダウンが残っていることがわかります。
いずれの場合も、データ検証ルールのセル範囲を手動で変更せずに、これを伝播するにはどうすればよいですか?
誰もより良いものを提案しなかったので、コメントからの私の解決策でそれを締めくくります。各セルのデータ検証を個別に設定するスクリプトを使用しました。実際のシートはこの例とはかなり異なり、全体を書き直す必要があるため、コードを投稿していません。
このソリューションは理想からはほど遠いものです。主な理由は、構文と関数のグーグルに時間を費やす必要があり、誰もが自分のシートにスクリプトを入れたいとは限らないからです。しかし、どうやらこれ以上良いものはありません。
フィルハンドルがExcelで必要なことを実行することは言及する価値があります。このシートをExcelで作成し、Googleスプレッドシートで開いてみましたが、その過程でデータ検証ルールが失われたり壊れたりしたことに失望しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加