『名前の入力で必ず全角1文字のスペースを空ける制限』(祈) 質問させていただきます。 一つのセルに名前を入力する際、必ず姓と名の間に全角1文字分のスペースを入れさせる制限をかけたいと思っています。 A1に入力するとして、データの入力規則で、ユーザー定義に以下の関数を設定しました。 =FIND(" ",A1) ところが、全くスペースを空けない入力は不可としてくれるのですが、スペースならいくらでも許可していまうのです。 1文字分のみという制限をかける方法を教えてください。 どうぞよろしくお願いいたします。 < 使用 Excel:Office365、使用 OS:Windows10 > ---- >必ず姓と名の間に全角1文字分のスペースを入れさせる制限 =LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=1 (ピンク) 2020/05/06(水) 13:30 ---- ピンクさん、ありがとうございます。 しっかりと全角スペースの制限ができるようになりました。 もう一点、お訪ねしたいことがあります。 B1セルが空欄でないとき(名前が入力されているとき)は、B1セルを=$B$1参照し、空欄のときは、前述の関数でそのセルを制限するという形にしたいと思っています。 ちなみにB1セルの名前は、全角1文字スペースがきちんと制限済みという前提です。 どうぞよろしくお願いいたします。 (祈) 2020/05/06(水) 15:58 ---- やはり、こういう条件でのリストは不可なのでしょうか。 (祈) 2020/05/07(木) 11:53 ---- 「リスト」ですからねぇ。。 どこかに参照データを作った方がいいんじゃないですか? 一案ですが  D1セルに後記の式を入れて置き  D1セルの書式(表示形式)を ユーザー設定で、「;;;」として(3連続セミコロン)、見えない様に塩梅し、  入力規則でリストの元の値をB1:D1に設定し、□ 空白を無視する にチェックを入れる D1セル =IF(B1<>"",B1,IF(AND(LEFT(A1)<>" ",RIGHT(A1)<>" ",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=1),A1,"")) (半平太) 2020/05/07(木) 17:17 ---- 半平太さん、ありがとうございます。 早速、半平太さんの提案を実際に入れ込んでやってみていますが、 D1セルの表示形式とデータの入力規則の両方で設定するということでしょうか? (祈) 2020/05/07(木) 20:36 ---- >D1セルの表示形式とデータの入力規則の両方で設定するということでしょうか? D1セルの表示形式は、D1のデータ値(=数式の返り値)が見えないようにする為のものです。 入力規則はA1セルに設定ですよね。そっちの表示形式はいじりません(標準のまま) (半平太) 2020/05/07(木) 20:53 ---- すみません。標準のままというと、、、 (祈) 2020/05/07(木) 20:55 ---- すみません。A1セルに、B1:D1に設定し、□ 空白を無視する にチェックを入れる、ですね! すごい!ほぼできましたね! ただ、B1が空欄のとき(名前が入力されていないとき)、空白のリストが3行になりますが、これは1行にはならないでしょうか。。。 (祈) 2020/05/07(木) 21:00 ---- 名前が入力されているときも名前と空白行が2行でます。 この空白行を省くことはできないでしょうか!? (祈) 2020/05/07(木) 21:04 ---- >□ 空白を無視する にチェックを入れる、ですね! チェックを外すです。入れたら何でも入力できちゃいます。 >1が空欄のとき(名前が入力されていないとき)、空白のリストが3行になりますが、 >これは1行にはならないでしょうか。。。 B1に何か入った時は1行にできますが、空白が入ったときは1行には出来ません。 最少でも2行です。(それはそれでまた悩ましい問題が出るので) > 名前が入力されているときも名前と空白行が2行でます。 >この空白行を省くことはできないでしょうか!? 元の値ボックス→ =IF(B1<>"",$B$1,$B$1:$D$1) (半平太) 2020/05/07(木) 21:22 ---- 半平太さん、ありがとうございます。 元の値ボックスの関数により、B1に名前が入力済みのときは、空白行がなくなりました!! ただ、名前が入力なしのときは、空白行が3行も・・・。 半平太さん、これをなんとか空白行1行にできる方法はないでしょうか?? (祈) 2020/05/07(木) 21:32 ---- 1行にしたいお人なんですね。。 空白の問題は無視して、とにかく1行にします。 ※何が起きても私はおさらばです m(__)m 1.D1セルの書式は標準に戻してください。 2.元の値ボックス→ =$D$1 以上 (半平太) 2020/05/07(木) 21:45 ---- 半平太さん、ピンクさんに今一度お尋ねいたします。 前述の、B1セルは参照せず、A1に必ず直接入力するという前提で、 E1セルが入力済み(E1<>"")の場合に、A1に姓名の間を全角1文字必ずあける制限をかけて、許可するように仕様を変更したいのです。 A1のデータの入力規則を以下のように設定しましたが、上記の結果を導けません・・・ A1=IF(COUNT(E1)=1,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=1,"") よろしくお願いいたします。 (祈) 2020/05/09(土) 11:02 ---- =AND(E1<>"",LEFT(A1)<>" ",RIGHT(A1)<>" ",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=1) (半平太) 2020/05/09(土) 11:37 ---- 半平太さん、早速のご返事ありがとうございます。 ただ、E1が空白(未入力)の状態でもA1への入力ができるのですが・・・ (祈) 2020/05/09(土) 13:42 ---- □空白を無視する のチェックを外してください。 (半平太) 2020/05/09(土) 14:52 ---- すみません。うまくいきました。 これを別の箇所へ流用する際、文字間を半角にする場合は、 =AND(E1<>"",LEFT(A1)<>" ",RIGHT(A1)<>" ",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=0.5) これでよいでしょうか。 (祈) 2020/05/09(土) 16:08 ---- >=AND(E1<>"",LEFT(A1)<>" ",RIGHT(A1)<>" ",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=1)                                        ↑ここは1です。 (半平太) 2020/05/09(土) 16:33 ---- お礼が遅くなり申し訳ありません。 半平太さんの教えていただいた関数を設定し、きちんと結果が出ました。 また、お尋ねさせて頂きます。また、コロナにお気をつけください。 今回もありがとうございます。 (祈) 2020/05/10(日) 09:44