例えば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 |
毎回フィルタをかけたりしなくてよいので便利です。