例えばSheet1に次のような表があるとします。
A | B | C |
学年 | 名前 | |
1 | いとう | |
2 | ごとう | |
1 | さとう | |
1 | むとう | |
2 | こんどう | |
3 | えとう | |
2 | きとう |
ここから別シートに1年生だけ表示したいといったときに使います。
Filter関数を使えばよいのですが、事情があって使えない場合もあります。
すぐにマクロとか使いたくなるのですが、数式でなんとかしたかったので、考えてみました。
A列に次のように数式を入力します。
現在の行の上までの1年生の数をカウントする式となっています。
A | B | C |
学年 | 名前 | |
=COUNTIF(B$3:B3,1) | 1 | いとう |
=COUNTIF(B$3:B4,1) | 2 | ごとう |
=COUNTIF(B$3:B5,1) | 1 | さとう |
=COUNTIF(B$3:B6,1) | 1 | むとう |
=COUNTIF(B$3:B7,1) | 2 | こんどう |
=COUNTIF(B$3:B8,1) | 3 | えとう |
=COUNTIF(B$3:B9,1) | 2 | きとう |
計算結果を表示するとこうなります。
A | B | C |
学年 | 名前 | |
1 | 1 | いとう |
1 | 2 | ごとう |
2 | 1 | さとう |
3 | 1 | むとう |
3 | 2 | こんどう |
3 | 3 | えとう |
3 | 2 | きとう |
Sheet2に以下の表を作成します。
A | B | C |
学年 | 名前 | |
1 | =VLOOKUP($A3,Sheet1!A:C,2,FALSE) | =VLOOKUP($A3,Sheet1!B:D,2,FALSE) |
2 | =VLOOKUP($A4,Sheet1!A:C,2,FALSE) | =VLOOKUP($A4,Sheet1!B:D,2,FALSE) |
3 | =VLOOKUP($A5,Sheet1!A:C,2,FALSE) | =VLOOKUP($A5,Sheet1!B:D,2,FALSE) |
4 | =VLOOKUP($A6,Sheet1!A:C,2,FALSE) | =VLOOKUP($A6,Sheet1!B:D,2,FALSE) |
5 | =VLOOKUP($A7,Sheet1!A:C,2,FALSE) | =VLOOKUP($A7,Sheet1!B:D,2,FALSE) |
6 | =VLOOKUP($A8,Sheet1!A:C,2,FALSE) | =VLOOKUP($A8,Sheet1!B:D,2,FALSE) |
7 | =VLOOKUP($A9,Sheet1!A:C,2,FALSE) | =VLOOKUP($A9,Sheet1!B:D,2,FALSE) |
8 | =VLOOKUP($A10,Sheet1!A:C,2,FALSE) | =VLOOKUP($A10,Sheet1!B:D,2,FALSE) |
9 | =VLOOKUP($A11,Sheet1!A:C,2,FALSE) | =VLOOKUP($A11,Sheet1!B:D,2,FALSE) |
10 | =VLOOKUP($A12,Sheet1!A:C,2,FALSE) | =VLOOKUP($A12,Sheet1!B:D,2,FALSE) |
LOOKUPで左端が、1,2,3…となるものを検索して並べています。
計算結果を表示するとこうなります。
A | B | C |
学年 | 名前 | |
1 | 1 | いとう |
2 | 1 | ごとう |
3 | 1 | えとう |
4 | #N/A | #N/A |
5 | #N/A | #N/A |
6 | #N/A | #N/A |
7 | #N/A | #N/A |
8 | #N/A | #N/A |
9 | #N/A | #N/A |
10 | #N/A | #N/A |
毎回フィルタをかけたりしなくてよいので便利です。