度々似たような質問をし恐縮です。
過去にいただいた回答を元に少しずつ進んでおります。
【本題】
BookAのSheetAには、以下の2つのパターンで記載された文字列がAO列に並んでいます。
①/Aを使っている場合
②/Bと/Cを使っている場合
※1つのセル内では区切る文字は①か②のどちらかに統一されています。
具体的には、以下の通りです。
AO1セルの内容:
①あいう/Aかきく
②さしすせ/Aかきく、けこ
③なにぬね/Aかきく、たちつてと、はひふへ
④たち/Aかきく、あかさたな
⑤はひふへほ/Aかきく、さしすせそ
⑥やゆよ/Aなにぬ
⑦わを/Aあかさたなはまやらわ
※各行は改行で区切ってあります。
AO2セルの内容:
①あいう/Bかきく/Cけこさし
②さしすせ/Bかきく、けこ/Cなにぬねの
③なにぬね/Bかきく、たちつてと、はひふへ/Cあ
④たち/Bかきく、あかさたな/Cあい
⑤はひふへほ/Bかきく、さしすせそ/Cー
⑥やゆよ/Bなにぬ/Cー
AO1セルに対して最後に欲しい2次元配列
|1,1|1,2|1,3|...
|1,1|:あいう|:かきく|
|2,1|:さしすせ|:かきく|:けこ|
|3,1|:なにぬね|:かきく|:たちつてと|:はひふへ|
|4,1|:たち|:かきく|:あかさたな|
|5,1|:はひふへほ|:かきく|:さしすせそ|
|6,1|:やゆよ|:なにぬ
|7,1|:わを|:あかさたなはまやらわ
BookBのSheetBのL列には、これらをバラして縦に並べた文字列が既に入っています。
(以前質問させていただいたパートです。
https://teratail.com/questions/239754)
ここで、BookBのSheetBのK列には、各行、もとの文字列(SheetAのAO1)の中で最初に入っていた文字列か、/A以降に入っていた文字列か、を判断してシートに記載しなければなりません。
SheetAのAO2セルに対しては、同様に、/B以前に入っていた文字列か、/Bの部分に入っていた文字列か、/Cの部分に入っていた文字列か、をBookBのSheetBのK列に記載しなければなりません。
最も効率的かはわかりませんが、2次元配列を作って取り出す作業を繰り返せば良いのかなと考えて題名のような質問をしました。
A2セルに対して第1段回目
配列変数Kari:
|1,1|1,2|1,3|...
|1,1|:あいう|:/Bかきく/Cけこさし|
|2,1|:さしすせ|:/Bかきく、けこ/Cなにぬねの、あかさ、はまや|
|3,1|:なにぬね|:/Bかきく、たちつてと、はひふへ/Cあ|
|4,1|:たち|:/Bかきく、あかさたな/Cあい、うえ|
|5,1|:はひふへほ|:/Bかきく、さしすせそ/Cー|
|6,1|:やゆよ|:B/なにぬ/Cー
→(?,1)に入っている文字列を別の配列変数Firstに入れて、配列の番号を指定することで順番に取り出せるようにする
→(?,2)に入っている文字列を別の配列変数Afterwardsに入れて、以下の2段回目を実施する。
配列変数Afterwards:
|1,1|1,2|1,3|...
|1,1|:/Bかきく/Cけこさし|
|2,1|:さしすせ|:/Bかきく、けこ/Cなにぬねの、あかさ、はまや|
|3,1|:なにぬね|:/Bかきく、たちつてと、はひふへ/Cあ|
|4,1|:たち|:/Bかきく、あかさたな/Cあい、うえ|
|5,1|:はひふへほ|:/Bかきく、さしすせそ/Cー|
|6,1|:やゆよ|:B/なにぬ/Cー
→変数配列Bは
|1,1|1,2|1,3|...
|1,1|:/Bかきく|
|2,1|:/Bかきく、けこ|
|3,1|:/Bかきく、たちつてと、はひふへ|
|4,1|:/Bかきく、あかさたな|
|5,1|:/Bかきく、さしすせそ|
|6,1|:B/なにぬ|
→配列変数Cは
|1,1|1,2|1,3|...
|1,1|:/Cけこさし|
|2,1|:/Cなにぬねの、あかさ、はまや|
|3,1|:/Cあ|
|4,1|:/Cあい、うえ|
|5,1|:/Cー|
|6,1|:/Cー|
L列の当該行の文字列が、配列変数First、配列変数B、配列変数Cのどれに入っているか判別させ、その結果をそれぞれ文字列("First"もしくは"B"もしくは"C")としてK列に表示するにはどうすれば良いでしょうか。
split関数が1次配列のみ対応ということで、実際どうループを組めばいいか良いかよくわかりません。
どうぞよろしくお願いします。