Q:

What is this argument of AGGREGATE function doing in my formula?

I need to understand this part ($B$1:$B$15<>"") in the following formula used to represent a column of data with blank cells removed:
=IFERROR(INDEX($B$1:$B$15,AGGREGATE(15,6,(ROW($B$1:$B$15)-ROW($B$1)+1)/($B$1:$B$15<>""),ROWS(C$1:C1))),"") 

This formula was given on another site for the question Remove Blanks from a Column with Formula, but I could not find more info about it.
I especially want to know what this part does: ($B$1:$B$15<>"").
I can guess it is a range not "", but I cannot figure it out its usage in that formula.
Can someone help me on this matter?
Thank you.

A:

The part you queried is doing as you say:
$B$1:$B$15<>""
That returns an array of TRUE/FALSE values, FALSE if each cell is blank and TRUE if it's not. In the formula an array of the relative row numbers is divided by that array - when you divide by TRUE that acts as a 1 so you just get the row number, when you divide by FALSE that acts like zero so you get a #DIV/0! error. 
AGGREGATE function is set to ignore errors so it finds the kth smallest row where B1:B15 is not blank
......then INDEX returns the actual value for that cell.
In cell one - C1 ideally - k = 1 so you get the first non-blank value then ROWS function increments as you copy down so you get each subsequent non-blank value

