• ベストアンサー

Excel: 飛び地の範囲に亘る入力規制

お世話になります。 A1~E1、A3~E3、A5~E5 の飛び地になった15個のセルに対し、「1以上10以下の整数」かつ「数値が重複しない」(空欄は許す)という条件で入力規制を掛けたいのですが、方法が分かりません。 お分かりになる方、ご教示いただければ幸いです。 ※先に単純化した類似の質問(https://okwave.jp/qa/q9880202.html)をしてご回答をいただいたのですが、自力で「飛び地の範囲指定」に適用することができませんでした。力不足を痛感しています。

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

  • ベストアンサー
回答No.3

入力規則で、離れたセルに重複禁止をかける方法はわかりませんでした。 その代わりに、”条件付き書式” → ”セルの強調表示ルール” → ”重複する値...” で設定すれば、入力時に重複したセルが赤く強調されるので、重複を避けられるのではないでしょうか? 添付の図は B3:H3  には、入力規則 ユーザー設定 =AND(B3>=1,B3<=15,INT(B3)=B3) B6:H6 には =AND(B6>=1,B6<=15,INT(B6)=B6) B9:H9 には =AND(B9>=1,B9<=15,INT(B9)=B9) を設定しています。

hiro_1116
質問者

お礼

前質問も併せ、何度もご回答いただきありがとうございました。 確かに入力規制しなくても、この方法で気付かせれば十分でした。 私の視野を広げていただいたという意味も込めてBAにさせていだだきます。

その他の回答 (3)

  • SI299792
  • ベストアンサー率47% (773/1617)
回答No.4

A1とB2の様な飛び地の重複は許すと解釈します。 (そうしないと、数字が足りなくなるので) 別々にデータの入力規則を設定するのが手っ取り早いです。 纏めてやりたいなら、 A1~E5を洗濯。 データ、データの入力規則。ユーザー設定。 数式: =AND(A1>0,A1<11,A1=IFERROR(INT(A1),0),COUNTIF($A1:$E1,A1)<2)+ISEVEN(ROW()) OK

hiro_1116
質問者

お礼

ご回答ありがとうございます。 なるほど。ISEVEN を使う方法には気付きませんでした。 参考にさせていただきます。

回答No.2

回答ではありません。 何がしたいのかわかりませんが、入力規則に離れたセルを指定することはできないと思います。 つまり、そういう場合は、入力のシートを作って入力をして、表示するシートで、その入力を反映させるという使い方が一般的かと思います。 入力は連続して行うので、入力規則の範囲は連続したものになります。 例えば、宛名印刷をしようとすると、シート1に住所録のデータを シート2に封筒もしくはハガキのレイアウトを作るのが一般的だと思います。 回答以外のことを書いて申し訳ないのですが、もう一度、Excelの使い方を考えられてはいかがでしょう。

hiro_1116
質問者

お礼

ご親切なアドバイスをありがとうございます。 Excelはそういうものなのですね、、、 他人に入力を依頼するフォームを作っているのですが、フォーム全体が画面に体裁良く収まるように入力用の表を途中で改行することを考えていました。(下図のようなイメージで、順位のボックスに重複しない数字を入れてもらう) サンプル  A  B  C  D 順位    □  □  □  □ サンプル  E  F  G  H 順位    □  □  □  □

回答No.1

飛び地になったセルを範囲指定する方法はご存知でしょうか? CTRLキーを押したまま、個々のセルを左クリックすると、飛び地になった複数のセルを範囲指定できます。 範囲指定が終わったら、以下サイトを参考に「名前の定義」を行います。 https://www.becoolusers.com/excel/name-create.html 後は、 https://okwave.jp/qa/q9880202.html の回答の「$A$1:$A$5,A1」の代わりに「自分で付けた範囲の名前」を使用します。

hiro_1116
質問者

お礼

早速のご回答誠にありがとうございました。 範囲に名前を付けることは知らなかったので大変勉強になりました。 ご回答の中に書かれている "回答の「$A$1:$A$5,A1」の代わりに" の部分は "回答の「$A$1:$A$5」の代わりに" と理解して試しているのですが、どういうわけか数式エラーになってしまいます。 自分でももう少し調べてみます。

hiro_1116
質問者

補足

いろいろやってみましたが、どういうわけか COUNTIF($A$1:$A$5,A1) の範囲指定の部分に名前で定義したセルを入力するとエラーになってしまうため、COUNTIF($A$1:$E$1,A1)+COUNTIF($A$3:$E$3,A1)+・・・ と飛び地毎に COUNTIF を分けて凌ぐことにしました。 もっとスマートなやり方があれば後学のためにぜひご教授ください。よろしくお願いいたします。

関連するQ&A