雑・Excel入門試論 - 脱VLOOKUPの思考 14 - テーブル - 動的配列関数

　動的配列関数を使用すると、テーブルから配列を作成することができます。式の最終結果である場合はスピルします。

# UNIQUE
　範囲内の一意の値の一覧を返します。

```text:UNIQUE構文
=UNIQUE(
    array,
    [by_col],
    [exactly_once]
)
```
- array: 並び替える範囲または配列
- [by_col]（省略可）
    - TRUE: 一意の列が返されます
    - FALSE:　一意の行が反されます（既定）
- [exactly_once]（省略可）
    - TRUE:　一回だけ発生するすべての個別の行または列を返します。二回以上発生するものは入りません。
    - FALSE:　すべての個別の行または列を返します（既定）

<img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/c3d02b83-ee8b-e810-a055-82436d149d74.png"/>

　上記のようなテーブルに対して以下のような結果になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/50a08aa3-8f68-f18e-ff0c-17c947c8b180.png)

# SORT
　配列内の要素の並び替えられた配列を返します。

```text:SORT構文
=SORT(
    array,
    [sort_index],
    [sort_order],
    [by_col]
)
```
- array : 並び替える範囲または配列
- [sort_index]（省略可） : 並び替えの基準となる行または列を示す数値。既定は1
- [sort_order]（省略可）
    - 1:昇順(既定)
    - -1:降順
- [by_col]（省略可）
    - TRUE: 列で並び替え
    - FALSE: 行で並び替え（既定）

　下図は、左の表をsalesの値を降順に並び替えたものです。
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/6db6c669-e621-f49e-99b8-b7f9864830cd.png"/>

```text:SORT例
=SORT(
    financials,
    MATCH(
        "Sales", 
        financials[#見出し],
        0
    ),
    -1
)
```
　`MATCH("Sales",financials[#見出し],0)` は、テーブルの見出しを配列から "Sales" の順番を計算しており、値は6になります。

# SORTBY

```text:SORTBY構文
=SORTBY(
    array, 
    by_array1, 
    [sort_order1], 
    [by_array2, sort_order2],
    ...
) 
```
- array : 並び替えの対象となる配列または範囲
- by_array1 : 並び替えの基にする配列または範囲
- [sort_order1] : 並び替えに使用する順序
    - 1:昇順（既定）
    - -1:降順
- [by_array2] : 並び替えの基にする配列または範囲
- [sort_order2] : 並び替えに子瑜する順序
    - 1:昇順（既定）
    - -1:降順

　SORTでは、ソート対象を数値で指定しなければなりませんが、SORTBYでは、値の列、値の行を指定することができます。
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/da08592a-3daa-2b53-be32-7500682cb105.png"/>

```text:SORTBY例
=SORTBY(
    financials, 
    financials[Sales],
    -1
)
```

# FILTER

```text:FILTER構文
=FILTER(
    array,
    include,
    [if_empty]
)
```
- array : フィルター処理の対象となる配列または範囲
- include : 高さまたは幅が array と同じブールの配列
- [if_empty] : include配列内のすべての値が空の場合に返す値

<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/26bd568e-d493-d952-fa44-870fb010f56f.png"/>

```text:FILTER例1
=FILTER(
    financials,
    financials[Country] = "Canada", 
    "No Value"
)
```
　複数の条件の積(AND)は `*` を使用します。和(OR)は`+` を使用します。
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/722a95db-5a89-fcb7-ff39-884bf352538f.png"/>

```text:FILTER例2
=FILTER(
    financials,
    (financials[Country] = "Canada") * (financials[Product] = "Paseo"),
    "No Value"
)
```

　あるいは、MAPとLAMBDAを使って以下のように書けます。

```text:Filter例3
=FILTER(
    financials,
    MAP(
        financials[Country],
        financials[Product],
        LAMBDA(
            c,p,
            AND(c="Canada",p="Paseo")
        )
    )
)
```

# SEQUENCE
　連続した数値の一覧を生成します。

```text:SEQUENCE構文
=SEQUENCE(
    rows,
    [columns],
    [start],
    [step]
)
```
　`=SEQUENCE(4,5)` は、4行5列で、1から開始し、1つづつ増える配列をを作成します。省略可能な[columns]、[start]、[step]は、既定値1に設定されます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/2d1f9e99-8f6a-f1ec-419a-40c290448296.png"/>


# コンテンツ
- [雑・Excel入門試論 - 脱VLOOKUPの思考 01 - ブック - 仕様と制限](https://qiita.com/spumoni/items/189004c01181c50a4821)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 02 - ブック - オプション](https://qiita.com/spumoni/items/75955db69cc34695de14)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 03 - ワークシート](https://qiita.com/spumoni/items/5408cae114034be528c4)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 04 - セル - 文字列型](https://qiita.com/spumoni/items/4ab1d7067418886c0582)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 05 - セル - 数値データ](https://qiita.com/spumoni/items/970b4b39a5a2185992ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 06 - セル - 日時データ](https://qiita.com/spumoni/items/9f270e181fbc45503759)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 07 -  リンクされたデータ型](https://qiita.com/spumoni/items/ed59d15753d992c3a630)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 08 - セル - 計算式・関数](https://qiita.com/spumoni/items/ae339c97627110e2134e)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 09 -  セル - 数値の書式設定](https://qiita.com/spumoni/items/1b3134d4b0284465976f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 10 - セル - 日付と時刻の書式設定](https://qiita.com/spumoni/items/6eb602f69956a5e1502f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 11 - セル - 条件付き書式](https://qiita.com/spumoni/items/04bd8e24284daef6f27a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 12 - テーブル - テーブルの作成と入力規則](https://qiita.com/spumoni/items/f23beca01c5093c81c47)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 13 - テーブル - ソートとスライサー](https://qiita.com/spumoni/items/b66027008c2f9edb853f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 14 - テーブル - 動的配列関数](https://qiita.com/spumoni/items/cc03e898f02b8c3017f7)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 15 - Power Query - エクセルのデータを読み込む](https://qiita.com/spumoni/items/fc38a4ae595b64af87f5)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 16 - Power Query - 変換](https://qiita.com/spumoni/items/100e0e3c6a5a59b03229)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 17 - Power Query - テーブルの結合](https://qiita.com/spumoni/items/debb9ea9b8692ca8fc8c)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 18 パワーピボット - データモデル](https://qiita.com/spumoni/items/08458978e86dc59f18ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 19 パワーピボット - 操作](https://qiita.com/spumoni/items/e7b3f245e87622e9bc79)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 20 パワーピボット - 日付テーブル](https://qiita.com/spumoni/items/340e0fcbc9cd10198112)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 21 DAX - コンテキストとイテレーター](https://qiita.com/spumoni/items/cddc7fa16341e20bafb8)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 22 DAX - CALCULATE](https://qiita.com/spumoni/items/e2218fece1ec01e177b0)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 23 DAX - タイムインテリジェンス](https://qiita.com/spumoni/items/6d8aeb9f80ecafb69c5a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 24 - ダッシュボード - ピボットグラフ（Pivot Chart）](https://qiita.com/spumoni/items/ffb0d57a6272c2e5ad37)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 25 - ダッシュボードの作成](https://qiita.com/spumoni/items/5e57ad587a343857e543)