1 つ以上の範囲に含まれるすべての値を、単一の列にフラット化します。
FLATTEN 関数の引数
=FLATTEN(範囲1, [範囲2, …])
引数 |
説明 |
範囲1 |
フラット化する最初の範囲です。 |
範囲2 |
[省略可] 反復可能 フラット化する追加の範囲です。 |
数式の例
=FLATTEN(A1:B2)
=FLATTEN("上", A1:B2, "中", B3:B4, "下")
備考
- 値は、引数、行、列の順に並べ替えられます。このため、入力された値のうち最初の行の値が追加され、次に 2 行目の値が追加されます(行優先順)。
- 空の値はスキップされません。FILTER 関数を使用して削除できます。
例
FLATTEN では、引数は数式に含まれる順で追加されます。引数は範囲参照でなくてもかまいません。
A |
B |
C |
D |
|
1 |
1 |
2 |
D1 の数式: =FLATTEN(A1:B2, "サンプルの中", B3:B4) |
1 |
2 |
3 |
4 |
2 |
|
3 |
5 |
3 |
||
4 |
6 |
4 |
||
5 |
サンプルの中 |
|||
6 |
5 |
|||
7 |
6 |
以下は、CONCAT(&)演算子と SPLIT を使用して、2 つのリストの単純なクロス結合すなわちデカルト積を表示する複雑な例です。
A |
B |
C |
D |
E |
|
1 |
A |
1 |
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 |