メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

ドロップダウンリストで以前使用した項目を隠すにはどうすればよいですか?

Author Xiaoyang Last modified

Excelでは、標準的なドロップダウンリストを作成することは一般的なデータ入力技術ですが、選択するたびにドロップダウンリストが短くなっていくようにしたい場合はどうすればよいでしょうか?以前に選択された項目を削除して、各オプションが一度しか選べないようにしたい場合です。例えば、100個のユニークな名前を持つドロップダウンリストがあるとします。1つの名前を選択すると、その名前はドロップダウンの選択肢から削除され、99個のオプションが残ります。選択を続けるにつれて、リストは自動的に縮小し、最終的にオプションがなくなるまで続きます。このようなインタラクティブな機能は、タスクの割り当て、座席配置、または抽選など、すべての選択が一意である必要があるシナリオで非常に役立ちます。ただし、Excelはこの機能を直接提供していないため、特定の回避策を採用する必要があります。次のセクションでは、これを実現するためのステップバイステップの手順を紹介します。

ヘルパーカラムを使用してドロップダウンリストで以前使用した項目を隠す


arrow blue right bubble ヘルパーカラムを使用してドロップダウンリストで以前使用した項目を隠す

列Aに名前のリストがあると仮定します(下のスクリーンショット参照)。以前使用した項目を隠すドロップダウンリストを設定するには、以下に記載されている内容を順を追って行ってください。このアプローチは、すでに選択された項目を追跡し、動的なドロップダウンソースリストを構築するために追加のヘルパーカラムを使用します。この方法は複雑に見えるかもしれませんが、直感的でプログラミングスキルも必要ありません。

適用されるシナリオには、スケジュール管理、リソース割り当て、または項目がリストが尽きるまで1回しか選ばれないべきケースが含まれます。利点は、フォーミュラを通じて明確さがあり、トレース可能なロジックを持っていることですが、ワークシート上に追加のカラムを維持する必要があります。

sample data

名前のリストの横にあるセルB1に、以下の数式を入力して、目的のドロップダウン範囲で名前が既に選択されているかどうかを確認します:

=IF(COUNTIF($F$1:$F$11,A1)>=1,"",ROW())

この数式は、各名前をドロップダウンで選択されたもの(範囲 F1:F11)と比較します。もし名前が既に選択されていた場合、空白セルを返します。それ以外の場合、行番号をヘルパー値として返します。必ずF1:F11の範囲をドロップダウンリストを配置する場所に合わせて調整し、A1の参照を名前のリストの場所に合わせてください。

apply a formula to list series

注意: 'F1:F11' の範囲がすべてのドロップダウンセルを含んでいることを再度確認してください。'A1' は名前のリスト内の現在の行を指している必要があります。

2. フィルハンドルをドラッグして、この数式を名前のリストのすべての行に適用します。これにより、未使用の名前を識別する一連のヘルパー結果が生成されます。

fill the formula to other cells

3. 列Cで、セルC1に別のヘルパー数式を設定して、未使用の名前のみを含むクリーンなリストを動的に作成します:

=IF(ROW(A1)-ROW(A$1)+1>COUNT(B$1:B$11),"",INDEX(A:A,SMALL(B$1:B$11,1+ROW(A1)-ROW(A$1))))

この数式は、列Bのヘルパー値に基づいて列Aから適切な項目を抽出することによって、未使用の名前を集めます。名前が選択されて列Bから削除されると、列Cのリストは自動的に更新されます。リストが11名以上の場合、すべての範囲を適切に調整してください。

apply another formula to list cell values

4. この数式をコピーして、元の名前のリストと同じ長さになるようにします。塗りつぶす範囲は、列Aのリストと同じ長さにする必要があります。

fill the formula to other cells

5. この動的に更新されたリストをドロップダウンで使用可能にするために、名前付き範囲を定義します。列Cで新しく作成されたリスト(例:C1:C11)を選択し、[数式] > [名前の定義] をクリックします。

define a range name for the new data

6. [新しい名前] ダイアログボックスで、名前(例:namecheck)を入力し、この動的参照数式を使用して、名前付き範囲を正しいサイズに保ちます:

=OFFSET(Sheet2!$C$1,0,0,COUNTA(Sheet2!$C$1:$C$11)-COUNTBLANK(Sheet2!$C$1:$C$11),1)

これにより、列Cの空白でない値のみがドロップダウンのオプションとして使用されます。シート名とセル参照を慎重にチェックし、正確なアドレス形式を使用して、自分のワークシートに一致させます。

set options in new name dialog box

注意: 名前のリストを変更したり、行を追加または削除したり、異なるワークシートを使用する場合、エラーを防ぐために数式を適切に更新してください。

7. 実際のドロップダウンリストを作成するには、ユーザーが選択を行うセル(例:F1:F11)を選択します。次に、[データ] > [データの入力規則] > [データの入力規則] に移動します。

click Data Validation

8. [データの入力規則] ダイアログボックスで、[設定] タブの下で「リスト」を選択し、「=namecheck」と入力して、定義した動的な名前付き範囲を参照します。

set options in Data Validation dialog box

[OK] をクリックして終了します。ドロップダウンで名前が選択されるたびに、それは他のドロップダウンリストから除外され、すべての選択肢が一意であることが保証されます。同じ名前を別のセルで選ぼうとしても、その名前はもうオプションとして利用できないことがわかります。

result of hiding previously used items in dropdown list

ヒント: ヘルパーカラム(列BとC)を削除したり上書きしたりしないでください。これらはドロップダウンリストが正しく更新されるために不可欠です。ワークシートを整理しながら機能を損なわないようにするには、これらのカラムを非表示にすることを検討してください。リストの更新に問題がある場合は、範囲の不一致や、すべてのデータ入力規則リンクが正しいか確認してください。また、指定された名前付き範囲を参照しているかどうかも確認してください。

このアプローチの制限は、多くのユーザーが同時に選択を行う場合(例えば共有ワークシートの場合)、競合が発生する可能性があることです。より高度でスケーラブルなソリューションを求める場合や、ワークシートの煩雑さを減らしてこのタスクを自動化する場合、VBAを使用することをお勧めします。次のセクションではこの代替案を紹介します。



関連記事:

Excelでドロップダウンリストを挿入するには?

Excelで画像付きのドロップダウンリストを作成するには?

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得