本投稿ではスプレッドシートの機能を使ってドロップダウンリストを作ります。
まずはどのようなものなのかを見ていただきましょう。
環境
使用したスプレッドシート → ドロップダウンリスト
シート構成
シート1 ラッシュデュエルデータ
シート2 関数
シート3 販売
このドロップダウンリストについて
要点
1 販売シートのA列にドロップダウンリストを設定しています。
2 販売シートA列のセルに文字を入れて決定すると、ラッシュデュエルデータシートのカード名(A列)を曖昧検索した結果をリスト化します。
3 ドロップダウンリストは関数シートを範囲指定しています。
注意事項
1 途中に空白行があるとうまく機能しません。
2 販売シートに2000行以上データがあると計算スピードが実用レベルに耐えられなくなります。( VLOOKUPの計算が追いつかなくなります。ドロップダウンリストとは関係ありませんが……)
解説
まず、このドロップダウンリストを邪道としたのには理由があります。
1 常に警告が表示されてしまう
2 曖昧検索するために一度入力文字を決定し、再度入力セルを選択しなければならない。
この二つの条件をクリアできなかったため、このドロップダウンリストは邪道と銘打ちました。
ラッシュデュエルデータシート
このシートに数式は含まれておりません。
純粋なデータシートとなります。
関数シート
このドロップダウンリストの肝はこの関数シートにあります。
関数シートのA1セルに入力してある数式
=IFERROR(UNIQUE(FILTER('ラッシュデュエルデータ'!A:A,SEARCH(INDEX('販売'!A:A, COUNTA('販売'!A:A)),'ラッシュデュエルデータ'!A:A))),"")
上記関数のざっくりした動作イメージはこんな感じです。
販売シート
このシートのA列にはデータの入力規制機能を使ってリスト入力範囲を指定しています。
指定範囲
'関数'!A:A
指定方法
最後に
【邪道】スプレッドシートのドロップダウンリストを神がかった使いやすさにする方法はいかがでしたでしょうか?
この投稿はスプレッドシートのドロップダウンリストの解説を探してもあまりいいものがなかったので自分で考えてみようとしたのがきっかけでした。
スプレッドシートのドロップダウンリストには、エクセルのように数式を埋め込むことができないのでこんな風にしか解決策がありませんでした。
今回は入力したセルの値を使ってフィルターをかけましたが、違うセルを使うこともできます。しかし、本当はアクティブセル( 選択中のセル)をフィルターにかけてリスト化したいですね。
しかし、そのためには現状GAS(エクセルのVBAのようなもの)を使ってコーディングをしなければ難しいようです。
まあ、気長にスプレッドシートのバージョンアップを期待しましょう!
0 件のコメント:
コメントを投稿