さくっとエクセレートさくっとエクセレート

概要

エクセルのリストや表にデータを記入するときに、以下の問題によく遭遇するはずです。

  • テーブル内またはテーブル間でのデータに矛盾やズレ/表記ゆれが生じる。
  • 入力するときに、入力内容に悩む。 転記する場合は、コピー元を探す手間がかかる。

このような問題は、 「セルに自由に入力できてしまうこと」 「入力する値(文字列 / 数値)の手がかりがないこと」 に起因しています。

対策案としては以下が有効です。

  • 入力できる値を制限する規則外の場合にすぐ気付けるようにする
  • 候補をプルダウン表示可能にする

エクセルで実装するときには、 「テーブル」「データの入力規則」「条件付き書式」 を利用します (VBAは不使用)。 これにより、候補リストは以下のような メンテナンス性・拡張性を持たせられます

  • 共通項目は、1つの候補リストで管理できる。
  • 候補リストの修正が簡単に行える。
  • 「外部参照」への機能拡張もしやすい。

本記事では、

  • 「入力が自由」「手がかりがない」と何が問題なのか。
  • どのような解決策があるか。
  • どうやってエクセルで実装するのか。

について説明します。

エクセルのバージョン

本記事は、 エクセル2024を基に作成しています
環境によっては、UIなどの細かな点が異なる可能性があります。

課題:入力が自由 / 手がかりがない

セルに入力できる値(文字列 / 数値)が自由である場合や、 入力する値の手がかりがない場合、 次のような問題が生じがちです

  • テーブル内 または テーブル間で、 データに矛盾やズレ / 表記ゆれが生じる
  • 入力するときに、入力内容を 考える時間が生じる 転記する場合は、コピー元を 探す手間がかかる
データ間に矛盾が生じる

テーブルサイズが大きくなること、または、テーブル数が増えることにより、 データ数が増加していくにつれて、 このような問題が顕在化してきます データ数が少ないときには重複するデータも少なく、 そもそも「データに矛盾やズレ / 表記ゆれ」が生じにくいためです。

制限するルールや候補が不確定で決められない状況では、 本記事の施策はまだ不要と言えます

解決策:入力制限 / 候補を設定する

上記の問題の解決策としては、以下があげられます

  • 入力できる値を制限する。または、 規則外の場合にすぐ気付けるようにする
  • 候補をプルダウン表示可能にする

また、共通の項目(列 / フィールド)間で、 「データの矛盾やズレ / 表記ゆれ」が生じないようにするために、次も有効です

  • 入力制限 / 候補リスト1つを、共通の項目(テーブル内 / 外の列)で使い回す
入力制限 / 候補がないときとあるときの比較

エクセルでの実装方法

エクセルで上記を実装する方法を説明します

使用するエクセル機能

  • テーブル :以下の2種類のデータを別々に格納。
    • データの候補/制限リスト
    • データ格納テーブル
  • データの入力規則 :入力値の候補表示。規則外の入力を制限。
  • 条件付き書式 :規則外の値をコピペしたときにハイライト表示。

複数のテーブルは同シートでなくてもよい

複数あるテーブルは、
それぞれ異なるシート上でも、同シート上でも構いません。
ただし、ここでは同一ファイル(ブック)内であると仮定します。

「データの入力規則」と「条件付き書式」を併用する理由

「データの入力規則」機能だけでも、入力値の制限と候補の表示は可能 です。 「条件付き書式」機能を併用する理由は、 コピペを使った入力時に「データの入力規則」機能による制限が効かないためです コピペを使えば規則外の値を記入できてしまい、警告も出ません ※1。

この対応策として 「条件付き書式」を使い 規則外の値が記入された場合にわかりやすく視覚的に強調(ハイライト)されるように設定します 規則外の値を完全に排除することはできませんが、 間違いに気付き、修正できる確率が格段に上がります

※1 セルの左上に小さく警告マーク(緑色の三角形)が表示されることもありますが、目立たないため見逃す可能性があります。 また「無効データのマーク」を使うと、規則外のセルを見やすく丸で囲んでくれますが、チェックタイミングがボタンを押したときだけで、使い勝手がいまいちなためオススメはしません。

「データの入力規則」と「条件付き書式」機能をまとめると以下の通りになります。

機能名機能機能するタイミング
データの入力規則入力制御、候補表示直接入力時
条件付き書式規則外の入力をハイライト表示直接入力時、 コピペによる入力時

実装手順

リストを使って候補を表示 / 入力制限をする方法(手順1 ~ 3)を説明します。 リストを使わない、さまざまなタイプの入力制限を設定する方法 についても補足します。

1. テーブルを用意する

「データ格納テーブル」と「候補/制限リスト」の2種類のテーブルを用意します テーブルの作成方法は、
作成位置のセルを選択 > 挿入タブ > テーブルボタン(Ctrl + t
です。

各テーブルは、1つのシート上にまとめても良いですが、 テーブルサイズが大きくなり、1画面に収まりきらない場合は、 それぞれ別のシートに分割しても問題ありません。 ただし同じファイル(ブック)内であれば、本記事の手順で動作します

データの入力規則の設定
データ格納テーブル

データを入力し、格納するテーブルです 候補/制限リストを参照することで、 データ入力をサポートできるようにします

このテーブルは、データ入力で必要分だけ作成することになります。

候補/制限リスト

データ入力時に候補となる値(文字列、数値)をまとめたリストです 候補として表示されるだけでなく、 このリストにない値の入力には制限かかかるようになります

データ格納テーブル内で、候補表示/制限設定をしたい列(フィールド)の種類分のリストを作成する必要があります。

2. データの入力規則を設定する

入力候補をプルダウン表示できるようにしつつ、 候補以外は直接入力できないように「データの入力規則」を設定します。

手順は以下の通りです。

  1. 設定するセル範囲を選択する。
  2. データの入力規則ウィンドウを表示する。
    • 規則を設定するセル範囲を選択 > データタブ > データの入力規則ボタン
  3. 入力値の種類 を設定する。
    1. データの入力規則ウィンドウの 設定タブを開いた状態にする。
    2. 入力値の種類:リストを選択。
    3. ドロップダウンリストから選択するにチェック
    4. 空白を入力可能にする場合は、空白を無視するにチェック。
  4. 元の値 を設定する。
    • 候補/制限リストの範囲を選択する(ヘッダーは選択不要)※2 。
  5. OKボタンを押してデータの入力規則ウィンドウを閉じる。

※2 INDIRECT関数を使えば構造化参照を使用できますが、ここでは不要です。 セル参照を使用しても、 候補/制限リストのサイズ変更時に自動的に対応してくれます

データの入力規則の設定

設定内容が同じセルであれば一度に修正可能

設定を修正したいとき、
設定内容が同じセルであれば一度に修正できます。
データの入力規則ウィンドウで、設定を変更し、OKボタンを押す前に
設定タブ上の同じ入力規則が設定されたすべてのセルに変更を適用するにチェックを入れるだけです。

3. 条件付き書式の設定をする

規則外の値が記入されたセルを、 視覚的にわかりやすく強調(ハイライト)されるように設定します

手順は以下の通りです。

  1. 設定するセル範囲を選択する。
  2. 新しい書式ルールウィンドウを表示する。
    • ホームタブ > 条件付き書式ボタン > セルの強調表示ルール > その他のルール
  3. ルールに数式を使用する選択をする
    • ルールの種類を選択してください:欄で 数式を使用して、書式設定するセルを決定 を選択する。
  4. 数式を設定する(次の数式を満たす場合に値を書式設定:欄に記入)。
    • 空白を入力可能(規則範囲内)とするとき=AND(1の範囲の先頭セルの位置(相対参照)<>"", COUNTIF(候補/制限リストの範囲(絶対参照), 1の範囲の先頭セルの位置(相対参照))=0)を入力
      • 数式例:=AND(E4<>"", COUNTIF($B$4:$B$8, E4)=0)
    • 空白を入力不可(規則範囲外)とするとき=COUNTIF(候補/制限リストの範囲(絶対参照), 1の範囲の先頭セルの位置(相対参照))=0を入力
      • 数式例:=COUNTIF($B$4:$B$8,E4)=0
  5. ハイライト時の書式を設定する。
    • 書式ボタン > 塗りつぶしタブ > 赤色 (好みのスタイルで良い)

条件付き書式の設定1 条件付き書式の設定2


設定を修正するには

条件付き書式の設定を修正するときは、以下の手順で設定ウィンドウを表示できます。

  1. 条件付き書式ルールの管理ウィンドウ を開く
  • ホームタブ > 条件付き書式ボタン > ルールの管理 > その他のルール
  1. ルールの設定画面を開く
  • 修正したいルールを選択 > ルールの編集

さまざまなタイプの入力制限を設定する場合

候補/制限リストのように、 リストを使った入力制限を設定する方法を上記で説明しました。 それ以外にも、様々なタイプの入力制限が可能です たとえば、 「○~□の範囲の数値のみ」「整数のみ」「○文字の文字列のみ」「日付のみ」「時刻のみ」などです

データの整合性を維持するのに役立つので、 候補/制限リストを使用しない場合であっても、 可能な範囲で「データの入力規則」と「条件付き書式」を設定しておくのがオススメです 「データの入力規則」と「条件付き書式」の設定例を、様々なタイプの入力制限ごとにまとると、以下の通りになります。

制限の例
【許容値の例】
「データの入力規則」の設定例 ※3「条件付き書式」の設定例 ※3
リスト内 の項目のいずれか
(リスト:みかん、りんご、ぶどう)
【りんご】
リスト
=$B$4:$B$8
=COUNTIF($B$4:$B$8,E4)=0
YES/NOのいずれか
【YES】
リスト
YES,NO
=AND(E4<>"YES", E4<>"NO")
0~10の 整数 のみ
【3】
整数
次の値の間 010
=NOT(AND(ISNUMBER(E4), E4=INT(E4), E4>=0, E4<=10))
0以上の小数のみ
【1.5】
小数点数
次の値以上 0
=NOT(AND(ISNUMBER(E4), E4>=0))
1~10文字の 文字列 のみ
【Excel】
文字列(長さ)
次の値の間, 1, 10
=NOT(AND(LEN(E4)>=1, LEN(E4)<=10))
2024/1/1以降の 日付 のみ
【2025/10/20】
日付
次の値以上 2024/1/1
=NOT(AND(ISNUMBER(E4), E4>=DATE(2024,1,1)))
電話番号のみ
【090-1234-5678】
ユーザー設定
=AND(COUNTIF(E4, "???-????-????")=1, ISNUMBER(SUBSTITUTE(E4,"-","")+0))
=NOT(AND(COUNTIF(E4, "???-????-????")=1, ISNUMBER(SUBSTITUTE(E4,"-","")+0)))
メールアドレスのみ
【user@example.com】
ユーザー設定
=ISNUMBER(FIND("@",E4))
=NOT(ISNUMBER(FIND("@",E4)))
重複なし
【データA】
ユーザー設定
=COUNTIF($E:$E,E4)=1
=COUNTIF($E:$E,E4)>1
重複のない整数のみ
【1】
ユーザー設定
=AND(ISNUMBER(E4), E4=INT(E4), COUNTIF($E:$E,E4)=1 )  )
=NOT(AND(ISNUMBER(E4), E4=INT(E4), COUNTIF($E:$E,E4)=1 )) 
(上記)+空白のみ
【(空白)】
空白を無視するにチェック=AND(E4<>"", 上記の式 )

※3 表中の数式で使用しているセル参照は、以下の通り。

  • $B$4 : リストの範囲の例
  • E4 : 自身のセルの例(設定しているセル自身のセルアドレス)。設定セルを 範囲 で指定している場合は先頭セルのみを指定する(例:A1~A9セルに設定しているとき A1)。

「データの入力規則」と「条件付き書式」間での数式の変換

「データの入力規則」の数式(ユーザー設定のとき)を否定したものが、「条件付き書式」の数式に相当します。
=NOT(...)で囲う、または、一番外側のNOT(...)を削除することで、数式を変換可能です。


「データの入力規則」でリスト以外を使用する場合、 候補のプルダウン表示はできません これをカバーするために、 入力時メッセージに「入力すべき値の説明や具体例」を書いておくと便利です
データタブ > データの入力規則ボタン > データの入力規則ウィンドウ中の 入力時メッセージ`タブ)。

入力時メッセージの設定例

エクセルで実装後の使い方

上記で作成したエクセルファイルは、 データ格納テーブルへのデータ入力時(手入力とコピペ)に機能します 手入力時とコピペ時それぞれのときの動作を説明します。

また、この機能の動作時に使われる「 候補/制限リスト 」を修正したい場合についても述べます。

データの入力(手入力)

データ格納テーブルに、手入力(セルを選択して記入する方法)でデータを追加・編集するときについてです。

データを追加する場合は、以下の手順を行います。

  1. 新しいテーブル行を追加する ※4。
    • データ格納テーブルの末尾(右下)のセルを選択 > tabを押す。
  2. 記入したいセルに移動して記入する。
    • 候補が設定されている列の場合 セルの右側の▼マークから候補をプルダウンを表示して選択可Alt + )。   手入力も可能。
    • 候補が設定されていない列の場合 入力時メッセージが設定されていれば、 「何を入力したら良いか」が表示される ので、それに従い手入力する。
  3. セルが赤くハイライトされていないか確認する。
    • セルが赤く表示される場合、 入力値が想定外の形式(入力制限外)となっているため、修正する

データを編集する場合は、上記の2, 3を行います。

※4 テーブルに集計行がなく、かつテーブル下が空白の場合、「行の追加」はスキップ可能。

データの入力(コピペ)

データ格納テーブルに、コピペ(コピー&ペースト)でデータを追加・編集するときについてです。

データを追加する場合は、以下の手順を行います。

  1. コピーしたいセル or 行をコピーする(Ctrl + c
  2. 新しいテーブル行を追加する ※4。
    • データ格納テーブルの末尾(右下)のセルを選択 > tabを押す。
  3. 貼り付け先のセルを選択し、「 」を貼り付ける(Ctrl + Shift + v ※5)
    • 通常の貼り付け(Ctrl + v)を行うと、「データの入力規則」と「条件付き書式」の設定が消えるので注意
  4. セルが赤くハイライトされていないか確認する。
    • セルが赤く表示される場合、 入力値が想定外の形式(入力制限外)となっているため、修正する

データを編集する場合は、上記の1, 3, 4を行います。

※5 旧バージョンのエクセルの場合 Ctrl + Alt + vvEnter

候補/制限リストの修正

データ格納テーブルにデータを入力するときの 「候補表示」「入力制限」は「候補/制限リスト」を参照しています。 「候補表示」で表示される項目を修正したり、 「入力制限」で許可する項目を修正したい場合は 「候補/制限リスト」のテーブルを書き換えるだけです。

リスト内に重複がある場合は無視されます。

まとめ

  • 「入力値を制限、規則外の場合にハイライト」
  • 「候補をプルダウン表示」

を利用することで、

  • 「データの矛盾、ズレ/表記ゆれの防止」
  • 「入力時での内容を考える時間、転記時でのコピー元を探す手間の短縮」

が期待できます。

これは、エクセルの 「テーブル」「データの入力規則」「条件付き書式」 を使って実装できます。

次のステップ:複数ファイル構成との比較

本記事では、テーブルを候補/規則リストとして、複数のテーブルから参照する構成を取り扱っています。 ここに機能をプラスすることで、さらに以下のようなことが可能になります。

  1. 複数テーブルを1テーブルにまとめる
    • 追加で使用する機能: リレーションシップ / ピボットテーブル
    • 複数のテーブルを連結した1つのテーブル(読み取り専用)が作成できます。 このテーブルは、 閲覧性・検索性が高く、関数無しで集計も可能 です。
  2. 候補/制限リストを外部から参照する
    • 追加で使用する機能: パワークエリ
    • 別ファイル内のデータを読み取り、候補/制限リストで使用します。 異なる複数のファイルに、1つの候補/制限を適用できるようになります。 ルールを1か所で管理できる ため、データの管理・整合性の維持が容易になります。