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

エクセルのプルダウンメニューで、A1~A5の任意のセルを選んだら1、A6~A10の任意のセルなら2と返す設定にしたいと思ってます。

A1~A5には

A1 りんご
A2 バナナ
A3 みかん
A4 いちご
A5 メロン

A6~A10には

A6 トヨタ
A7 マツダ
A8 ホンダ
A9 日産
A10 三菱

と入っていて、B1~B10ではプルダウンメニューでこれらが選べるようになっています。

もし使用者がプルダウンメニューでA5 メロンを選ぶと、C5には1を返すように設定したいのですが、これを実現させるためにはどのように設定すればいいでしょうか。

ご指導よろしくお願いします。

A 回答 (6件)

質問にないことを追加依頼するのは、回答者が負担になるので


しないほうが良いですよ。(質問文に最初から書くこと)

とりあえず、お礼にある色付けに関してです。
条件付き書式も希望なのですね。
設定した式の一部を利用すれば可能ですよ。
条件付き書式の場合、エラー処理は不要なので
 =(CEILING(MATCH(B1,$A$1:$A$52,0),31)/31)=1
なら、塗りつぶしの色を黄色に。同じように =1 を =2 にすれば、
塗りつぶしの色を緑色で設定できます。
https://www.crie.co.jp/chokotech/detail/480/
https://excelcamp.jp/media/operation/data/5800/

ちなみに、前回の回答では書きませんでしたが、グループ1の
数がグループ2の数よりも少ない場合、提示した式では対応が
できません。
グループ1が基準値になるので、グループ3が出るためです。
 =IFNA(CEILING(MATCH(B1,リスト,0),グル1)/グル1,"")
この式が成り立つのは、グループ1>=グループ2のような場合
で、グループ1がグループ2以上の数であることが前提です。

グループ1<グループ2の場合は、別の数式を検討する必要が
あります。(グループ1が20で、グループ2が27のとき)
LOOKUP関数
 =IFNA(LOOKUP(MATCH(B1,$A$1:$A$47,0),{0,20},{1,2}),"")
VLOOKUP関数
 =IFNA(VLOOKUP(MATCH(B1,$A$1:$A$47,0),{0,1;20,2},2,1),"")
https://blanche-toile.com/tools/microsoft-excel- …
https://www.wanichan.com/pc/excel/2010/4/page08. …

CEILING関数ならば、グループ1を基準値にして参照することで
リストの増減に対応できますが、グループ1が少ない処理の場合
グループ3が生じるなどの問題点があります。
LOOKUP系関数の場合は、0のグループを用意することと、昇順
での並びにしないならないなどの面倒さがあります。
(昇順にしてあれば、グループの数は自由なのがメリット)
「エクセルのA1~A5の任意のセルを選んだ」の回答画像6
    • good
    • 0
この回答へのお礼

enunokokoroさん、本当にありがとうございます。

やりたい事が全部出来ました。

条件付き書式設定は1つのセルにいくつものルールを設定する事ができるんですね。それをしらなかったので、どうすれば=1のとき黄色で=2のとき緑に設定出来るんだろうと悩んでいました。

でも参考URLに複数の条件付き書式という項目があったので、1つのせるにいくつも条件設定が出来るんだと学びました。

それと、グループ1の数がグループ2の数よりも少ない場合についても教えていただきありがとうございます。

これについては大丈夫ですが、VLOOKUPの方法も教えていただいたので後ほど勉強させていただきたいと思います。

最後になりましたが、追加で質問をしてしまいすみませんでした。一旦質問を閉じてまた別の質問をする方がNGなのかなと思っていたのですが、仰るとおり次々質問がくると回答者さん達は最初から聞いてよってなっちゃいますよね。

これも勉強になりました。

そんな私に丁寧に対応して下さって本当にありがたく思ってます。

また何か分からない事があった際は、よろしくお願い致します。

お礼日時:2023/03/21 12:03

No.4の回答者です。



二つに分けるだけなら、No.4の式を応用するだけで済みます。
以下の式にある「リスト」はリスト範囲を意味し、「グル1」には
グループ1の数を入れます。
 =IFNA(CEILING(MATCH(B1,リスト,0),グル1)/グル1,"")
グループ1の数を別のセルに用意すれば、そのセルを参照させて、
リスト数が増えても対応できるようにします。
 =IFNA(CEILING(MATCH(B1,$A$1:$A$52,0),31)/31,"")
CEILING関数は、基準値の倍数で切り上げる関数です。
基準値が31なら、31までは31で32以降が62になります。
これを基準値で割れば、1と2を出すことが可能になります。

添付画像ではイロハ順のリストを用意しておき、B列に50音順の
ものを順に配置した場合に、「あ」の位置が36番目なので35までと
「あ」以降である36番目以降と分けた場合の例です。
 =IFNA(CEILING(MATCH(B1,$A$1:$A$47,0),$E$1)/$E$1,"")
「エクセルのA1~A5の任意のセルを選んだ」の回答画像5
    • good
    • 0
この回答へのお礼

ありがとうございます。

上手く設定出来ました!。

同じような類の質問があるのでもしお分かりであれば教えて欲しいのですが、もしB列でグループ1の何かが選択されたらB列のそのセルに黄色のハイライトを点けたいと思ってます。

つまりB2で「い」が選択された場合、B2のセルに黄色のハイライトを点け、もしB1でグループ2の「あ」が選ばれたらB1に緑のハイライトを点けたいと思ってます。

グループ1やグループ2に対して色の指定が出来ればこれが出来ると思うのですが、やり方が分かりません。

どう設定すればよいか教えて頂けませんでしょうか。

よろしくお願いいたします。

お礼日時:2023/03/21 03:23

C1セルに以下の式を入れてみて


 =IFNA(CEILING(MATCH(B1,$A$1:$A$10,0),5)/5,"")

MATCH関数でリストの範囲の何番目かを出し、CEILING関数で
5単位にして5で割ることで1や2を出しています。
「エクセルのA1~A5の任意のセルを選んだ」の回答画像4
    • good
    • 1
この回答へのお礼

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

質問の際は簡素化して伝えるため果物5、自動車5という例にしたのですが、実際には1番目のグループリスト(果物5つに相当する部分)には31の品目があり、2番目のグループリスト(自動車5つに相当する部分)には21あって合計52のアイテムがある状態なんです。

そしてB列ではその52アイテムのどれが選択されるかはその時まで分かりません。(謂わば、抽選で52アイテムのどれかが当選するという状態がピッタリです。)

仮にその52アイテムに、アイテム1~アイテム52までの番号を振るとします。

そして抽選の結果、例えばB52にアイテム1が充てがわれた場合、C52には1を返したいのですが、10品目ではないので5で割っても1や2にはならずどうしたものかと足りない頭を捻っています^^。

品目が10しかない場合は仰るように5で割ると1と2になるのでなるほどなと感心させられたのですが(私には絶対に思い浮かばない発想なのでenunokokoroさんは凄い!!と思いました)、31と21に品目が分かれている場合、何か対応出来る方法はあるでしょうか。

5以外の数字で割る事も考えたのですが、31と21なので両者に上手く合う数値が見つかりません。

また、ひょっとすると後日アイテム数が増えるかもしれません。

そう考えた時、1や2を返すより、AかBを返すという風にした方がいいのかなと思ったのですが、それなら31と21の品目からなるものを上手く選別出来るでしょうか。

52アイテムを31のグループと21のグループに判別出来れば、やり方は何でも構いません。(1と2のような数字でも構いませんし、AとBのような文字でも構いません。)

是非アドバイスをよろしくお願いいたします。

お礼日時:2023/03/21 00:08

こんばんは


>B1~B10ではプルダウンメニューでこれらが選べるようになっています。
プルダウンメニュー(入力規則リスト)が10個あると言う事でしょうか
プルダウンメニューで選んだ値がメロンなら C5には1・・・
10個のプルダウンメニューで1つでも選ばれていたらC5には1 ?

10個のプルダウンメニューで5つ選ばれていてもC5には1 ?
=IF(COUNTIF(B1:B10,A5)>0,1,"")
それとも選ばれている数を表示したい?
=COUNTIF(B1:B10,A5)
    • good
    • 0
この回答へのお礼

説明が悪くてすみません。

B1~B10のセルには全てプルダウンメニューが設定されていて、各々

A1 りんご
A2 バナナ
A3 みかん
A4 いちご
A5 メロン
A6 トヨタ
A7 マツダ
A8 ホンダ
A9 日産
A10 三菱

が選べるようになっています。

使用者がどれを選ぶかは分かりませんが、もし使用者がB1のプルダウンメニューでりんごを選んだらC1には1を返すようにし、もしB7のプルダウンメニューで三菱を選んだらC7には2と返すようにしたいと思っています。

これで伝わりましたでしょうか。

もし説明が悪ければまた聞いて下さい。

よろしくお願いします。

お礼日時:2023/03/20 19:33

B1に「A5 メロン」が入ったらC5に1と表示したいなら、C5に、


=IF(B1="A5 メロン", 1)

で良いと思う。
    • good
    • 0
この回答へのお礼

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

単一のセルを指定するなら仰るとおりなのですが、B1に入るのは

A1 りんご
A2 バナナ
A3 みかん
A4 いちご
A5 メロン
A6 トヨタ
A7 マツダ
A8 ホンダ
A9 日産
A10 三菱

のいずれになるか分からないのです。

なのでもし使用者がB1のプルダウンメニューでりんごを選んだらC1には1を返すようにし、もしB7のプルダウンメニューで三菱を選んだらC7には2と返すようにしたいのです。

No.3さんの回答へのお礼でも補足させて頂いてるので、やり方を教えて頂けるとありがたく思います。

よろしくお願いします。

お礼日時:2023/03/20 19:36

詳しくないのですが、


条件付き書式とif文でできるのではないですかね?
この2つを調べてみてはいかがですか?
---------------------------------------------------
(´-`).。oO
    • good
    • 0

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