『ドロップダウンリストに表示させる「項目リスト」作成について』(ヤド子)
桃、林檎、梨など10個以上の項目があります。
例) 桃
林檎
梨
桃/林檎
桃/梨
林檎/梨
桃/林檎/梨
このように、全ての組み合わせリストを作成したいのですが
数が多かったかり、増えたりした時に簡単な作成方法はありますか。
よろしくお願いします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
求める回答ではないので恐縮です。 私の思い付きをメモします。
仮に10個の要素があるとすると、すべて列挙すると2^10=1024個のリストになります。 これを目視で選択するのはかなり酷な印象です。10個以上だとさらに大変です
下記のような形式で、 ・10個の要素をA列に入れ、 ・10個のなかで入れるべき要素に1を立てて、 ・結果をC1セルに表示する といったことを私なら考えますね。
A列 B C
1 A C/F/G
2 B
3 C 1
4 D
5 E
6 F 1
7 G 1
8 H
9 I
10 J
C1セルの数式: =TEXTJOIN("/",,FILTER(A1:A10,B1:B10=1))
(1でなく何らかの入力があるものとすると、
=TEXTJOIN("/",,FILTER(A1:A10,B1:B10<>"")) ですね)
(xyz) 2025/11/14(金) 12:26:54
例えば
A列 |B列 |C列
桃 |桃/林檎 |桃
林檎 |桃/梨 |林檎
梨 |桃/林檎/梨 |梨
|桃/林檎
|桃/梨
|桃/林檎/梨
A列に蜜柑を追加すると
A列は、桃、林檎、梨、蜜柑となり、
B列は、桃/林檎、桃/梨、桃/蜜柑、林檎/梨、林檎/蜜柑、梨/蜜柑、
桃/林檎/梨、桃/林檎/蜜柑、林檎/梨/蜜柑、桃/林檎/梨/蜜柑となり、
C列は、A列の4行分(蜜柑)の後にB列の桃/林檎から桃/林檎/梨/蜜柑のところまでになり、
C列を入力リストにしたい。。。
※各列の「、」の部分は1行改行と考えてください
上記の例のようなことをしたいのですか?
(匿名) 2025/11/14(金) 12:48:55
いちおうド直球の回答
=LAMBDA(list,
LET(ary,MAKEARRAY(ROWS(list),2^ROWS(list)-1,LAMBDA(i,j,MOD(QUOTIENT(j,2^(i-1)),2))),
TRANSPOSE(BYCOL(ary,LAMBDA(c,TEXTJOIN("/",,FILTER(list,c))))))
)(A1:A3)
私もxyzさんの案がいいとおもいます 365はチェックボックスが使えて便利ですし (´・ω・`) 2025/11/14(金) 13:50:09
# 重なってしまいましたが、折角なのでローテク手法をさらしておきます。 要素が9種類のものを列挙する例を挙げます。(DEC2BINの制限のため、9個までしかこの方法では実現できません。)
【使い方】 ・A1:A9に各要素を入力します。 ・結果を出力したいセルの先頭に、下記の式を入れて下さい。 自動的に組み合わせが表示されます。
=LET(
ary,A1:A9,
n,ROWS(ary),
a,SEQUENCE(2^n,,0,1),
c,MAP(a,LAMBDA(element,
LET(b,DEC2BIN(element,n),
d,MAP(SEQUENCE(n,,1),LAMBDA(m,IF(MID(b,m,1)="1",INDEX(ary,m,1),""))),
TEXTJOIN("/",TRUE,d)
))),
SORT(c)
)
# 多すぎて選択しにくいことが実感されるのではないではないでしょうか。 なお、ary,A1:A9 のところを修正して、もっと少なくすることもできます。
(xyz) 2025/11/14(金) 14:06:16
まず、初めに回答いただいた数式を入れてみました。
C1セルの数式: =TEXTJOIN("/",,FILTER(A1:A10,B1:B10=1))
D列に結果を表示させるべくD1=C1、D2=C1・・・としたところ
C1が変化すればD1もD2も変化してしまう現象に陥りました。
再度、ご知恵をお借りできますか。
B欄が空欄の時にC1にエラーコードが出ない(空欄になる)
数式もご存知でしたらお願いします。
その他いただいた数式は、これからチャレンジさせていただきます。
(ヤド子) 2025/11/14(金) 14:29:39
> D列に結果を表示させるべくD1=C1、D2=C1・・・としたところ > C1が変化すればD1もD2も変化してしまう現象に陥りました。 > 再度、ご知恵をお借りできますか。 おっしゃることが理解しかねています。
【私の意図の再説明】 A列 |B列 桃 | 1 とすれば、C1セルには 桃/林檎 が表示されますし、 林檎 | 1 梨 |
A列 |B列 桃 | 1 とすれば、C1セルには 桃/林檎/梨 が表示されますし、 林檎 | 1 梨 | 1
A列 |B列 桃 | 1 とすれば、C1セルには 桃/梨 が表示されますし、 林檎 | 梨 | 1 といったように、B列に入れる情報によって、結果がC1に出るので、 B列の内容を使う人が決めるのです。 C列に複数の候補が表示されるわけではないのですよ。
===================================== 【チェックボックスの利用した方法の説明】(修正改善策の提案)
(´・ω・`)さんからのご指摘「365はチェックボックスが使えて便利ですし」を使って、 もう一度説明します。
"挿入"メニューにある "コントロール チェックボックス" というのを利用して、 B列の各セルにチェックボックスを挿入して下さい。 そのうえで、D1セルに以下の数式を入れて下さい。これが選択結果です。
A列 B列 C列 D列
1 桃 ☑ 桃/梨 (D1セルに =IFERROR(TEXTJOIN("/",TRUE,FILTER(A1:A3,B1:B3)),"")
2 林檎 □ と入れておいて下さい。
3 梨 ☑
B列のチェックボックスを適宜変更すれば、選択結果であるD1セルの値が変わります。 (xyz) 2025/11/14(金) 16:01:26
チェックボックス利用方法も再度詳しくご教示いただけたので
質問してよかったです!
貴重なお時間、ありがとうございました。
(ヤド子) 2025/11/17(月) 16:14:15
> D列に結果を表示させるべくD1=C1、D2=C1・・・としたところ > C1が変化すればD1もD2も変化してしまう現象に陥りました。 D1セルはC1セルを参照し、D2セルはC1を参照し、という設定をされたのですから 至極当然の動作かと思います。現象というほどのことでもなく普通のことですが。(*)
各行すべてにセットするなら、各行に選択肢を横に10個置く必要があるでしょうか。現実的ではない印象です。 それが面倒なら、C1で選択して、その結果を各行のセルにその都度"値のみコピーペイスト"するかですね。(*2)
そもそもですが、10個の選択肢があって、そのすべての組み合わせということは、 各選択肢を入れるか入れないかの2択で、その組み合わせですから 2の10乗とおり(1024個)の組み合わせとなります。 そんな多数のなかからその都度選ぶという状況があるんですか?ちょっと現実感がありません。
よくある組み合わせはいくつかのものに限定されたりはしないのですか? もしそうなら、それらに番号を付けておいて、番号を指定させるといったことが一般的ではないですか?
(*) > 単純にC1=D1やC1=D2としたら・・・という意味でした。 意味不明でした。
(*2)ユーザーフォームを利用して、10個のチェックボックスを選択させる
方法もあるでしょう。
この方法なら、各行にチェックボックスを配置しなくてもよいし、
全チェックボックスをオフにするといった作業が軽減できます。
参考まで。
(xyz) 2025/11/17(月) 21:02:47
10個以上とかいうのは質問に当たって盛りすぎたかと思いますが、 ドロップダウンリストの選択肢はせいぜいが20程度(一画面に収まる程度)が適当で、1024個などはありえません。 そうでない場合は分類して多段階で選択する方法もありますが、この場合は採りにくいかもしれません。
1シートに多数の指定を行うことを考えると、
ドロップダウンやチェックボックスを諦めて、
数値を直接指定させて、それを置換する方法が手っ取り早いかもしれません。
もうお腹いっぱいかと思いますが、例を挙げておきます。
===========
【シートレイアウト】
A列 B C D E F G H I J
1行 1 2 3 4 5 6 7 8 9 10
2 桃 林檎 梨 葡萄 栗 バナナ パイン メロン キウイ イチゴ
3
4 4 5 6 葡萄/栗/バナナ
5 2 3 林檎/梨
6 1 5 桃/栗
7 1 3 5 6 7 9 10 桃/梨/栗/バナナ/パイン/キウイ/イチゴ
【備考】 ・A1:J2 は選択できる要素の一覧 ・A4以下に指定する要素を数値で半角スペースを挟んで入力します。 ・B4以下は次の計算式(*)を入れておいて、自動で変換します。
B4セルに次の式を入れて下さい。(先頭の半角スペースは入れないで)
=IF($A4="","",TEXTJOIN("/",,MAP(TEXTSPLIT(TRIM($A4)," "),LAMBDA(x,INDEX($A$2:$J$2,1,x)))))
入力時の区切り文字は半角スペースが適当と思いましたが、適宜変更可能です。(式にも手入れ必要)
(xyz) 2025/11/18(火) 12:40:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.