• ベストアンサー

エクセル 電話番号表示についての書式・関数等

エクセルA列にドロップダウンリストを作成し、「0120」、「0570」、「0800」の 3つから選択するようにし、A列で「0120」、「0570」を選択した場合、B列にハイフン無しの6桁の数字(先頭が0になることも考慮)しか入力出来ないように規制を掛けたいです。また、「0800」を選択した場合には、B列に同じく7桁の数字しか入力出来ないように規制を掛けるには、どのようにしたら良いでしょうか? ご教授いただきたく、何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 以下の様に操作して、A列のセルとB列のセルに入力規則を設定して下さい。 A1セルを右クリック   ↓ 現れた選択肢の中にある[セルの書式設定]をクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[表示形式]タブをクリック   ↓ 現れた「分類」欄の中にある[ユーザー定義]をクリック   ↓ 現れた「種類」欄に 0000 と入力   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ Excelウィンドウの上の方にある[データ]タブをクリック   ↓ 現れた「データツール」グループの中にある[データの入力規則]ボタンをクリック   ↓ 現れた選択肢の中にある[データの入力規則]をクリック   ↓ 現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック   ↓ 現れた「入力値の種類」欄をクリック   ↓ 現れた選択肢の中にある[リスト]をクリック   ↓ 現れた「元の値」欄に 0120,0570,0800 と入力   ↓ 「データの入力規則」ダイアログボックスの[OK]ボタンをクリック   ↓ B1セルを右クリック   ↓ 現れた選択肢の中にある[セルの書式設定]をクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[表示形式]タブをクリック   ↓ 現れた「分類」欄の中にある[文字列]をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「データツール」グループの中にある[データの入力規則]ボタンをクリック   ↓ 現れた選択肢の中にある[データの入力規則]をクリック   ↓ 現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック   ↓ 現れた「入力値の種類」欄をクリック   ↓ 現れた選択肢の中にある[ユーザー設定]をクリック   ↓ 現れた「数式」欄に =AND($A1<>"",ISNUMBER(B1+0),LEN(B1)=6+($A1=800)) と入力   ↓ [空白を無視する]と記されている箇所をクリックしてチェックを外す   ↓ 「データの入力規則」ダイアログボックスの[OK]ボタンをクリック  以上です。

nao0208
質問者

お礼

kagakusuki さま ご連絡が遅くなってしまい申し訳ありません。 この度は、ご丁寧に操作方法を記載してしていただき、誠にありがとうございました。 エスセル初心者なので、記載してあるとおりに行いましたら、無事に出来ました。面倒なのにここまで丁寧に記載していただきましたことに頭が下がる思いです。感謝申し上げます。 日本人の優しさに心打たれました。 まだ、幾つか書式を作成しないといけませんので、投稿を見かけたらお力に なっていただけますと幸いです。 本当にありがとうございました。

その他の回答 (5)

  • rolly-ys
  • ベストアンサー率43% (25/57)
回答No.6

・A列B列共書式の表示形式を「文字列」に設定 ・A列は、0120 0570 0800 090 080 070 050 一般市外局番とする ・B1に、データ>データツール>データの入力規則▼>データの入力規則>設定において 入力値の種類=文字列(長さ指定) データ=次の値に等しい 長さ欄に次の式を入力→OK =IF(OR(A1="0120",A1="0570"),6,IF(A1="0800",7,IF(OR(A1="050",A1="070",A1="080",A1="090"),8,10-LEN(A1)))) 必要分を下へオートフィル

nao0208
質問者

お礼

rolly-ys さま ご連絡が遅くなってしまい申し訳ありません。 この度は、わたくしの質問に回答くださり、誠にありがとうございました。 エクセル初心者なので、何度か試してみましたが上手く行きませんでした。 私の設定等に問題があったかと思います。 初投稿で、不安がありましたが真面目に回答を考えて下さる皆様の心温かい 思いに頭が下がりました。 心よりお礼申し上げます。 ありがとうございました。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.5

=IF(OR(VALUE(A1)=120,VALUE(A1)=570),AND(LOG(B1)>=4,LOG(B1)<6),IF(VALUE(A1)=800,AND(LOG(B1)>=5,LOG(B1)<7))) で不都合な点があれば、具体的に何かを教えてください。

nao0208
質問者

お礼

msMike さま ご連絡が遅くなってしまい申し訳ありません。 この度は、わたくしの質問に回答くださり、誠にありがとうございました。 エクセル初心者なので、何度か試してみましたが上手く行きませんでした。 私の設定等に問題があったかと思います。 初投稿で、不安がありましたが真面目に回答を考えて下さる皆様の心温かい 思いに頭が下がりました。 心よりお礼申し上げます。 ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>どのようにしたら良いでしょうか? 少々面倒な書式設定と入力規則になります。 A列は入力規則のリストで指定できますが書式設定で文字列とするかリストの一覧で'0120,'0570,'0800として強制的に文字列を入力させる必要があるでしょう。 1行目は項目名として2行目からデータを入力するものとすればB2からBnまで選択して B列は入力規則のユーザー定義で次の数式を指定し、セルの表示書式は文字列に指定すべきです。(数値の場合は先頭の0の扱いが不合理になる) =IF(OR(A2="0120",A2="0570"),LEN(B2)=6,IF(A2="0800",LEN(B2)=7,"")) 但し、A列の未入力に対しては何を入力してもエラーになりません。

nao0208
質問者

お礼

bunjii さま ご連絡が遅くなってしまい申し訳ありません。 この度は、わたくしの質問に回答くださり、誠にありがとうございました。 エクセル初心者なので、何度か試してみましたが上手く行きませんでした。 私の設定等に問題があったかと思います。 初投稿で、不安がありましたが真面目に回答を考えて下さる皆様の心温かい 思いに頭が下がりました。 心よりお礼申し上げます。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

B2にデータ>データツール>データの入力規則で、 設定をユーザー設定にして数式欄に =IF(OR(A2="0120",A2="0570"),AND(B2>0,B2<=999999),IF(A2="0800",AND(B2>0,B2<9999999),FALSE)) と入力する。 先頭の0の場合の対処はセルの書式設定を、ユーザー定義で 000000 にしたうえで、 ホーム>スタイル>条件付き書式で 新しいルール>数式を使用して、書式設定するセルを決定で数式欄に =A2="0800" で書式の表示形式をユーザー定義で0000000にする。

nao0208
質問者

お礼

mshr1962 さま ご連絡が遅くなってしまい申し訳ありません。 この度は、わたくしの質問に回答くださり、誠にありがとうございました。 エクセル初心者なので、何度か試してみましたが上手く行きませんでした。 私の設定等に問題があったかと思います。 初投稿で、不安がありましたが真面目に回答を考えて下さる皆様の心温かい 思いに頭が下がりました。 心よりお礼申し上げます。 ありがとうございました。

  • tonimii
  • ベストアンサー率30% (185/607)
回答No.1

書式か関数を使って、入力に制限を掛けることはできません。 基本的に、入力された値(または文字)に関して一定の条件で答えを表示するのが関数になります。 Aが100なら満点と表示する。Aが30点以下なら赤色で表記するなどです。 6桁以外の数字が特定のセルに入力されたときに「ハイフン無しの6桁で入力してください」と表示させる。とかなら簡単にできますが、それなら最初から指示文書を書いておけばいい話ですよね。 お力添えできずにすみません。

関連するQ&A