フッターコンテンツにスキップ
EXCEL ツール

Excelで重複を強調表示する方法: 完全なステップバイステップガイド

作成者: Iron Software

Excelのドロップダウンリストは、データ入力を一貫性のある正確なものに保つための最も実用的なツールの1つです。 誰でもセルに何でも入力できる手動入力に頼る代わりに、ドロップダウンリストは入力可能な内容を承認済みのオプションセットに制限します。 ドロップダウンリストは、セルに入力されるデータが有効であることを保証し、データ入力時のエラーを最小限に抑え、不整合な値を修正する必要をなくします。 プロセスは簡単です: セルを選択し、矢印をクリックしてオプションを選ぶだけです。

Microsoft Excelのデータ検証ツールは、すべてのドロップダウンリストを駆動します。データ検証機能は、セルの入力を事前定義されたリストに制限し、利用可能な最も人気のあるデータ検証ツールオプションの1つです。 ドロップダウンリストは、データを整理し、各セルに入力可能な数を制限することにより、全体的なユーザーエクスペリエンスを向上させます。これは、有効なデータのみがセルに入力されるべき注文入力やHRフォームのような反復作業において特に価値があります。 ドロップダウンリストを使用すると、データ入力プロセスを効率化し、ユーザーにとってより迅速で効率的になります。

このガイドでは、Excelでのドロップダウンリストを作成するすべての方法を説明しています: カンマ区切りリストとして直接入力されたシンプルなドロップダウンリスト、ソースデータとしてセル範囲や名前付き範囲を参照する方法、自動更新が可能な動的ドロップダウンリストを作成する方法、依存するドロップダウンリストの作成、入力メッセージとエラーメッセージの設定の追加、既存リストの管理方法。 .NETでExcelファイルを生成する開発者は、IronXLがプログラム的にデータ検証をどのように処理するかを示すセクションを最後に見つけることができます。

方法1: 入力されたリストからシンプルなドロップダウンリストを作成する

最適なシナリオ: ほとんど変更されない短くて固定されたリスト。

Excelでドロップダウンリストを作成するには、リストを配置したいセルを選択し、データタブに移動してデータ検証をクリックし、許可ボックスでリストを選択し、ソース範囲を指定するかカンマで区切った項目を手動で入力します。 Excelのドロップダウンリストでは、アイテムを手動で入力することも、セル範囲を参照することも可能です。

ステップ:

  1. ドロップダウンを希望するセルまたはセル範囲を選択します。
  2. リボンでデータタブをクリックします。
  3. データツールグループで、データ検証をクリックします。 データ検証ダイアログボックスが開きます。
  4. 許可ボックスで、ドロップダウンメニューからリストを選択します。
  5. セル内ドロップダウンチェックボックスが表示されます。 セルにドロップダウンメニューを有効にするには、セル内ドロップダウンオプションをチェックする必要があります。
  6. ソースボックスをクリックし、オプションをカンマ区切りのリストとして入力します。例えば: Electronics,Furniture,Software,Services
  7. OKをクリックします。

小さな矢印がセルに現れます。 クリックすると、すべてのドロップダウンオプションを示すドロップダウンメニューが開きます。 ユーザーは、ドロップダウンが含まれるセルをコピーして、そのまま他の場所に貼り付けることができ、このドロップダウン機能を維持できます。これは、同じリストを他のセルに速く適用する方法です。

ラベルに先頭のスペースを含めたい場合を除き、カンマ区切りのリスト内のカンマ後にスペースを避けてください。 "North America, EMEA"とすると、" EMEA"と先頭スペースが表示されます。

スクリーンショットの提案: 設定タブがアクティブなデータ検証ダイアログボックスを表示し、許可ボックスにリストがあり、ソースボックスにカンマ区切りリストがある。 注文フォームデモファイルを使用して、ターゲットセルをバックグラウンドで選択する必要があります。

方法2: セル範囲からドロップダウンリストを作成する

最適なシナリオ: 多数の項目を含むリストや同じソースデータが複数のセルで再利用される場合。

ソースデータとしてセル範囲を参照することは、アイテムを手入力するより柔軟です。 ソース範囲を更新すると、すべての接続されたセル内のドロップダウンオプションも更新されます。

  1. リストアイテムを列に入力します。理想的には別のシート(例:"Lists"と名付けたシート)に入力します。
  2. ドロップダウンを希望するセルを選択します。
  3. データタブ > データツールグループ > データ検証を選択。"
  4. データ検証ウィンドウで設定タブで許可ボックスで**リストを選択**します。
  5. ソースボックスをクリックして、リストシート上のセル範囲を選択します。 Excelは、範囲参照を自動的に入力します。例えば: =Lists!$A$3:$A$7。
  6. OK をクリックします。

検証基準によりそのソース範囲からのみ有効なデータの入力が制限されます。 左上の名前ボックスには現在のセルアドレスが表示され、適切な参照が選択されていることを確認するのに役立ちます。

ソース範囲では常に$記号付きの絶対参照を使用してください。 =A3:A7をドル記号なしで使用すると、その上に行が挿入された場合にずれてしまいます。

スクリーンショットの提案: ソースボックスに範囲参照がある状態でのデータ検証ダイアログボックスを表示し、下部にListsシートタブが見えること。 注文フォームデモファイルを使用します。

方法3: ソースとして名前付き範囲を使用する

最適なシナリオ: 複数の場所で使用されるドロップダウンリスト、またはソースデータが別のシートにある場合。

名前付き範囲は、セルのグループに記憶に残る名前を割り当て、ソースボックスにセルアドレスの代わりに使用できます。

  1. リストアイテムを選択し、名前ボックスをクリックして名前(例: ProductCategories)を入力し、Enterキーを押します。
  2. ドロップダウンを希望するセルを選択し、データタブ > データ検証に進みます。
  3. 設定タブで、許可ボックスでリストを選択し、ソースボックスに=ProductCategoriesと入力します。
  4. OKをクリックします。

これにより、検証リストの管理が容易になります。 名前付き範囲は、INDIRECT関数と組み合わせることで依存ドロップダウンリストも可能にします(方法5で説明)。

スクリーンショットの提案: 名前ボックスに入力された範囲名と、データ検証ソースボックスに表示された=ProductCategoriesを示す。

方法4: 入力メッセージとエラーメッセージを追加する

最適なシナリオ: 他の人が記入する共有ワークブックやフォーム。

ユーザーは、ドロップダウンリスト付きのセルをクリックしたときに表示される入力メッセージを追加して、何を選択すべきかをガイドできます。 Excelを使用すると、データ検証ダイアログ内でカスタムエラーメッセージの構成が可能です。

入力メッセージ:

  1. データタブ > データ検証を開きます。
  2. データ検証ダイアログボックスで入力メッセージタブをクリックします。
  3. セルが選択されたときに入力メッセージを表示するをチェックし、以下のフィールドにタイトルとメッセージを入力します。
  4. OKをクリックします。

誰かがそのセルをクリックすると、ツールチップとして入力メッセージが表示され、選択をガイドします。

エラーメッセージ:

  1. データ検証ダイアログボックスのエラーメッセージタブをクリックします。
  2. エラーメッセージ表示チェックボックス(無効なデータが入力された後のエラーメッセージまたは無効なデータ後のアラートともラベル付けされている)をチェックします。
  3. スタイルを選択します: 停止は無効なデータをブロックし、警告はプロンプトで許可し、情報はメモの表示のみです。
  4. タイトルとエラーメッセージを入力します。
  5. OKをクリックします。

許可されたリスト外に無効なデータが入力されると、エラーメッセージが発生します。 厳格なフォームには停止を使用して、有効なデータのみを受け入れる。 エラーメッセージ表示設定と入力メッセージタブは独立して制御されるので、一方のみを有効にできます。

空白のセルを許可したい場合は、設定タブで空白を無視チェックボックスをチェックしてください。 これにより空のセルでエラーメッセージが発生しなくなります。

スクリーンショットの提案: ストップが選択され、カスタムエラーメッセージが入力されたデータ検証ダイアログボックスのエラーメッセージタブを示す。 HRフォームデモファイルを使用します。

方法5: 依存ドロップダウンリストを作成する

最適なシナリオ: 最初のリストが第二のリストの選択肢に依存するマルチレベル選択。

Excelの依存ドロップダウンリストは、2つ以上のドロップダウンリストをリンクさせ、最初のリストの選択が第二のリストで利用可能なオプションを制御します。例えば、ユーザーが最初のドロップダウンリストからピザを選択すると、第二のドロップダウンリストには特定のピザアイテムが表示され、ユーザーが中国料理を選択すると、第二のリストに中国料理のメニューが表示されます。依存ドロップダウンリストを作成することで、以前の選択に基づいてユーザーが関連する選択肢のみを見ることができ、データ入力の効率と正確性を向上させます。

セットアップ:

  1. カテゴリごとに1列ずつ、列にソースデータを作成します。 各列のヘッダ行は、最初のドロップダウンリストに表示される内容と完全に一致している必要があります。
  2. 名前ボックスを使用して各項目の列に名前を付け、最初のリストオプションと完全に一致させます(例: ピザ列に"ピザ"、中国列に"中国料理"と名付ける)。
  3. 方法1または方法2を使用して列Aに最初のドロップダウンリストを作成します。
  4. 第二のドロップダウン用のセル(列B)を選択します。 データタブ > データ検証リスト選択で、設定タブで、リスト許可ボックスで選択し、ソースボックスに=INDIRECT(A4)と入力します。
  5. OKをクリックします。

最初のドロップダウンリストで値を選択すると、INDIRECTが同名の名前付き範囲を照会し、それを第二のドロップダウン用の選択リストとして使用します。 第二セルの検証基準は最初の選択に基づいて動的に更新されます。

スクリーンショットの提案: ピザが選択された列Aと列Bのドロップダウンにピザメニューアイテムが見える依存ドロップダウンデモファイルを表示。 メニューリストシートがバックグラウンドで見えるようにしてください。

方法6: 動的ドロップダウンリストを作成する

最適なシナリオ: 時間とともに増えるリストで、新しい項目が追加されると自動で更新される必要がある場合。

ExcelのOFFSET関数を使用して動的なドロップダウンリストを作成することができ、これによりソース範囲に新しい項目が追加されるとリストが自動で更新されます。 ドロップダウンリストのソースとしてExcelテーブルを使用すると、行が追加された時に自動的に拡張され、動的なリストに最適です。

オプションA: Excelテーブル

  1. ソースアイテムを選択して、Ctrl + T(挿入タブから)を押してExcelテーブルを作成します。 テーブルスタイルを選択し、ヘッダ行オプションを確認。
  2. データ検証ソースボックスでテーブル列を参照: =Table1[Category]。

Excelテーブルに新しい行が追加されると、ドロップダウンオプションが自動的に更新され、検証ルールに変更は必要ありません。

オプションB: OFFSET式

動的ドロップダウンリストを作成するには、式=OFFSET(Sheet2!$A$1,0,0,COUNTA(Sheet2!$A:$A),1)を使用して、ソース列内の非空セルの数に基づいて範囲を調整します。

これをデータ検証ウィンドウのソースボックスに入力します。 ソース列に項目が追加されると、ソース範囲が拡張され、ドロップダウンオプションが自動で更新されます。

スクリーンショットの提案: OFFSET式が入力されたデータ検証ソースボックスとListsシートが見える。 注文フォームデモファイルを使用します。

方法7: ドロップダウンアイテムの追加、編集、削除

ソース範囲内でのアイテム管理:

既存のドロップダウンリストにアイテムを追加するには、リストを含むオリジナルのシートに移動し、挿入したいセルの下を右クリックして、挿入を選択し、セルを下にシフトするを選び、新しいアイテムを入力します。 ドロップダウンオプションが自動で更新されます。 同じワークシートでもシートをまたいでも、新しいセルをカバーする限り同じ手順が適用されます。

ドロップダウンの削除:

Excelでドロップダウンリストを削除するには、ドロップダウン付きのセルを選択し、データタブに移動し、データ検証をクリックし、その後削除(すべてクリア)をクリックしてリストを削除します。検証ルールを削除せずにセル値のみをクリアするには、セルを選択して削除を押します。 ルール全体を削除するには、データ検証ウィンドウで"すべてクリア"を使用します。

セルの内容のみを削除し、検証を保持したい場合は、安全に行えます。 内容がクリアされてもセルに検証リストが残ります。

検証済みセルのパスワード保護:

ドロップダウンの設定の編集を他の人に防ぐには、レビュー > シートを保護し、パスワードを入力します(ワークシートをパスワード保護)。 ユーザーはデータ入力のためにドロップダウンを使用することができますが、検証基準の変更やルールの削除はできません。

スクリーンショットの提案: ルールを削除するために"すべてクリア"ボタンが表示されているデータ検証ダイアログボックスを表示。 パスワードフィールドがアクティブなシート保護ダイアログも表示。

よくある問題とトラブルシューティング

ドロップダウン矢印が表示されない

設定タブでセル内のドロップダウンチェックボックスがチェックされていることを確認します。 これがチェックされていない場合も、検証は機能しますが、セルに矢印は表示されません。 ドロップダウンが消えてしまったと感じるときの最も一般的に見逃されがちな設定です。

有効なデータでエラーメッセージが発生

これは通常、フォーマットの不一致です。 カンマ区切りのリスト入力でカンマの周りに不要なスペースがないかソースボックスを確認するか、ソースデータ空白セルや一致しない大文字小文字がないか確認してください。 検証基準は値を正確に比較します。

動的リストが自動で更新されない

ソースが静的なセル範囲の場合、その範囲外に追加された新しい項目は表示されません。 ExcelテーブルまたはOFFSET式に切り替えて、ソース範囲が自動で拡張されるようにします。 データ検証リストは、すべての現在および将来の項目を含む範囲を参照する必要があります。

依存リストが参照エラーを表示

これは名前付き範囲が最初のドロップダウン選択と完全に一致していないことを意味します。 フォーム > 名前マネージャーを開き、オプションが最初のドロップダウンリストと完全に一致するように、名前を確認します(大文字小文字も含む)。 不一致は、INDIRECTが使用されているすべてのセルで空かエラーを返します。

簡易リファレンス: ドロップダウンリストメソッド

目標 場所 主要設定
シンプルドロップダウンリスト データタブ > データ検証 > 設定タブ ソースボックス: カンマ区切りリスト
セル範囲からのドロップダウン データタブ > データ検証 > 設定タブ ソースボックス: =Sheet!$A$3:$A$7
名前付き範囲のソース データタブ > データ検証 > 設定タブ ソースボックス: =RangeName
入力メッセージ データ検証 > 入力メッセージタブ タイトルとメッセージ
エラーメッセージ データ検証 > エラーメッセージタブ スタイル: 停止、警告、情報
動的リスト(テーブル) 挿入タブ > テーブル、その後テーブル列参照 ソースボックス: =Table1[Column]
動的リスト(OFFSET) データ検証ボックス =OFFSET(Sheet2!$A$1,0,0,COUNTA(Sheet2!$A:$A),1)
依存ドロップダウン データ検証 > 設定タブ ソースボックス: =INDIRECT(A4)
リストへのアイテム追加 ソースセルを右クリック > 挿入 > セルを下にシフト 新しいセルにアイテムを入力
ドロップダウンの削除 データタブ > データ検証 > すべてクリア すべてのセルからルールを削除

開発者向け: IronXLでデータ検証を追加する

.NETアプリケーションでフォームやデータエントリテンプレートを備えたExcelワークブックを生成する場合、IronXLを使用してサーバー上のMicrosoft Officeを使用せずにC#でドロップダウンリストのデータ検証をプログラム的に適用できます。 推奨されるアプローチはAddFormulaListRule()で、セル範囲をソースとして参照し、リストアイテムを文字列で直接渡す場合に適用される255文字の文字列制限を回避します。

using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet formSheet = workBook.DefaultWorkSheet;
formSheet.Name = "Order Form";

// Headers
formSheet["A1"].Value = "Order ID";
formSheet["B1"].Value = "Product Category";
formSheet["C1"].Value = "Region";

// Write source list values to a Lists sheet
WorkSheet listSheet = workBook.CreateWorkSheet("Lists");
string[] categories = { "Electronics", "Furniture", "Software", "Office Supplies", "Services" };
string[] regions = { "North America", "EMEA", "APAC", "Latin America", "Middle East" };

for (int i = 0; i < categories.Length; i++)
{
    listSheet[$"A{i + 1}"].Value = categories[i];
    listSheet[$"B{i + 1}"].Value = regions[i];
}

// Apply drop-down validation referencing the Lists sheet source range
var categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           // cell range to validate
    "Lists!$A$1:$A$5"  // source range on Lists sheet
);
categoryRule.ShowErrorBox = true;
categoryRule.ErrorBoxTitle = "Invalid Category";
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list.";
categoryRule.ShowPromptBox = true;
categoryRule.PromptBoxTitle = "Product Category";
categoryRule.PromptBoxText = "Choose a product category from the drop-down.";

var regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
);
regionRule.ShowErrorBox = true;
regionRule.ErrorBoxTitle = "Invalid Region";
regionRule.ErrorBoxText = "Select a valid region from the drop-down list.";

workBook.SaveAs("order-form-validated.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet formSheet = workBook.DefaultWorkSheet;
formSheet.Name = "Order Form";

// Headers
formSheet["A1"].Value = "Order ID";
formSheet["B1"].Value = "Product Category";
formSheet["C1"].Value = "Region";

// Write source list values to a Lists sheet
WorkSheet listSheet = workBook.CreateWorkSheet("Lists");
string[] categories = { "Electronics", "Furniture", "Software", "Office Supplies", "Services" };
string[] regions = { "North America", "EMEA", "APAC", "Latin America", "Middle East" };

for (int i = 0; i < categories.Length; i++)
{
    listSheet[$"A{i + 1}"].Value = categories[i];
    listSheet[$"B{i + 1}"].Value = regions[i];
}

// Apply drop-down validation referencing the Lists sheet source range
var categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           // cell range to validate
    "Lists!$A$1:$A$5"  // source range on Lists sheet
);
categoryRule.ShowErrorBox = true;
categoryRule.ErrorBoxTitle = "Invalid Category";
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list.";
categoryRule.ShowPromptBox = true;
categoryRule.PromptBoxTitle = "Product Category";
categoryRule.PromptBoxText = "Choose a product category from the drop-down.";

var regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
);
regionRule.ShowErrorBox = true;
regionRule.ErrorBoxTitle = "Invalid Region";
regionRule.ErrorBoxText = "Select a valid region from the drop-down list.";

workBook.SaveAs("order-form-validated.xlsx");
Imports IronXL

Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim formSheet As WorkSheet = workBook.DefaultWorkSheet
formSheet.Name = "Order Form"

' Headers
formSheet("A1").Value = "Order ID"
formSheet("B1").Value = "Product Category"
formSheet("C1").Value = "Region"

' Write source list values to a Lists sheet
Dim listSheet As WorkSheet = workBook.CreateWorkSheet("Lists")
Dim categories As String() = {"Electronics", "Furniture", "Software", "Office Supplies", "Services"}
Dim regions As String() = {"North America", "EMEA", "APAC", "Latin America", "Middle East"}

For i As Integer = 0 To categories.Length - 1
    listSheet($"A{i + 1}").Value = categories(i)
    listSheet($"B{i + 1}").Value = regions(i)
Next

' Apply drop-down validation referencing the Lists sheet source range
Dim categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           ' cell range to validate
    "Lists!$A$1:$A$5"   ' source range on Lists sheet
)
categoryRule.ShowErrorBox = True
categoryRule.ErrorBoxTitle = "Invalid Category"
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list."
categoryRule.ShowPromptBox = True
categoryRule.PromptBoxTitle = "Product Category"
categoryRule.PromptBoxText = "Choose a product category from the drop-down."

Dim regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
)
regionRule.ShowErrorBox = True
regionRule.ErrorBoxTitle = "Invalid Region"
regionRule.ErrorBoxText = "Select a valid region from the drop-down list."

workBook.SaveAs("order-form-validated.xlsx")
$vbLabelText   $csharpLabel

IronXLは.NET 6以降で動作し、Windows、Linux、macOS、Docker、Azureと互換性があります。 詳細はDataValidation APIリファレンスをご覧ください。

始め方: Install-Package IronXL.ExcelでNuGetを介してインストールします。 30日間の無料トライアルが利用可能で、クレジットカードは不要です。

さらに読む:

まとめ

Excelセルにドロップダウンリストを追加するには、行く場所を知っていれば1分もかかりません。 固定選択肢を少しだけ含むセル内ドロップダウンであれば、データ検証ダイアログボックスのソースボックスにカンマ区切りリストを直接入力するのが最速のルートです。 時間の経過とともに拡張または更新が必要な場合は、名前付き範囲やExcelテーブルを参照すると、ドロップダウンオプションが成長する余地を与えます。 データ検証リストはそのソースデータに接続されたままなので、ソース範囲に新しいアイテムを追加すると、自動的にすべての接続されたセルで利用可能になります。

複数の人が同じスプレッドシートを記入する場合、入力メッセージタブの入力メッセージで選択前に彼らをガイドし、エラーメッセージタブのストップレベルのエラーメッセージにより、無効なデータが検証済みセルに入らないようにします。 INDIRECTと名前付き範囲で構築された依存ドロップダウンリストは、最初のドロップダウンリストが自動的に第二のドロップダウンリストを制御し、ユーザーの余計な作業なしにオプションセットを適切に保ちます。

.NETアプリケーションから検証済みのExcelファイルを生成する必要がある開発者向けに、IronXLは: ソース範囲、エラーメッセージ、入力プロンプト、およびフォーミュラリストルールを全網羅しているので、サーバー上にOfficeがインストールされていなくても、完全なデータ検証ワークフローをカバーしています。 プロジェクト内でデータ検証をテストするために無料トライアルを始めてください。

このガイドでカバーされていないドロップダウンシナリオがありますか? 以下にコメントを残すか、Excelデータ入力、検証、スプレッドシート自動化の詳細なガイドについてIron Softwareブログを訪問してください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね