上から下に伸びるデータを違う列に逆さまに表示する

ほとんどお遊びに近いのですが、僕は実用的な必要があって作りました。

[C]列に上から下に向かって4行目から入力した値・文字列を[D]列に順番を逆にして、入力したセルの数に応じて表示する。
必ず[C4]から下に向かって入力すること。

 ABCD
1    
2    
3    
4 12
5 11
6 10
7 9
8 8
9 7
10 6
11 5
12 4
13 3
14 2
15 1
16    

[B4]の式:=IF(C4="","",COUNTA(C4:INDIRECT("c"&COUNTA(C:C)+3)))

[D4]の式:=IF(C4="","",VLOOKUP(ROW()-3,B:C,2,FALSE))

B列、D列ともそのまま下にコピー・貼り付けすればよい。[C]列の1〜3行目が空白になっているのは見栄えのために過ぎないが、計算対象になっているので、何も入力しないこと。