プロが教えるわが家の防犯対策術!

図のように、A,B二つの選択欄を作り、どちらか一方を選択してもらうようにしようと思っています。


この場合、C7、C8両方のセルに1が入っている状態を禁止する(できなくする)にはどのような方法があるのでしょうか?
なお、可能ならスイッチ動作するような方法もあればお願いします。
ここでいうスイッチ動作とは、両方1、両方空欄という状態を出さないために、片方に1を入れたら
自動でもう片方が空欄となるような動作です。


”選択”されている状態を示すのに、数字の1を入力するようにしていますが、深い意味はありません。


ためしに、別セルにC7,C8の合計を計算させ、入力規則で「整数」→0から1の間と設定してもだめでした。両方入力すると2となり、はじかれると思ったのですが・・・。

ちなみに、マクロを使わないでできる方法でお願いします。

「ある二つのセルで、同時記入禁止する方法」の質問画像

A 回答 (6件)

 セルに1を入力するという方法では御座いませんが、その様な目的を達成されるのでしたら、オプションボタンとグループボックスを組み合わせて使用する方が良いのではないかと思います。



 まず、下記のURLのページを参考にされて、Excelのシート上にオプションボタンを必要な数だけ挿入して下さい。

【参考URL】
 Be Cool Users > Excel > 入力・編集 > Excelでオプションボタン! / フォーム
  http://kokoro.kir.jp/excel/form-option.html

 次に、下記のURLのページを参考にされて、選択肢が例えば「A」と「B」の様に2通りなら2つのオプションボタンを1つのグループボックスで囲み、選択肢が例えば「イ」、「ロ」、「ハ」の様に3通りなら3つのオプションボタンを囲んで下さい。

【参考URL】
 Be Cool Users > Excel > 入力・編集 > グループボックスでオプションボタンの応用 / フォーム
  http://kokoro.kir.jp/excel/form-optiongroup.html

 そして、各グループボックス毎に、そのグループボックス内で1番上の所にあるオプションボタンを右クリックする事で選択してから、そのオプションボタンに[リンクするセル]を設定して下さい。

 こうする事で、グループボックス内では1つのオプションボタンしか選択できなくなり、グループボックス内の別のオプションボタンにチェックを入れると、その前に選択していたオプションボックスのチェックが自動的に外れる様になります。
 そして、グループボックス内の1つ目のオプションボタンにチェックを入れた場合には、[リンクするセル]欄に設定したセルには1という数値が自動的に入力され、2つ目のオプションボタンにチェックを入れた場合には、2という数値が入力される様になります。(因みに、グループボックス内の全てのオプションボタンのチェックを外す場合には、[Delete]キー等を使用して、[リンクするセル]欄に設定したセルに入力されている数値を消去します)

 但し、このままでは[リンクするセル]欄の所で設定したセルに、例えば「-100」や「あいうえお」等の様な、「チェックした内容とは関係の無い値」を直接入力する事が出来てしまいますので、関係の無い値が入力される事を防ぐために、[リンクするセル]欄の所で設定したセルに、入力規則を設定し、直接入力する事が出来ない様にします。
 その際の入力規則の設定は、「入力値の種類」欄で[文字列(長さ指定)]を選択→「データ」欄の所で[次の値より小さい]か[次の値以下]を選択→「最大値」欄で0を選択、です。(この場合でも、オプションボックスによる入力は可能です)


 尚、必ずしも必要な事では御座いませんが、関数を使って[リンクするセル]欄の所で設定したセルとは別のセルに、どの選択肢を選択したのかを表示させる事も出来ます。
 例えば、下の添付画像の例では、D7セルには次の様な関数が入力されています。

=IF(ISNUMBER(MATCH(C7,{1,2},0)),INDEX({"A","B"},C7),"")

 同様に、D12セルには次の様な関数が入力されています。

=IF(ISNUMBER(MATCH(C12,{1,2,3},0)),INDEX({"イ","ロ","ハ"},C12),"")
「ある二つのセルで、同時記入禁止する方法」の回答画像3
    • good
    • 0
この回答へのお礼

オプションボタンを使う方法ですね。
こちらのほうが見栄えがいいですね。

ただ、今回は時間がなかったのでいったん見送り、次回の
時に機能をつけようと思います。

お礼日時:2014/03/22 21:12

 回答No.3です。



 もし、オプションボタンを挿入するために必要なフォーム ツールバーが表示されていない場合には、下記のURLのページを参考にされて、フォーム ツールバーを表示させて下さい。

【参考URL】
 Excel(エクセル)学習室 / KENZO30 > エクセル中級・特別編 > フォーム ツールバーのコントロールとは
  http://www.kenzo30.com/ex_kisotoku/ex_ks_tokubet …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

表示されました!!

お礼日時:2014/03/22 21:17

No.4です。


たびたびごめんなさい。

両セルに同じデータが入力できないようにしたい!という質問でしたね!
前回は勘違いしていました。

ユーザー設定の数式を↓に変更してください。
(「1」をダブって入力できない場合です)

=COUNTIF($C$7:$C$8,1)=1

どうも失礼しました。m(_ _)m
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

あれ?No4とあまり変わっていないような・・・

でもありがとうございます。

お礼日時:2014/03/22 21:16

こんにちは!



C7:C8を範囲指定 → 入力規則 → ユーザー設定 → 数式欄に

=COUNTA($C$7:$C$8)=1

でも大丈夫だと思います。m(_ _)m
    • good
    • 2
この回答へのお礼

できました!!
こんなに簡単にできるんですね。

返信遅れてすいません。

お礼日時:2014/03/22 21:15

>……C7、C8両方のセルに1が入っている状態を禁止する(できなくする)にはどのような方法があるのでしょうか?




(1) 完全に禁止

C7、C8 のそれぞれのセルを選択した状態で「データの入力規則」のダイアログをそれぞれ表示し、次のとおり設定。

  設定タブのユーザー設定の数式     エラーメッセージタブのエラーメッセージ

C7       =c8=""        「2 つのセルに同時に記入することはできません。」
C8       =c7=""                    〃


(2) 実際には 2 つ目のセルに記入できるが、記入してはいけないことが分かるようセル内を暗い色などで塗りつぶし


  条件付き書式(*)の条件式    書式

C7    =(c7="")*(c8<>"")    塗りつぶし
C8    =(c8="")*(c7<>"")      〃


セルを選択した状態で、ホームタブから条件付き書式のダイアログを表示。
「数式を……」を指定して、条件式の入力と、書式ボタンでの塗りつぶし(網かけ)の設定を実行。

なお塗りつぶしの代わりに表示形式を設定しても、「-」などの文字列を表示することはできません。
なにがしかの値がセルに記入されれば「-」などを表示できますが、完全な空欄ではできません。

(3) 上の (1)、(2) を併用


>……スイッチ動作するような方法もあればお願いします。
 ここでいうスイッチ動作とは、……、片方に1を入れたら自動でもう片方が空欄となるような……


上の (2) の方法で満足できず、「-」などの値をセルにしっかり算出したいという場合は、セルに数式を記入しておく必要があります。

しかし数式があるセルにユーザーが値を記入しようとすると、既存の数式を上書きしてしまうことになります。したがって、入出力を分離するために、入力用の補助セルを他に用意するしかありません。C7、C8 は表示用となります。補助セルの位置は、同一シートの印刷範囲の外に置いたり、別シート上でも構いません。次の例は、右隣のセルに入力することとした場合です。

出力セル   出力セルに記入しておく数式   入力セル

  C7    =if(d7="",if(d8="","","-"),d7)    D7
  C8    =if(d8="",if(d7="","","-"),d8)    D8

どうしても補助セルは用意せず、ユーザーには C7、C8 に記入させたいんだという場合は、マクロを使うしかありません。

また、2 つ目のセルに値を記入した瞬間に 1 つ目のセルの値が自動的に消えるように仕込みたいという場合も、予めどちらのセルが 1 つ目なのかを定めておかないのだとすれば、マクロを使わなければ実現できません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回はこの機能をいったん見送りにし、次回のときに考えることになりました。
参考になりました。

お礼日時:2014/03/22 21:10

C7に =AND(C8=0,OR(C7=0,C7=1)) として空白を無視するのチェックを外す


C8に =AND(C7=0,OR(C8=0,C8=1)) として空白を無視するのチェックを外す
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2014/03/22 21:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています