関数 SWITCHを使う方法を試されたのですね。パターン毎に回答を返す関数なので、こういった7つくらいのケースへの対応としては良いと思います。よりスマートかはわかりませんが、幾つか他のアプローチをご提示します。
1.MTACH、OFFSET、MODを使ってループさせる
上をE5に貼ってE6以下にコピペかオートフィル
下をC6に貼ってC7以下にコピペかオートフィル
=OFFSET('対象'!$A$1,MOD(MATCH($C6,'対象'!$A$1:$A$7,0),7),0,1,1)
=OFFSET('対象'!$A$1,MOD(MATCH($E5,'対象'!$A$1:$A$7,0),7),0,1,1)
1つ前のキーワードがA1~A7内の何番目かをMATCHで見つけ、OFFSETで'対象'!$A$1(あいうえお)を起点として、MATCHで返してきた数値分下のセルを取得。(つまりは1個下を取得っていう動きになります)
ただ「まみむめも」の次を最初に戻って「あいうえお」とさせる為に、MODという割り算の余りを出す関数を使って、7番目の時を7÷7=0と表示させることで、「あいうえお」に戻しています。(A1の0個下なのでA1そのもの)
2.先に対象を繰り返した配列を用意した上で、数列のルールからFILTERで抽出
上をE5に貼る。
下をC6に貼る。
=FILTER(TRANSPOSE(SPLIT(REPT(JOIN(",",'対象'!A1:A7)&",",10),",")),SEQUENCE(70) > MATCH(C5,'対象'!A1:A7,0),SEQUENCE(70) <MATCH(C5,'対象'!A1:A7,0)+62,MOD(SEQUENCE(70)+MATCH(C5,'対象'!A1:A7,0),2)=1)
=FILTER(TRANSPOSE(SPLIT(REPT(JOIN(",",'対象'!A1:A7)&",",10),",")),SEQUENCE(70) > MATCH(C5,'対象'!A1:A7,0),SEQUENCE(70) <MATCH(C5,'対象'!A1:A7,0)+62,MOD(SEQUENCE(70)+MATCH(C5,'対象'!A1:A7,0),2)=0)
式をまとめようとしたら複雑な式になってしまったのですが、OFFSETはArrayFormula関数と相性が悪いので、こんな方法になりました。
考え方としては先にA1A7をJOINで連結させて、REPTで繰り返して、SPLITで分割して、TRANSPOSEで縦に戻すことで、A1A7を10回繰り返し。これにSEQUENCEで1~70まで番号を振ったものを左にくっつけたイメージの仮想の作業列を作成してます。(素直に作業列を作った方が理解できると思います)
これをFILTERで開始と最後を条件で切って、E列側、C列側 それぞれのルール(C5の値が'対象'!A1:A7 の何番目かによって、偶数行か奇数行のみの数列になる)をMODの余りで絞りこんだ式です。
2番目のFILTERの方は可読性も低いしスマートでもないので蛇足ですが、とりあえずこの手の繰り返しや1個飛び(偶数のみ、奇数のみ)みたいなルールがある場合は MODが有効だったりします。
FILTERを使った式があまり良くないので、ARRAYFORMULAの式を追記します。これが一番シンプルかも。
E5に貼る
=ARRAYFORMULA(LOOKUP(MOD(SEQUENCE(31,1,MATCH($C$5,'対象'!$A$1:$A$7,0),2),7)+1,SEQUENCE(7),'対象'!$A$1:$A$7))
C6に貼る
=ARRAYFORMULA(LOOKUP(MOD(SEQUENCE(30,1,MATCH($C$5,'対象'!$A$1:$A$7,0),2),7)+2,SEQUENCE(7),'対象'!$A$1:$A$7))