種類の
候補リスト範囲を作成します。
下図では、
赤枠内が「
魚介類」が選択されてた場合の
候補リスト範囲
問題と区別するために、
分類2、
種類2 の名前を定義しています。
入力規則を直接フォームに入力するのは大変なので、作業を分割します。
候補リストを作成するには、
A.選択された分類名に相当する項目の先頭位置(上図例では6番目)
B.項目の個数(上図例では4個)
の2つを知る必要があります。
A.項目の先頭位置
SEARCH関数で種類リストの
1列目を検索します。
戻り値が
先頭位置
=MATCH($B$49,OFFSET(種類2,,,,1),0)
OFFSET(種類,,,,1) は、種類リストの1列目のリストを取得
4番目のパラメータを1にすることで、
列数を1とする新たなリスト範囲が作成されます。
その新リストから分類名を検索しています。
B.項目の個数
項目の
個数は、種類リストでの(選択された)分類の個数となりますので、
COUNIIF関数を使って
=COUNTIF(OFFSET(種類2,,,,1),$B$49)
と記述できます。
以上により、必要な種類のリスト範囲は、
=OFFSET(種類2,項目の先頭位置-1,1,項目の個数,1)
で定義できます。(
-1しているとに注意)
式をまとめると、
=OFFSET(種類2,MATCH($B$49,OFFSET(種類2,,,,1),0)-1,1,COUNTIF(OFFSET(種類2,,,,1),$B$49),1)
となります。(少々長い・・・)