Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 不正な入力の防止 | プロのようにデータを整理する
エクセルアドベンチャー

book不正な入力の防止

メニューを表示するにはスワイプしてください

Note
注記

この章では、前の章で使用した同じワークブックを引き続き使用。

適切に構築されたExcelファイルにおける最も重要な構造原則:入力と計算の分離。手入力を許可するのは専用の入力セルのみ。他のセルはすべてロック、空白、または数式による制御。こうした分離により、ワークブックの拡張時にも予測可能な動作が維持される。

Note
定義

データの入力規則は、特定のセル範囲に適用されるルールで、入力可能な値を制御。数式やテーブルにデータが届く前のゲートキーパーとして機能。データ → データの入力規則から適用。

Excel では、6 種類の入力規則がサポートされています。それぞれが許可される内容の異なる側面を制御します。

ドロップダウンリスト

カテゴリ列での自由入力(「Paid」「PAID」「paid」「Piad」など)は、フィルターやピボットテーブルを密かに壊す不整合を生み出します。ドロップダウンを使うことで、ユーザーが入力するのではなく選択するようになり、この問題を完全に排除できます。

  1. 静的リスト:検証ダイアログに直接入力した値をソースとする:Paid,Pending,Cancelled

  2. 動的リスト:他のシートの名前付きテーブル列をソースとする:=INDIRECT("Table1[Status]")

carousel-imgcarousel-img
Note
注記

INDIRECT は、テキスト文字列を動的な範囲参照に変換します。データの入力規則のソース欄は Table2[Statuses] のような構造化テーブル参照を直接受け付けませんが、INDIRECT() でラップすることで、Excel はテーブル名を実行時に解決し、検証設定後に追加された新しい行も含めることができます。

検証ルール

テキストの長さ、整数、日付の検証は、内部的にはすべて同じ仕組みで動作します。条件を定義し、それに合致しない入力をExcelがブロックします。異なるのは、チェックされる対象です。

  • テキストの長さ は値自体ではなく、内部的に LEN() を使って文字数をカウントします。したがって、"1234""hello" はどちらも長さ4となり、型に関係ありません。電話番号や郵便番号、固定文字数が必要なフィールドに便利です;
  • 整数 は値が数値範囲内であり、小数部分がないことを確認します;
  • 小数 は同じ範囲チェックですが、小数値も許可されます。価格や測定値に適しています;
  • 日付 は最も微妙です。日付はシリアル番号として保存されているため、「今日より大きい」といったルールは実際には数値比較です。TODAY() は整数を返し、入力された日付がそれより大きければ条件を満たします。
carousel-imgcarousel-imgcarousel-img

入力メッセージとエラーアラート

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

carousel-imgcarousel-imgcarousel-img

重複の削除

データ → 重複の削除を使用。比較する列を選択。Excelは各組み合わせの最初の出現のみを残し、残りを削除。インポートデータや履歴データに最適。

Note
注意

ダイアログを閉じて保存すると元に戻せません。必ずデータのコピーで作業するか、結果が正しくない場合はすぐにCtrl+Zを使用。ダイアログでは削除された重複数も表示されるため、この数値が妥当か確認してから閉じてください。

  1. 支払い状況の管理されたドロップダウンリストの作成

データセット内のPayment Status列を見つけ、最新の行を含むすべてのデータ行を選択。データの入力規則を開き、リストを選択し、オプションとしてPaid、Pendingを入力。

列内の任意のセルをクリックして、ドロップダウンが表示されることを確認。異なる値を入力しようとすると、制限または警告が表示される。

  1. ドロップダウンを動的システムに変換

新しいシートでドロップダウンの元となるデータを作成。セルA1Statusesと入力し、A2A3にPaidとPendingを入力。Ctrl/Cmd + Tでこの範囲をテーブルに変換。

メインのデータセットに戻り、Payment Status列を選択して再度データの入力規則を開く。ソースを次のように置き換える: =INDIRECT("TableName[Statuses]") 実際のテーブル名を使用すること。

テストするには、元のテーブルに新しい値(例:Booked)を追加し、データセットに戻ってドロップダウンに新しい値が自動的に表示されることを確認。

  1. 重複レコードの削除

データセットまたはテーブル全体を選択。データ → 重複の削除に進み、Order IDなどの一意の列を選択。

Excelが削除された重複数を表示するので、結果を確認。

question mark

Order ID(または同等の一意の列)を使って重複を削除した後、何行の重複が削除されましたか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  3
some-alt