LoginSignup
3
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-12-13

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

UNIQUE

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

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

 上記のようなテーブルに対して以下のような結果になります。
image.png

SORT

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

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

 下図は、左の表をsalesの値を降順に並び替えたものです。

SORT例
=SORT(
    financials,
    MATCH(
        "Sales", 
        financials[#見出し],
        0
    ),
    -1
)

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

SORTBY

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では、値の列、値の行を指定することができます。

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

FILTER

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

 複数の条件の積(AND)は * を使用します。和(OR)は+ を使用します。

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

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

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

SEQUENCE

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

SEQUENCE構文
=SEQUENCE(
    rows,
    [columns],
    [start],
    [step]
)

 =SEQUENCE(4,5) は、4行5列で、1から開始し、1つづつ増える配列をを作成します。省略可能な[columns]、[start]、[step]は、既定値1に設定されます。

コンテンツ

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0