- ベストアンサー
スプレッドシートのプルダウンリスト
Googleスプレッドシートで、プルダウンリストを作成する際、同じ列内で同じ選択肢を使用できないようにしたいです。 例えば、リストに、りんご,ぶどう,みかん,バナナとあり、 一度りんごを選択して入れば、次のリストには、ぶどう,みかん,バナナのみが表示される、といった内容です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Googleでもエクセルでも、質問のままの設定はないだろう。 ーー そこで、エクセルVBAでやってみた。 Sheet1のF列(どこの列でもよいが、セルの削除でデータの位置が崩れるので、他にこのF列を使わないこと)に a b c d e f g h i j とアイテムを入れておく。 ーー Sheet1のA列の入力規則でA1:A10を、データーデータの入力規則ーリストー =$F$1:$f$10ーOK Sheet1のChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1:A10"), Target) Is Nothing Then MsgBox "A列データ" Application.EnableEvents = False x = Target r = Range("F1:F10").Find(x).Row MsgBox "F列の" & r & "行にあり" Range("F" & r).Delete Application.EnableEvents = True End If End Sub を入れる。確認用なので、テストが終わればMsgbox行は削除のこと。 これでA列の入力規則を使うと、だんだんと、今まで使ったアイテムはリストに出なくなっていくだろう。 もしトラブったら標準モジュールに下記を作って実行する。 Sub test01() Application.EnableEvents = True End Sub 質問者の発想の通りをVBAにしたが、際物(キワモノ)のような気がする。 ーー Gogleスプレッドソートの、Google Apps Scriptプログラミングではどうなるか、勉強するのもたいへんだ。お勧めしない。 ーー その他に (1)COUNTIFで2件目以降に、入力規則のしくみで、同じ値が選択されたらエラーにする。 (2)アイテムの値を数字化して、ダブらないようにセルに数字で入力しておいて、入力完了後別列に、VLOOKUP関数で元のアイテムに戻す。 数字の方がダブりのチェックがしやすいと思うから。 などの方法を、使ってはどうか。
- skydaddy
- ベストアンサー率51% (388/749)
B1: =if(countif(A1:A4,"りんご")=0,りんご,"") B2: =if(countif(A1:A4,"ぶどう")=0,ぶどう,"") B3: =if(countif(A1:A4,"みかん")=0,みかん,"") B4: =if(countif(A1:A4,"バナナ")=0,バナナ,"") B1~B4に上記の式を入れ、A1~A4を選択するリストを設定すると、選ばれた選択肢がB列のセルに表示されなくなるのでリストから消えます。