# FLATTEN

Flattens all the values from one or more ranges into a single column.

### Parts of a FLATTEN function

=FLATTEN(range1, [range2, …])

 Part Description range1 The first range to flatten. range2 [optional] repeatable Additional ranges to flatten.

### Sample formulas

=FLATTEN(A1:B2)

=FLATTEN("top", A1:B2, "middle", B3:B4, "bottom")

### Notes

• Values are ordered by argument, then row, then column. So, the entire first row of an input is added before the second row (also known as row-major order).
• Empty values are not skipped; the FILTER function can be used to remove those.

### Examples

Flatten will append arguments in the order they are included in the formula. Arguments need not be range references.

 A B C D 1 1 2 Formula in D1:  =FLATTEN(A1:B2, "sample middle", B3:B4) 1 2 3 4 2 3 5 3 4 6 4 5 sample middle 6 5 7 6

A more complex example, using the CONCAT (&) operator and SPLIT to do a simple cross join or Cartesian product on two lists.

 A B C D E 1 A 1 Formula in D1: =ArrayFormula(SPLIT(FLATTEN(A1:A3 & "|" & TRANSPOSE(B1:B2)), "|")) A 1 2 B 2 A 2 3 C B 1 4 B 2 5 C 1 6 C 2