>並び順は右端のコード順,なおかつ組・番順になると良いのですが…。
並び方は、コード順になっていることが最優先であり、同じコードのもの同士の間では組順、コード順と組が共に同じもの同士の間では番順にすると考えれば宜しいのでしょうか?
その場合は、複数の作業列を設けて、以下の様な方法になります。
今仮に、元データーが入力されているシートがSheet1で、Sheet2のA列~D列を作業列として使用して、Sheet3のA2セルに入力した校名と、Sheet3のB2セルに入力した学科名を基にして、Sheet3のA列~D列の6行目以下に抽出結果を表示させるものとします。
まず、Sheet2のA3セルに次の数式を入力して下さい。
=IF(COUNT(Sheet1!$A3,Sheet1!$B3,Sheet1!$F3)=3,Sheet1!$F3*100000+Sheet1!$A3*1000+Sheet1!$B3,"")
次に、Sheet2のC3セルに次の数式を入力して下さい。
=IF(ROWS($A$3:$A3)>COUNT($A:$A),"",MATCH(SMALL($A:$A,ROWS($A$3:$A3)),$A:$A,0))
次に、Sheet2のD3セルに次の数式を入力して下さい。
=IF($C3="","",INDEX(Sheet1!$D:$D,$C3)&INDEX(Sheet1!$E:$E,$C3))
次に、Sheet2のB3セルに次の数式を入力して下さい。
=IF($D3="","",$D3&COUNTIF($D$3:$D3,$D3))
次に、Sheet2のA3~D3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。
次に、Sheet3の
A1セルに 校名
B1セルに 学科名
A4セルに 組
B4セルに 番
C4セルに 氏名
D5セルに コード番号
と入力して下さい。
次に、Sheet3のA4セルとA5セルセルを結合して下さい。
次に、Sheet3のB4セルとB5セルセルを結合して下さい。
次に、Sheet3のC4セルとC5セルセルを結合して下さい。
次に、Sheet3のD5セルに次の数式を入力して下さい。
=Sheet1!$D$1&""
次に、Sheet3のA6セルに次の数式を入力して下さい。
=IF(ROWS($A$6:$A6)>COUNTIF(Sheet2!$D:$D,$A$2&$B$2),"",INDEX(Sheet1!A:A,VLOOKUP($A$2&$B$2&ROWS($A$6:$A6),Sheet2!$B:$C,2,FALSE)))
次に、Sheet3のA6セルをコピーして、 次に、Sheet3のB6セルとC6セルに貼り付けて下さい。
次に、Sheet3のD6セルに次の数式を入力して下さい。
=IF(ROWS($A$6:$A6)>COUNTIF(Sheet2!$D:$D,$A$2&$B$2),"",INDEX(Sheet1!F:F,VLOOKUP($A$2&$B$2&ROWS($A$6:$A6),Sheet2!$B:$C,2,FALSE)))
次に、Sheet3のA6~D6の範囲をコピーして、同じ列の7行目以下に貼り付けて下さい。
次に、Sheet3のコピーシートを各学校の学科の数だけ作成して下さい。
後は、Sheet3以降の各シートのA2セルに校名を、B2セルに学科名を、それぞれ入力すれば、抽出結果が表示されます。
お礼
回答ありがとうございました。 まさに思っていた通りの処理ができて感激しました。 他のデータ処理にも使えそうです。ありがとうございました。