アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルの入力規則でリストを利用して【プルダウンメニュー】を作成しています。
リストのデータを重複して選択できないようにするにはど
のようにすればいいでしょうか?


例をあげるとしして

仮にA、b、Cの3つのセルに入力規則のリストを設定していずれも元の値が
『リンゴ』『みかん』『バナナ』とした場合。


Aのセルでリンゴを選択した時BやCのセルでリンゴを選択できないようにするに
します。

VBAは全く分からないのでできれば関数で
やる方法をご教授頂ければと思います。
宜しくお願いします

A 回答 (3件)

(1)入力規則でリストを使う


(2)入力規則で同じ値の入力を禁止する
それぞれどちらか1つなら可能だが両方となると難しい。回答は出ているが、質問者には思いつかない方法だろう。回答を丸写ししかない。
ーー
それなら、VBAは判らないといっているが、どちらも丸写ししか無いだろうから変わりは少ないのでは。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" Then Exit Sub
If WorksheetFunction.CountIf(Range("a1:A100"), Target) <> 1 Then
Application.EnableEvents = False
MsgBox "重複禁止"
Target = ""
Target.Select
Application.EnableEvents = True
End If
End Sub
をSheet1などのシートイベントに貼り付けるのと変わらないのではないか。
シートタブ部で右クリックー「コードの表示」を選ぶーそこで出てきた画面にコピペ。
===
又別の手立てで
入力規則はリストを使い、どこか空きの目立つセルに
=IF(COUNTA(B2:B20)<>SUMPRODUCT(1/COUNTIF(OFFSET(B2,0,0,COUNTA(B2:B20)),OFFSET(B2,0,0,COUNTA(B2:B20)))),"重複あり","")
と入れるのはどうだろう。これも式が難しいが。
下記の条件付きだが、重複があれば、上記式を入れたセルに「重複あり」が出る。
・B列の例
・B2セル以下にデータを入れる例
・B20までにデータが入る例。少なくても可。式を30などに変えて対象行を増やすことは簡単。
・B列途中で空白行は無いという例
    • good
    • 1
この回答へのお礼

ご丁寧にありがとうございます。さっそく試してみます

お礼日時:2011/12/14 23:28

丁寧に作れば簡単にできます。



手順:
シート2のB1に「元ネタ」と記入
シート2のB2からB4に「リンゴ」「バナナ」「オレンジ」を記入
シート2のA2に
=IF(OR(B2="",COUNTIF(Sheet1!A:A,B2)),"",MAX($A$1:A1)+1)
と記入し,ずっと下までコピー

シート2のD1に「入力規則の元リスト」と記入
シート2のD2に
=IF(ROW(D1)>MAX(A:A),"",VLOOKUP(ROW(D1),A:B,2))
と記入し,ずっと下までコピー

データメニュー(Excel2007以降ではデータタブ)の名前の定義(名前の管理)を開始,
 名前 元リスト
 参照範囲 =OFFSET(Sheet2!$D$2,0,NOW()*0,MAX(Sheet2!$A:$A),1)
として登録

シート1のA列を列選択
入力規則で種類をリストに変え,元の値に
=元リスト
とする。
    • good
    • 2
この回答へのお礼

早速ありがとうございます。

お礼日時:2011/12/14 23:29

こんばんは!


苦肉の策の一例です。

↓の画像で説明します。
通常はF1~F3セルを範囲指定して、入力規則のリストの「元の値」にすると思います。
そこでA1~C1セルのリスト表示で重複なしに表示するように一手間かけます。

E1セルに
=IF(COUNTBLANK($A$1:$C$1)<ROW(A1),"",INDEX($F$1:$F$3,SMALL(IF(COUNTIF($A$1:$C$1,$F$1:$F$3)=0,ROW($A$1:$A$3)),ROW(A1))))
これは配列数式になってしまいますので、Shift+Ctrlキーを押しながらEnterキーで確定!

この画面からコピー&ペーストする場合はE1セルに貼り付け後、数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキー+Enterキー!
数式の前後に{ }マークが入り配列数式になります。
このE1セルをE3セルまでオートフィルでコピー!
これでA1~C1セルにデータがあるもの以外が順に表示されます。

このE1~E3セルを入力規則の「元の値」としてみてはどうでしょうか?

参考になれば良いのですが・・・m(_ _)m
「excelの入力規則リストで重複不可にす」の回答画像1
    • good
    • 0
この回答へのお礼

なるほどそんなやり方があるのですね。是非試してみます

お礼日時:2011/12/14 23:31

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

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