不正な入力の防止
メニューを表示するにはスワイプしてください
この章では、前の章で使用した同じワークブックを引き続き使用します。
適切に構築されたExcelファイルにおける最も重要な構造原則:入力と計算の分離。手入力を許可するのは専用の入力セルのみ。他のすべてのセルはロック、空白、または数式によって制御されるべきです。この分離によって、ワークブックが拡張しても予測可能なものとなります。
データの入力規則は、特定のセル範囲に適用されるルールで、入力できる値を制御します。数式やテーブルにデータが到達する前のゲートキーパーとして機能します。データ → データの入力規則から適用します。
Excelは6種類の入力規則をサポート。各規則は許可される内容の異なる側面を制御。
ドロップダウンリスト
カテゴリ列での自由入力(「Paid」「PAID」「paid」「Piad」など)は、フィルターやピボットテーブルを密かに壊す不整合を生む原因。ドロップダウンを使うことで、ユーザーは入力ではなく選択のみとなり、この問題を完全に排除。
-
静的リスト:検証ダイアログに直接入力した値をソースとする:
Paid,Pending,Cancelled; -
動的リスト:他のシートの名前付きテーブル列をソースとする:
=INDIRECT("Table1[Status]")。


INDIRECTは文字列を実際の範囲参照に変換。データの入力規則のソース欄は、Table2[Statuses]のような構造化テーブル参照を直接受け付けない。
これを機能させるには、テーブル参照全体を数式内で引用符で囲む必要がある:
=INDIRECT("Table2[Statuses]"
これにより、Excelはテキストを実行時に有効な参照として解釈し、検証規則作成後にテーブルへ新しい行が追加されても対応可能。
検証ルール
テキストの長さ、整数、日付の検証は、内部的にはすべて同じ仕組みで動作します。条件を定義し、それに合致しない入力をExcelがブロックします。異なるのは、チェックされる対象です。
- テキストの長さ は値自体ではなく、内部的に
LEN()を使って文字数をカウントします。したがって、"1234"と"hello"はどちらも長さ4となり、型に関係ありません。電話番号や郵便番号、固定文字数が必要なフィールドに便利です; - 整数 は値が数値範囲内であり、小数部分がないことを確認します;
- 小数 は同じ範囲チェックですが、小数値も許可され、価格や測定値に適しています;
- 日付 は最も微妙です。日付はシリアル番号として保存されるため、「今日より大きい」などのルールは実際には数値比較となります。
TODAY()は整数を返し、入力された日付がそれより大きい値を生成すれば条件を満たします。



入力メッセージとエラーアラート
検証 には2つの伝達レイヤーがあります。1つ目は、ユーザーが入力する前に何を入力すべきかを伝えます。2つ目は、無効な内容が入力された場合の動作を制御します。これらは データの入力規則 ダイアログの別々のタブで設定します。



重複の削除
データ → 重複の削除を使用。比較する列を選択。Excelは各組み合わせの最初の出現のみを残し、残りを削除。インポートデータや履歴データに最適。
ダイアログを閉じて保存すると元に戻せません。必ずデータのコピーで作業するか、結果が正しくない場合はすぐにCtrl+Zを使用。ダイアログでは削除された重複数も表示されるため、この数値が妥当か確認してから閉じてください。
タスク
- 支払い状況の管理されたドロップダウンリストの作成
データセット内のPayment Status列を見つけ、最新の行を含むすべてのデータ行を選択します。データの入力規則を開き、リストを選択し、オプションとしてPaid、Pendingを入力します。
列内の任意のセルをクリックして、ドロップダウンが表示されることを確認します。異なる値を入力しようとすると、制限されるか警告が表示されるはずです。
- ドロップダウンを動的システムに変換
新しいシートにドロップダウンの元となるデータを作成します。セルA1にStatusesと入力し、A2とA3にPaidとPendingを入力します。この範囲をCtrl/Cmd + Tでテーブルに変換します。
メインのデータセットに戻り、Payment Status列を選択して再度データの入力規則を開きます。元のソースを次のように置き換えます:
=INDIRECT("TableName[Statuses]")
実際のテーブル名を使用してください。
テストするには、元のテーブルに新しい値(例:Booked)を追加します。その後、データセットに戻り、新しい値が自動的にドロップダウンに表示されることを確認します。
- 重複レコードの削除
データセットまたはテーブル全体を選択します。データ → 重複の削除に進み、Order IDなどの一意の列を選択します。
Excelが削除された重複数を表示するので、結果を確認します。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください