Excelの関数を使用した方法です。
尚、新しい形式では、1つのセル内に
1._P7g-7f_P3c-3d
という形式の文字列が入力されているものとします。(もし、この前提が間違っている場合には、データーが幾つのセルに分けられていて、どの様に配分されているのかを、補足欄でお知らせ願います)
今仮に、新しい形式で入力されたデーターが、Sheet1のA列の2行目以下に存在していて、それを以前の形式に修正したデーターを、Sheet1のB列に表示させるものとします。
まず、Book内の適当な場所(例えば、Sheet2のA2~D10)に以下のリストを作成して下さい。
A列 B列 C列 D列
2行目 P 歩 a 一
3行目 R 飛 b 二
4行目 B 角 c 三
5行目 K 王 d 四
6行目 G 金 e 五
7行目 S 銀 f 六
8行目 N 桂 g 七
9行目 (?) 香 h 八
10行目 i 九
尚、香車に対応するアルファベットが不明なため、(?)を入れていますが、実際に使用するためには、正しい文字に替えて下さい。
次に、Sheet1のB2セルに次の関数を入力して下さい。
=IF(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2))="","",ROWS($1:1)&" "&IF(MOD(ROWS($1:2),2),"△","▲")&MID(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2)),8+7*MOD(ROWS($1:2),2),1)&VLOOKUP(MID(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2)),9+7*MOD(ROWS($1:2),2),1),Sheet2!$C$2:$D$10,2)&VLOOKUP(MID(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2)),4+7*MOD(ROWS($1:2),2),1),Sheet2!$C$2:$D$10,2,0)&"("&MID(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2)),5+7*MOD(ROWS($1:2),2),1)&MATCH(MID(INDEX($A$2:$A$9999,INT(ROWS($1:2)/2)),6+7*MOD(ROWS($1:2),2),1),Sheet2!$C$2:$C$10)&")"
そして、B2セルをコピーして、B3以下に貼り付けて下さい。
以上です。
お礼
ありがとうございます まさにそのような対応表を参照する方式を考えていました。 20行ほどの対応表でOKとは 予想外でした 当初 駒の種類 x スタート升目数 x 到着升目数 x先手後手 の行数が必要と考え いきずまっておりました。 本当にありがとうございます。