[[20080109142608]] 『志望校別リストの作り方』(ゴーシュ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『志望校別リストの作り方』(ゴーシュ)

   第1志望 第2志望 第3志望 

101    A校   B校   C校

102    D校   A校   F校

103   C校   E校   G校

104   A校   F校   E校

105   F校   E校   A校

上のような表から

 A校  B校  C校  D校  E校  F校 
 101      101     101     102     103     102
 102              103             104     104
 104                              105 
 105

のような、志望校別の表を作りたいのですが、うまい方法はあるでしょうか。
よろしくお願いいたします。


 こんにちは〜♪

 こんな表の場合です。。。

 	A	B	C	D	E	F	G	H	I	J	K
[1]		第1	第2	第3		A校	B校	C校	D校	E校	F校
[2]	101	A校	B校	C校		101	101	101	102	103	102
[3]	102	D校	A校	F校		102		103		104	104
[4]	103	C校	E校	G校		104				105	105
[5]	104	A校	F校	E校		105					
[6]	105	F校	E校	A校							
[7]											

 F2セルへ
 =IF(COUNTIF($B$2:$D$6,F$1)<ROW(A1),"",INDEX(1/LARGE(($B$2:$D$6=F$1)/($A$2:$A$6),ROW(A1)),))
 右と下へコピーします。。。	

 *この式は、A列のNoが連番になっている場合の式です。。

 。。。ご参考にどうぞ。。。

 。。。Ms.Rin〜♪♪


 このようにするのは、どうでしょう?              (6UP)

 下の表で、
 1.B2:H2に学校の見出しを配置する。
 2.B10に=IF(MATCH(B$9,$B2:$D2,),$A2)と入力する。
 3.B10をコピーしてB10:H14に貼り付ける。(途中図)
 4.そのまま、編集、ジャンプ、セル選択、数式(エラー値のみチェック)、OK。
 5.黒いところを右クリックし、削除、上方向へシフト、OK。

 	A	B	C	D	E	F	G	H
 1		1校	2校	3校				
 2	101	A校	B校	C校				
 3	102	D校	A校	F校				
 4	103	C校	E校	G校				
 5	104	A校	F校	E校				
 6	105	F校	E校	A校				
 7								
 8		=IF(MATCH(B$9,$B2:$D2,),$A2)						
 9		A校	B校	C校	D校	E校	F校	G校
10	  	101	101	101	#N/A	#N/A	#N/A	#N/A
11	  	102	#N/A	#N/A	102	#N/A	102	#N/A
12	  	#N/A	#N/A	103	#N/A	103	#N/A	103
13	  	104	#N/A	#N/A	#N/A	104	104	#N/A
14	  	105	#N/A	#N/A	#N/A	105	105	#N/A


 VBでよければこんなのはどうでしょう
 SHEET1を入力としてSHEET2に出力します。

 Sub SAMPLE1()
   Dim I As Long, J As Long, K As Long, L As Long
   For I = 2 To 100
     If (Sheet1.Cells(I, 1) = "") Then Exit For
     For J = 2 To 50
       If (Sheet1.Cells(I, J) = "") Then
       Else
         For K = 1 To 50
           If (Trim(Sheet1.Cells(I, J)) = Trim(Sheet2.Cells(1, K))) Then Exit For
           If (Sheet2.Cells(1, K) = "") Then Sheet2.Cells(1, K) = Sheet1.Cells(I, J): Exit For
         Next K
       End If
     Next J
   Next I
   For I = 2 To 100
     If (Sheet1.Cells(I, 1) = "") Then Exit For
     For J = 2 To 50
       If (Sheet1.Cells(I, J) = "") Then
       Else
         For K = 1 To 50
           If (Trim(Sheet1.Cells(I, J)) = Trim(Sheet2.Cells(1, K))) Then
             For L = 2 To 100
               If (Sheet2.Cells(L, K) = "") Then Sheet2.Cells(L, K) = Sheet1.Cells(I, 1): Exit For
             Next L
           End If
         Next K
       End If
     Next J
   Next I
 End Sub
                                            (mr_mangoos)

Ms.Rinさん、6UPさん、mr_mangoosさん 早速のご回答ありがとうございます。
意味はよくわかっていないのですが、何とか思っていた表ができてきました。

もう1つ質問ですが、A列に連番、B列には名前が入力してある場合、B列の方の名前を志望校別に並べたいのですが、自力ではできませんでした。ご教示願えれば幸いです。


 ふたたび〜です。。。♪

 こんな事でしょうか。。。?

 	A	B	C	D	E	F	G	H	I	J	K	L
[1]	No	氏名	第1	第2	第3		A校	B校	C校	D校	E校	F校
[2]	101	佐藤	A校	B校	C校		佐藤	佐藤	佐藤	山田	谷	山田
[3]	102	山田	D校	A校	F校		山田		谷		ゴーシュ	ゴーシュ
[4]	103	谷	C校	E校	G校		ゴーシュ				Rin	Rin
[5]	104	ゴーシュ	A校	F校	E校		Rin					
[6]	105	Rin	F校	E校	A校							
[7]	

 G2セルへ
 =IF(COUNTIF($C$2:$E$6,G$1)<ROW(A1),"",INDEX($B:$B,INDEX(1/LARGE(($C$2:$E$6=G$1)/ROW($2:$6),ROW(A1)),)))

 右と下へコピーです。。。

 。。。Ms.Rin〜♪♪


 Rinで〜す。。。♪

 別シートへ抽出するのでしたら。。。

 Sheet1 ↓

 	A	B	C	D	E
[1]	No	氏名	第1	第2	第3
[2]	101	佐藤	A校	B校	C校
[3]	102	山田	D校	A校	F校
[4]	103	谷	C校	E校	G校
[5]	104	ゴーシュ	A校	F校	E校
[6]	105	Rin	F校	E校	A校
[7]					

 別シート↓

 	A	B	C	D	E	F
[1]	A校	B校	C校	D校	E校	F校
[2]	佐藤	佐藤	佐藤	山田	谷	山田
[3]	山田		谷		ゴーシュ	ゴーシュ
[4]	ゴーシュ				Rin	Rin
[5]	Rin					
[6]						

 別シートの
 A2セルへ
 =IF(COUNTIF(Sheet1!$C$2:$E$20,A$1)<ROW(A1),"",
INDEX(Sheet1!$B:$B,INDEX(1/LARGE((Sheet1!$C$2:$E$20=A$1)/ROW($2:$20),ROW(A1)),)))

 Sheet1の表の行範囲を20行目までに広げてありますので。。。

 。。。Ms.Rin〜♪♪


Ms.Rin様 ありがとうございました。思ったとおりの表が完成しました。感謝感激です。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.