前提
SpreadSheetを勉強しているものです。
VBAなどを使わず、SpreadSheetの関数のみで実現したいです。
###実現したいこと
下記項目の「検索フォーム」のD列3〜5行に<タイプ>を入力すると、
「商品表」より該当する<タイプ>を検索し、
「検索フォーム」のE列に、該当する<品番>が全てカンマつなぎで出力される関数を組んでます。
=TEXTJOIN(",",TRUE,TRANSPOSE(OFFSET(A1,MATCH(D3,A:A,0)-1,1,COUNTIF(A:A,D3),1)))
ただ、現状では「検索フォーム」のE列3〜5行に、上記の関数をそれぞれ入力して実現している状態です。
この関数を、「検索フォーム」のE列3行目だけに入力し、残りの4〜5行にも反映させられるように組み直したいです。
わかりづらい文章で大変申し訳ございませんが、
もし、代わりになる関数や、抽出できる別の方法をお分かりになる方がおられましたら、
ご教示のほど、よろしくお願い申し上げます。
検索フォーム
[D列] [E列]
3 コーヒー TBR-30,TBR-50,ADA-20R,ADA-30R,ADA-50R,YDA-50R
4 ドリップ KDB-20N,KDB-25N,KDB-30N,KDB-40N,KDB-50N
5 ミルクM KCI-20N,KCI-30N,KCI-35N,KCI-40N
商品表
[A列] [B列]
<タイプ> <品番>
1 コーヒー TBR-30
2 コーヒー TBR-50
3 コーヒー ADA-20R
4 コーヒー ADA-30R
5 コーヒー ADA-50R
6 コーヒー YDA-50R
7 ドリップ KDB-20N
8 ドリップ KDB-25N
9 ドリップ KDB-30N
10 ドリップ KDB-40N
11 ドリップ KDB-50N
12 ミルクM KCI-20N
13 ミルクM KCI-30N
14 ミルクM KCI-35N
15 ミルクM KCI-40N
試したこと
[D列] [E列] [F列]
3 コーヒー 1 TBR-30,TBR-50,ADA-20R,ADA-30R,ADA-50R,YDA-50R
4 ドリップ 7 KDB-20N,KDB-25N,KDB-30N,KDB-40N,KDB-50N
5 ミルクM 12 KCI-20N,KCI-30N,KCI-35N,KCI-40N
「検索フォーム」E列に下記関数を組み、行数を取得した上で
=ARRAYFORMULA(MATCH(D3:D5,A:A,0)-1)
F列の関数にARRAYFORMULA関数を加えてみました。
=TEXTJOIN(",",TRUE,TRANSPOSE(ARRAYFORMULA(OFFSET(A1,E3:E5,1,COUNTIF(A:A,D3),1))))
ただ、OFFSET関数にARRAYFORMULA関数が使えないことを知り、断念いたしました。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/18 07:38