Just for completeness I have worked up an automatic indexing arrayformula that does not fill down to the bottom of the sheet. Relies on contiguous data in column B (no blank cells between data)
={"Index";arrayformula(if(indirect("B2:B"&COUNTA(B2:B)+1)<>"",row(indirect("B2:B"&COUNTA(B2:B)+1))-1,""))}
